TIL 27.

Sol Karsian·2025년 3월 19일

🗓️ 27일차 TIL: Java와 Oracle을 활용한 회원 정보 관리 프로그램 (JDBC)

✅ 학습 목표

  • JDBC를 활용한 회원 정보 관리 시스템 구성
  • DTO, DAO, Service, View 계층 나눔과 책임 이해
  • Java와 Oracle을 연동해 사용자 등록/조회 기능 구현

1. 프로젝트 구조 및 설정

📁 프로젝트 패키지 구조

  • edu.kh.jdbc.dto: DTO (Data Transfer Object)
  • edu.kh.jdbc.dao: DAO (Data Access Object)
  • edu.kh.jdbc.service: 비즈니스 로직 처리 계층
  • edu.kh.jdbc.view: 사용자 UI 계층
  • edu.kh.jdbc.common: JDBC 공통 기능 제공

📦 필수 라이브러리

  • ojdbc6.jar: 오라클 DB와 Java 연동용
  • lombok.jar: DTO 자동 생성 도구

2. DTO - 데이터 상자 역할

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
    private int userNo;
    private String userId;
    private String userPw;
    private String userName;
    private String enrollDate; // 날짜를 문자열로 처리
}

3. DAO - 데이터베이스 작업 담당

  • PreparedStatement: SQL 인젝션 방지
  • ResultSet: 조회 결과 저장
  • 주요 기능: 아이디로 조회, 사용자 전체 조회, 사용자 등록 등
public class UserDAO {
    public User selectId(Connection conn, String input) { ... }
    public int InsertUser(Connection conn, User user) { ... }
    public List<User> selectAll(Connection conn) { ... }
}

4. Service - 비즈니스 로직 처리

  • DAO를 호출해 데이터 처리
  • JDBC 템플릿으로 트랜잭션 처리
public class UserService {
    private UserDAO dao = new UserDAO();

    public User selectId(String input) { ... }
    public int insertUser(User user) { ... }
    public List<User> selectAll() { ... }
}

5. View - 사용자 인터페이스

  • 사용자 입력 및 출력 처리
  • Scanner로 값 받고 결과 출력
  • Service 계층 호출하여 기능 실행
public class UserView {
    private Scanner sc = new Scanner(System.in);
    private UserService service = new UserService();

    public void mainMenu() { ... }
    private void insertUser() { ... }
    private void selectAll() { ... }
}

6. 실행 및 테스트

  • Run 클래스 실행 시 UserView.mainMenu() 호출 → 프로그램 시작

📘 느낀점

  • 계층 구조로 나누니 프로그램의 역할 분담이 명확해짐
  • DTO와 DAO의 역할을 확실히 이해함
  • JDBC를 통한 실제 DB 연동 흐름에 익숙해짐
  • SQL Injection 방지를 위해 PreparedStatement의 중요성 체감
profile
개발자 희망자 입니다.

0개의 댓글