본문 바로가기
Spring-Java/프로젝트

Day67_영화예매 사이트

by 현대타운301 2023. 12. 11.

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://coolsms.co.kr/

https://blog.naver.com/yeahdee/222580142711

https://jsoup.org/

 

* git repository

: github.com/hd301/MovieScreen

 

 

 

 

 

'Spring-Java > 프로젝트' 카테고리의 다른 글

Day124_파이널 프로젝트(feat. 국비교육 수강후기)  (1) 2024.02.20
Day28_MBTI  (2) 2023.09.21