관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

파일 업로드 5 - 상품 페이지 제작 1 : 상품 정보를 저장하기 위한 VO 클래스와 데이터베이스 처리를 위한 DAO 클래스 본문

웹 · 앱 개발/JSP & Servlet

파일 업로드 5 - 상품 페이지 제작 1 : 상품 정보를 저장하기 위한 VO 클래스와 데이터베이스 처리를 위한 DAO 클래스

huenuri 2024. 12. 17. 09:48

데이터베이스도 생성했으니 다음으로 할 일은 자바 프로젝트를 만드는 일이다. 삼품 정보를 저장하기 위한 VO 클래스부터 만들어보겠다.


 

 

 

 

상품 정보를 저장하기 위한 VO 클래스 정의

 

 

이제 상품 테이블의 정보를 저장한 VO 클래스를 설계해보자. VO 객체에 저장할 내용은 테이블에서 얻어오기 때문에 그 구조가 테이블과 동일해야 한다. 테이블에 저장된 하나의 행(로우) 정보를 통째로 전송하기 위해 이 자체가 VO 클래스가 되고 여러 개의 컬럼이 모여서 행이 된 것이다.

그렇기에 클래스를 구성하는 각각의 필드가 바로 컬럼 값ㅊ을 저장하는 공간이 된다. VO 클래스는 아래와 같이 매핑한다고 생각하면 쉽다.

 

 


 

 

 

 

 

[직접 해보기] 이클립스에서 상품 정보를 저장하는 VO 클래스 작성

 

1. 패키지 안에 클래스 만들기

 

정말 어렵게 패키지를 이동했다. 이 문제에 대한 해결 방법도 다른 포스트에 기록해놓았다.


 

 

 

 

2. 필드 생성하기


 

 

 

 

3. getter, setter 생성하기

 

 


 

 

 

 

 

데이터베이스 처리를 위한 DAO 클래스

 

 

 

 

9장에서는 회원 관리를 위해 member 테이블을 처리하기 위한 MemberDAO를 만들었다면 이번 장에서는 상품 관리를 위해 product 테이블을 처리하기 위한 ProductDAO를 만들 것이다. DAO 클래스에서 하는 일은 테이블이 달라짐에 따라 이를 구성하는 컬럼만 달라질 뿐 처리하는 CRUD 작업을 주로 하는 클래스(객체)이다.

 

 

 

 

 

DAO 클래스를 설계하기 전에 데이터베이스에 접근하여 Connection 객체를 얻어와야 한다. 자바와 오라클은 분리된 서로 다른 시스템이기 때문에 자바에서 오라클을 사용하기 위해서는 오라클에 접속을 요청해서 이에 성공해야 한다.

커넥션을 얻는 작업은 오라클을 사용하기 위해 반드시 선행되어야 하는 작업이다. 이러한 Connection 객체를 얻어오는 과정은 어느 테이블을 다루든지 공통되는 내용이기 때문에 이 내용은 클래스로 분리하기로 한다. 이렇게 분리해놓으면 다른 테이블을 다루는 DAO 클래스에서도 이 분리해놓은 객체로 커넥션을 얻을 수 있어 코드를 재활용할 수 있는 장점이 생긴다.


 

 

 

 

 

[직접 해보기] Connection 객체 얻기와 사용이 끝난 리소스 해제를 위한 클래스

 

1. 패키지 안에 클래스 생성하기


 

 

 

 

2. 클래스 코드 작성하기


 

 

 

 

 

 

학습을 마치고

이번 학습은 정말 힘들고 어려웠다. 특히 패키지를 만드는 작업이 잘 되지 않아서 얼마나 많은 시간을 잡아먹었는지 모른다. 그 시간이 조금 아깝기도 했지만 늘 되지 않던 문제를 비로소 해결할 수 있어서 감사했다.

이제 아침도 먹고 조금 쉬었다가 남은 실습을 진행해보려고 한다. 코드에 오류만 생기지 않아도 무척 잘하고 있는 것이다. 어제 파일 업로드 실습이 정말 안 되서 화가 많이 났었다. 그때 난 분명히 문제를 반드시 해결하는 사람이니 그날 저녁이나 늦어도 다음날 새벽에는 문제를 풀 수 있을 거라고 글을 썼었다.

 

근데 정말로 그대로 되어서 너무나 신기했다. 오늘 아침에는 생성형 AI에 관한 책을 주문했다. 요즘은 책 값이 오르기도 하고 전공 서적은 보통 3만원이 넘어간다. 원래 4만원짜리 책을 할인받아 3만 5천원에 구매했다. AI 분야에서 내가 관심있고 앞으로도 계속 공부하고 싶은 분야를 찾았다는 것이 인공지능 사관학교에서의 가장 큰 수확이었다.

다음에 시간나면 수료식도 정리해볼 것이다. 내가 관심있는 인공지능 분야는 컴퓨터 비전, 생성형 AI, 딥러닝 분야인 것 같다. 앞으로 이 분야를 열심히 공부해서 내가 차후에 만들게 될 게임에 접목시킬 것이다.