목록2026/04 (42)
ki-sd 님의 블로그
쇼핑몰이나 게시판 등 거의 모든 애플리케이션의 시작점인 회원 관리 로직을 구현했다. 백엔드(DAO)에서 데이터를 검증하고 가공하여 프론트엔드(UI)의 상태를 동적으로 변화시키는, 실제 웹 서비스의 핵심 워크플로우를 데스크톱 환경(Swing)으로 고스란히 옮겨 구현해 보는 유의미한 시간이었다. 1. 아이디 중복 체크와 우편번호 검색 (데이터 무결성 및 검색 최적화)아이디 중복 검증 (memberIdCheck): 사용자가 입력한 ID가 DB에 존재하는지 확인하기 위해 SELECT COUNT(*) FROM member WHERE id=? 쿼리를 날렸다. 결과값이 0이면 사용 가능, 1 이상이면 중복으로 판별하는 직관적이고 확실한 검증 로직을 구현했다.우편번호 동적 검색 (postFind): 사용자가 '동' 이..
그동안 학습한 자바(Java)와 오라클(Oracle)의 핵심 개념을 총정리하고, 두 기술이 브라우저와 어떻게 연결되는지 웹 아키텍처의 큰 그림을 그렸다. 더불어 프로젝트의 뼈대가 되는 요구사항 분석과 데이터베이스 모델링(ER-Model) 기법을 학습하며, 실제 서비스의 테이블을 설계하는 훈련을 진행했다. 1. 백엔드 기술 스택 총정리와 웹 아키텍처의 이해자바(Java) 코어: 객체 지향의 캡슐화(VO/DTO), 데이터 접근 객체(DAO), 싱글톤과 MVC 디자인 패턴, 그리고 컬렉션 프레임워크(List, Map)의 활용 등 백엔드 비즈니스 로직의 근간을 복습했다.오라클(Oracle) 코어: 데이터를 조작하는 DML(SELECT, INSERT, UPDATE, DELETE), 구조를 정의하는 DDL(CREA..
오늘은 자바(Java) 애플리케이션과 DB를 연결하는 JDBC(Java Database Connectivity) 기술을 실전 데이터에 적용했다. 앞서 레퍼런스로 분석한 '영화 검색 시스템'의 구조를 바탕으로, 지니뮤직(genie_music) 데이터를 활용한 '음악 목록 및 검색 시스템'을 직접 구현하며 백엔드와 프론트엔드(Swing)의 연동 흐름을 익혔다. 1. 데이터 전송 객체(VO)와 데이터 접근 객체(DAO) 패턴의 확립VO (Value Object) 매핑: 오라클 테이블의 구조를 자바 객체로 1:1 매핑하는 작업부터 시작했다. genie_music 테이블의 NUMBER 타입은 자바의 int로, VARCHAR2나 CHAR 타입은 String으로 매핑하여 MusicVO 클래스를 캡슐화(은닉)했다.DA..
어제 학습한 PL/SQL 기본 제어문을 바탕으로, 데이터베이스 내부에 재사용 가능한 모듈을 구축하는 함수(FUNCTION), 프로시저(PROCEDURE), 그리고 트리거(TRIGGER)의 메커니즘을 완벽히 해부했다. 또한 수십 개의 실전 질의문을 풀며 SQL 역량을 최종 점검했다. 1. 사용자 정의 함수(FUNCTION): 데이터 가공과 쿼리 단순화오라클이 제공하는 내장 함수 외에 개발자가 직접 필요한 로직을 구현하는 기능이다.반드시 처리 결과값(RETURN)을 가져야 하며, 주로 SELECT 절 내부에서 호출된다.데이터의 상태를 변경하는 INSERT, UPDATE, DELETE (DML) 작업에는 사용하지 않는 것이 원칙이다.여러 테이블을 조인(JOIN)하거나 스칼라 서브쿼리를 반복적으로 작성해야 하는..
단순한 쿼리(SQL)의 나열을 넘어, 오라클 내부에서 변수를 선언하고 제어문(IF, FOR)을 사용해 프로그래밍을 할 수 있게 해주는 PL/SQL(Procedural Language extension to SQL)의 기초를 확립했다. 향후 실무에서 Java(JDBC)나 스프링 프레임워크와 DB가 어떻게 소통하는지 구조를 잡는 중요한 뼈대가 된다. 1. PL/SQL의 기본 아키텍처와 변수 활용PL/SQL은 애플리케이션 서버(Java)가 아닌 데이터베이스 서버 내부에서 직접 실행되므로 네트워크 트래픽을 줄이고 속도를 비약적으로 높일 수 있는 강력한 무기다.기본 구조는 DECLARE(선언부), BEGIN(구현부), EXCEPTION(예외처리), END;의 블록 형태로 구성됨을 파악했다.변수 선언의 4단계 고도..
수천만 건의 대용량 데이터 환경에서 쿼리의 검색 속도를 비약적으로 끌어올리는 인덱스의 원리와 실전 활용법을 마스터했다. 아울러 그동안 다루었던 모든 DB 객체(Table, View, Sequence, Index)와 SQL 문법을 총망라하여 정리했다. 1. 인덱스(Index)의 논리적 구조와 필요성개념: 두꺼운 책에서 원하는 내용을 빠르게 찾기 위해 맨 뒤에 있는 '색인(Index)'을 활용하듯, 데이터베이스에서도 특정 컬럼의 데이터를 미리 정렬하여 별도의 메모리 공간(TableSpace)에 보관해 두는 검색 최적화 기술이다.풀 테이블 스캔(Full Table Scan)의 한계: 인덱스가 없는 테이블에서 특정 조건(WHERE)을 검색하면, 오라클 엔진은 테이블의 첫 번째 행부터 마지막 행까지 무식하게 다 ..
