-
[KB IT’s Your Life 7기] 데이터 베이스 활용 후기 2편What I learn today? 2026. 6. 9. 02:58
안녕하세요.
오늘은 6월 1주차 기술블로그를 작성하고자 합니다.
이번주는 데이터베이스 활용후기 2편을 작성할 것인데요.지난 시간에 이어서 작성을 해보도록 하겠습니다!

1. 자바 프로그램의 시작과 기본 자료형
자바 프로그램은 JVM이 가장 먼저 호출하는 진입점인 public static void main() 메소드에서 시작됩니다. 데이터를 메모리에 담기 위해 변수를 선언할 때, 자바의 자료형은 크게 값 자체를 저장하는 '기본 자료형(Primitive Type)'과 객체의 주소를 저장하는 '참조 자료형(Reference Type)'으로 나뉩니다.

지역 변수는 반드시 초기화한 뒤에 사용해야 하며, 자바 15부터는 큰따옴표 세 개(""")를 이용한 텍스트 블록을 지원하여 여러 줄의 문자열을 매우 간편하게 작성할 수 있습니다.
2. 객체지향 프로그래밍(OOP)의 핵심
자바의 핵심은 단연 객체지향입니다. 사물의 정적인 속성은 필드(변수)로, 동적인 기능은 메소드로 추출하는 '추상화'를 통해 클래스를 설계합니다. new 연산자로 객체를 생성하면 데이터는 힙(Heap) 메모리 영역에 만들어집니다.

객체지향의 강력함은 상속(Inheritance)과 다형성에서 나옵니다. 부모 클래스의 공통 필드와 메소드를 자식이 물려받아 재사용할 수 있으며, 추상 클래스와 인터페이스를 활용해 서로 다른 클래스들이 동일한 규격으로 동작하도록 설계할 수 있습니다.
3. 멀티 스레드와 동시성 제어
하나의 프로세스 내에서 여러 작업을 동시에 처리하려면 스레드(Thread)를 사용해야 합니다. 메인 스레드 외에 추가적인 작업 스레드를 만들려면 Thread 클래스를 상속받거나 Runnable 인터페이스를 구현합니다.

주의할 점은, 여러 스레드가 공유 자원에 동시에 접근하면 데이터 오염(Race Condition)이 발생할 수 있다는 것입니다. 따라서 synchronized 키워드를 활용해 한 번에 하나의 스레드만 접근할 수 있도록 동기화 처리를 반드시 해주어야 합니다.
4. 관계형 데이터베이스와 인덱스 구조
자바로 만든 데이터를 영구적으로 관리하기 위해 MySQL 같은 관계형 DBMS를 사용합니다. 데이터는 테이블 형태(행과 열)로 저장되며, 테이블 간의 관계(Relationship)를 정의하여 사용합니다.

조회 속도를 높이기 위해 인덱스(Index)를 설정하는데, MySQL의 InnoDB는 주로 B-Tree(균형 트리) 구조를 사용합니다. 데이터가 무작정 추가되어 인덱스 페이지 공간이 부족해지면 '페이지 분할'이 발생하여 오히려 성능 저하를 유발할 수 있으므로, 잦은 인덱스 생성은 피하는 것이 좋습니다.

5. 데이터 무결성을 지키는 정규화
데이터베이스를 잘못 설계하면 데이터 삽입, 갱신, 삭제 시 모순이 생기는 '이상 현상(Anomaly)'이 발생합니다. 이를 방지하기 위해 함수 종속성을 분석하여 연관성 있는 속성들로만 릴레이션을 쪼개는 '정규화' 과정을 거칩니다.

정규화를 거친 릴레이션은 정보 손실 없이 자연 조인을 통해 원래 상태로 복원할 수 있어야 합니다.
6. 자바와 DB의 완벽한 만남, JDBC
마지막으로 자바 애플리케이션과 데이터베이스를 연결해 주는 JDBC 프로그래밍입니다. 기본적으로 '드라이버 로드 → 연결(Connection) 생성 → Statement 생성 → SQL 전송 및 결과 받기 → 연결 종료'의 단계로 진행됩니다.

실무에서는 보안과 성능 향상을 위해 SQL 인젝션을 방지하는 PreparedStatement를 사용하며, 특정 테이블의 한 행을 매핑하는 VO(Value Object) 패턴과 데이터베이스 접근을 전담하는 DAO(Data Access Object) 패턴을 적용해 코드를 체계적으로 모듈화합니다.

이러한 전 과정을 탄탄하게 이해한다면 자바 백엔드 개발자로 나아가는 완벽한 뼈대를 갖추게 됩니다.
오늘은 여기까지!
'What I learn today?' 카테고리의 다른 글
[KB IT’s Your Life 7기] 백엔드개발을 위한 자바프로그래밍 후기 | 자바 1편 (0) 2026.04.29 [KB IT’s Your Life 7기] KB 국민은행 부트캠프 TIL 5편_Pinia (프론트엔드 교육 후기 + 부트캠프 한달차 후기) (0) 2026.04.12 [KB IT’s Your Life 7기] KB 국민은행 부트캠프 TIL 3편_Git/ Github 특강 후기 (1) 2026.04.05