일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 강아지 열사병
- 쿠팡메크로
- 쿠팡매크로
- 강아지 유기농
- 부산 맛집
- 샤로수길 맛집
- 티켓팅메크로
- 반려견 더위
- 동인천 맛집
- 홀리스틱 유기농
- 샤로수길 데이트
- 반려견 종류
- 반려견 유기농 사료
- 신포동 맛집
- 티켓팅매크로
- 닥스훈트
- 반려견 홀리스틱
- 강아지 종류
- 강아지 홀리스틱
- 반려견 유기농
- 반려견 열사병
- 강아지종류
- 강아지 더위
- 강아지
- 반려견
- 국비지원 예습
- 강아지 유기농 사료
- 서울대입구 맛집
- 자동화봇
- 반려견 사료등급
- Today
- Total
심심한잉여의 잡동사니
Kh 국비 지원 학원 - JDBC (feat.미니프로젝트) 본문
JDBC과정에 돌입했다.
사실상 SQL과 JAVA의 심화과정이라고 생각한다.
JDBC를 적용하기 앞서 ERD를 만들었다.
해당 부분에 대해서 쇼핑몰MD경험이 있던 내가 대부분 진행하였다.
처음에는 다같이 어떤 기능을 구현할지 구상 후 어떻게 이어갈지에 대해서 진행해보았으며
ERD설계라는 경험이 매우 좋은 경험이였던 것 같다.
직접 해보기 전에는 PK와 FK가 막막하였고 연결을 어떻게 해둬야하나 고민이 많이 되었지만
직접 설계를 해보니 조금씩은 이해가 갔다.
그리고 직접 코드를 짜니 아 이건 이렇게 연결했어야 했는데 같은 생각이 많이 들었다.
JAVA콘솔로만 진행한다는 점을 감안하여 최대한 간소화하여 프로젝트를 진행했다.
=======회원============ 1. 상품조회 2. 상품 장바구니 담기 5. 리뷰 작성 및 조회 =======직원============ 1. 상품조회 2. 상품등록 3. 상품제거 4. 상품재고 |
위 표에서 취소 안시킨 기능들에 대해서는 본인이 기능구현을 했으며
아무래도 직접 설계한 본인이 가장 많은 기능을 구현해야 할 것 같았다.
또한, 처음에 아무도 어떤 기능을 가져간다고 하지 않아 해당 부분에 대해서 먼저 많은 기능을 가져간 후 어떻게 할건지 물어봐야 불화없이 프로젝트가 진행 될 것으로 보였다.
이제 해당 기능들을 어떻게 구현할지 고민을 해볼 차례이다.
=======회원============ 1. 상품조회(페이징 기능 구현) 1-1. 상품 전체 조회 1-2. 카테고리 조회 1-3. 상품 상세조회 2. 상품 장바구니 CRUD 2-1. 상품 장바구니 담기 2-2. 장바구니 내 상품 삭제 2-3. 장바구니 전체 삭제 2-4. 장바구니 추가 시 중복된 상품이라면 수량만 UP =======직원============ 1. 상품조회 1-1. 상품 전체 조회 1-2. 카테고리 조회 1-3. 상품 상세조회 2. 상품CRUD 2-1. 상품 등록 2-2. 상품 수정 2-3. 상품 제거 2-4. 상품 전체 제거 2-5. 상품 상세 조회(1-3과 같음) |
위 표와같이 기능을 상세히 나눈 후 진행을 하고자 하였다.
소요된 시간은 8시간정도 걸린 것 같다.
페이징 관련해서 좀 헤멘감이 있지만 문제는 없었다.
페이징 관련하여 어떻게 진행할지 고민을 많이하였다.
JAVA로 통으로 SELECT해서 할지 혹은 쿼리를 이용하여 할지 고민이 많이 되긴 하였다.
강사님 말로는 자바로 하는게 성능이 잘나온다 라는 말을 많이 해주셔서 고민이 되었으나
다른 사람들의 의견으로는 그렇게 하면 램에 많은 용량이 들어가 오히려 오류가 날 수 있다고 했다.
그래서 실험을 해보았으나
DB자체가 큰 용량이 아니기에 큰 의미는 없었던 것 같다.
이에 대해 어떤게 더 나을지 몰라 일단은 반반 갈라서
user의 메뉴에는 자바로 가져와서 list에 넣어 진행하였고
admin의 메뉴에는 쿼리문을 이용하여 부분부분 나누어 사용을 했다.
위 코드와 같이 페이징 쿼리를 주었으며
ROWNUM에 WHERE을 주기위해 서브쿼리로 ROWNUM을 주었고
ROWNUM을 정렬 기준으로 넣기위해 그 안에 중복 서브쿼리로 ORDER BY가 적용된 서브쿼리를 넣었다.
위 코드와 같이 페이지에 따라 해당 쿼리문에서 필요한 범위만큼 가져오도록 코드를 짯으며
판매 여부는 0과 1로 구분하고 재고에 따라 품절로도 설정이 가능하도록 만들었다.
또한 현재 페이지가 어떻게 되는지에 따라 다음 페이지가 없다면 다음페이지 버튼이 숨겨지도록,
이전 페이지가 없다면 이전페이지가 숨겨지도록 하였다.
하지만 지금 이 블로그 글을 작성하면서 생각난 것은 쿼리중에 COUNT함수를 이용하여
최대페이지를 구분하여 만들수도 있을 것 같다는 생각이 들었다.
추후 세미프로젝트를 진행하게되면 한번 해봐야겠다.
개인적으로 JDBC는 JAVA를 열심히해서 그런지 크게 어려운 것은 없었지만
팀별 프로젝트를 진행하면서 다른 사람의 코드를 보며 많은 것을 배우는 시간을 가졌던 것 같다.
비전공으로서 놓친 부분 혹은 미흡했던 부분을 많이 배웠고
비전공이지만 어떤 강점을 이용할 수 있는지 깨닫게 되는 계기가 된 것 같다.
'코딩일기 > Java' 카테고리의 다른 글
JAVA - 배열을 LIST로 넣는 방법 (0) | 2021.10.13 |
---|---|
JAVA - 향상된 for문이 기존 for문보다 성능이 좋다? (0) | 2021.10.13 |
JAVA - 예외처리, 제네릭, 컬렉션 (0) | 2021.08.30 |
JAVA - 기본 API (0) | 2021.08.29 |
JAVA - 다형성 (0) | 2021.08.23 |