[우아한테크코스 6기 백엔드] 방탈출 결제 / 배포 회고
·
우아한테크코스 6기 백엔드
⛅️ 들어가는 말우아한테크코스 레벨2의 네번째 미션은 방탈출 결제 / 배포이다.1~2단계는 외부 API(토스 페이먼츠 결제) 연동하는 것이고,3단계는 AWS에 배포하는 것이고,4단계는 문서화를 하는 것이다.⛅️ 미션에 대한 부분⭐️ 외부 요청스프링에서 외부 API 연동은 처음해봤다.일반적으로 RestTemplate, RestClient를 사용하는 것 같았고, 나는 구조가 깔끔한 RestClient를 사용해서 구현했다.단순히 외부 요청만 하면 될 거라 생각했는데 생각보다 할 일이 많았다.Connection TimeoutRead Timeout전체 응답 중 어떤 응답을 사용할지외부 요청에 대한 에러를 어떻게 내 클라이언트에게 전달할지실패 시 어떻게 처리할지결제에 대한 부분은 정합성이 중요하기 때문에 요청과 응..
[우아한테크코스 6기 백엔드] 방탈출 예약 대기 회고
·
카테고리 없음
⛅️ 들어가는 말우아한테크코스 레벨2의 세번째 미션은 방탈출 예약 대기이다. 1~2단계는 JDBC에서 JPA로 전환하는 것이고,3~4단계는 예약 대기 기능을 구현하는 것이었다. JPA를 오랜만에 사용해서 그런지 구체적인 사용법이 잘 기억이 나지 않았다.그래서 블로그나 공식문서를 계속 찾아보면서 미션을 진행했다.현업에 가서도 어쩔 수 없을 것 같다는 생각이 든다.⛅️ 미션에 대한 부분JPA 관련해서 미션을 진행하면서 실제 query가 어떻게 날아가는지 자주 확인했던 것 같다. 예를 들어, findByXXX와 findByXXXId를 사용할 때 findByXXXId는 join이 걸려서 나간다는 것이다. 물론 최신 버전에서는 개선된 부분이다. 또는 join fetch를 사용하면 지연 로딩에서 한 번에 불러온다는..
[우아한테크코스 6기 백엔드] 방탈출 사용자 예약 회고
·
우아한테크코스 6기 백엔드
들어가는 말우아한테크코스 레벨2의 두번째 미션은 방탈출 사용자 예약이다. 1~3단계는 예외 처리와 복잡한 쿼리에 대한 내용이고,4~6단계는 스프링을 사용한 인증에 관한 내용이었다. 미션을 진행하면서도 처음해보는 사람들이 잘 따라올 수 있을까 걱정했는데, 역시 PR 개수나 Merge 개수를 보니 많이 어려워한 것 같다.미션에 대해서1-3단계1-3단계에서는 페어프로그래밍이라 어려운 내용은 없게 했던 것 같다.주요한 내용은 @ControllerAdvice와 @ExceptionHandler를 사용하는 것이었다. 미션을 하면서 생각했던 것이 domain에서 illegalArgumentException같은 표준 에러를 넘겨주거나 Repository interface에서 default 메서드를 만들어서 NoSuchE..
[우아한테크코스 6기 백엔드] 방탈출 예약 관리 회고
·
우아한테크코스 6기 백엔드
들어가는 말우아한테크코스 레벨2의 첫번째 미션은 방탈출 예약 관리이다.이번 백엔드 6기에서는 이전과 달리 레벨2 미션 주제가 방탈출로 묶여있다.레벨의 각 미션에서는 이전에 했던 코드를 재사용하는 것 같다.미션에 대해서레벨2는 스프링 프레임워크에 대해서 소프트 랜딩을 하는 과정이라고 한다.첫번째 미션만 보긴 했지만 문제들이 레벨1에 비해 생각할 것들이 없었다.대부분이 예제로부터 가져다 쓰면 풀리는 문제들이었다. 1-3단계는 스프링과 인메모리 DB(List)를 사용해보는 것이었다.단순하게 스프링으로 CRUD를 하고, 요청과 응답을 어떻게 하는지 생각해보는 시간이었던 것 같다. 4-9단계는 H2 DB를 연결하고, 복잡한 스키마를 작성해 보는 것을 의도한 것 같다. 그리고 그 과정에서 계층화를 왜 시키는지에 대..
[우아한테크코스 6기 백엔드] 체스 회고
·
우아한테크코스 6기 백엔드
들어가는 말우아한테크코스 레벨1의 네번째 미션은 체스 미션이다. 이번 미션의 목표는 OOP와 DB다.체스 미션은 4개의 step으로 이루어져 있다.step 1, 2, 3에서는 체스를 구현하고, step 4에서는 체스 미션에 DB를 적용하는 식으로 단계가 구성되어 있다.디자인 패턴체스 게임에서 중점적으로 볼 부분은 명령어, 기물 추상화, 게임 진행 상태라고 생각한다. 이 부분은 각각 커맨드 패턴, 템플릿 메서드 패턴 또는 상속, 상태 패턴이라는 디자인 패턴들로 구현할 수 있다.커맨드 패턴start, end, move $1 $2, status같은 명령어들을 enum으로 만들고, 인자 개수를 검증할 수 있고, 각각 명령어마다 액션들을 Map으로 만들어서 처리해줬다.추상 클래스 상속체스에서는 폰, 퀸, 킹, 룩..
[우아한테크코스 6기 백엔드] 블랙잭 회고
·
우아한테크코스 6기 백엔드
⭐️ 들어가는 말우아한테크코스 레벨1의 세번째 미션은 사다리 타기 미션이다. 이번 미션의 목표는 클린 코드다.클린 코드란 무엇일까??내가 생각하는 클린 코드란 읽기 쉽고, 이해하기 쉬우며, 수정하기 쉬운 코드라고 생각한다.이번 미션을 진행하면서 중점을 뒀던 부분은 다음과 같다.명확한 이름 사용간결함재사용성테스트 가능성일관성리뷰를 받으면서 코드가 좀 지저분해지긴 했지만 나름 지켰다고 생각한다. 이번 미션에서 아쉬운 점은 1차 리뷰에 대해서 제출 시간을 넘겨서 받지를 못했다. 빠르게 2차를 구현하고 리뷰를 받자는 마음에 너무 급하게 구현한 것도 조금 문제였던 것 같다. 개인적으로 생각할 시간을 너무 갖지 않았다.물론 그 시간에 "오브젝트"라는 엄청난 책을 읽어서 많은 지식을 얻기는 했다.⭐️ 도메인 지식이번..