issues
search
jinho-yoo-jack
/
wanted-preonboarding-challenge-backend-16
원티드 프리온보딩 백엔드 챌린지 사전과제
58
stars
153
forks
source link
문종운 - 2월 사전 과제 제출합니다.
#16
Open
bombo-dev
opened
7 months ago
bombo-dev
commented
7 months ago
💡 사전 배경
예약의 관점에서 고객이 필요하다고 판단하여 Users 테이블과 정산을 포함한 Accounts 테이블을 추가하였습니다.
이 외의 테이블은 사전에 주어진 조건과 동일하게 가져갔습니다. 단 Entity에서 Date 컬럼을 LocalDateTime 으로 변경하였습니다.
💡 구현 초점
최대한 인프라에 의존하지 않고, 확장 가능하고 변경 가능한 코드를 작성하는 것에 중점을 두었습니다.
클래스를 많이 작성하더라도 결합도와 의존도를 줄여 유지보수하기 편하도록 구현하였습니다.
할인 조건은 비즈니스적으로 이미 정해져 있는 두 가지 할인 규약과 여러가지 조건들이 추가 될 수 있다는 점을 감안하였습니다.
💡 추가된 API
기존에 요구사항에 있는 API 말고도 다른 API를 추가 하였습니다.
공연 예약 알림을 구독하는 API : 해당 공연에 대한 알림을 유저가 구독해두어야 알림을 받을 수 있다고 생각하였습니다.
🔥 테스트 코드
테스트 코드가 외부적인 인프라와 독립적으로 구현되어야 함은 정말 중요합니다.
하지만, 테스트 코드를 작성하면서 추가해주어야 할 API와 기능이 계속 추가 됨에 따라 초기 Insert data 를 file로 관리하였습니다.
ex) [공연 생성 시, 예약 가능한 좌석 정보 전체 생성] 등..
단위 테스트, 서비스 통합 테스트, Controller 응답 테스트를 작성하였으며, 최종 테스트는 http 폴더에 직접 API를 호출하여 테스트 하였습니다.
🔺 이후 개선 사항
현재 작성된 코드를 Kotlin 으로 변경해보고, 헥사고날 아키텍쳐를 적용하여 좀 더 변경과 확장에 용이하도록 구현 할 계획입니다.
알림 결과
bombo-dev
commented
7 months ago
@jinho-yoo-jack 혹시 코드 리뷰를 요청드려도 괜찮을까요!? ☺️
💡 사전 배경
💡 구현 초점
💡 추가된 API
🔥 테스트 코드
🔺 이후 개선 사항
알림 결과