2023.11.21
프로젝트 기간 : 2023.11.06 ~ 2023.11.21
두 번째 프로젝트 후기...
쉬울거라고 생각했는데 막상 해보니 쉽지만은 않았던 프로젝트
HTTP 웹 상에서 이뤄지는 요청과 응답 사이클 및 ajax 사용법을 이해하는데 많~은 도움이 되었다.
(좌석 선택 및 결제 기능(API)까진 구현했으면 좋았을텐데 라는 아쉬움..)
팀 소개 :

맡은 역할 :
back-end 파트 전반 및 ajax
구현 기능 :
- sms 본인인증 API 적용
- 웹 크롤링 서비스
- ajax를 통한 DB 데이터 return
새롭게 공부한 내용 :
1) sms 본인인증 API
- coolsms에서 제공하는 유료 서비스 사용
- 회원가입시 15번의 무료 기회 제공
- 사용 방법은 여기를 참고해서 진행
2) 웹 크롤링
- JSOUP 라이브러리 사용
- document 타켓은 cgv로 설정
- 특정 요소에 접근해 데이터 획득(parsing)
- connect 경로 설정이 관건
어려웠던 점?
가장 헷갈린 부분은 DB 테이블 구성이었다.
이전까진 DB 테이블의 각 coulmn을 해당 서비스의 DTO 인스턴스 필드들과 1:1 매칭을 시켜서 별로 어려울게 없었지만,
DB 테이블 구성에 문제가 있다는 것을 깨닫고, 이를 수정하는 과정에서 아래와 같은 고민거리들이 생겼다.
1) 중복 column 제거
- 데이터의 무결성을 위한 중복 column 제거
2) PK column 선정
- 어떤 column을 PK로 설정해 테이블을 Join할 것인가?
3) 테이블간의 관계와 속성을 고려한 FK column 배정
- Join을 위한 FK column을 어느 테이블에 배정할 것인가 ?
우선 굉장히(?) 설명이 잘 되어있는 이 영상을 토대로 DB 테이블을 재구성했다.
그리고 Join을 통해 새로운 View를 만들어 데이터를 조회하고, 하나의 큰(?) DTO 객체에 data를 담아 CRUD를 수행하는 방식으로 진행했다.
구현기능
sms 본인인증 API



JSOUP 웹 크롤링




ajax DB 데이터 return



DB 테이블
ERD
- ERD : Entity Relationship Diagram

Views

실행결과
index

* refs
https://blog.naver.com/yeahdee/222580142711
* git repository
: github.com/hd301/MovieScreen
![]()
'Spring-Java > 프로젝트' 카테고리의 다른 글
| Day124_파이널 프로젝트(feat. 국비교육 수강후기) (1) | 2024.02.20 |
|---|---|
| Day28_MBTI (2) | 2023.09.21 |