주특기 입문 Spring 시험
회원 조회 API를 만드는 것이 시험 문제로 나왔다.
문제에는 회원 목록 DB와 API 설계도, 스켈레톤 코드가 적혀 있었다.
처음에 도대체 어디에 뭘 작성하라는건가 감이 안와서 문제를 여러번 읽다가🤣
인텔리제이를 켜고 Entity부터 차근차근 만들기 시작했다.
틀이 주어졌던 GET 요청 외에 POST 요청을 따로 만들어 Postman으로 테스트까지 한 후 제출했다.
사실 개인과제를 스스로 해결했다면 전혀 어려운 문제는 아니었다.
포인트는 1) Entity를 그대로 반환하지 않고 DTO로 변환 후 반환하는 것과, 2) 예외를 발생시키는 부분(NullPointerException)이었을 거라 생각한다.
이후 문제풀이 세션을 듣다 내가 전체 조회 부분에서 throw 처리를 하지 않았다는 걸 깨달았다...^^
맞아... 당연히 전체 조회에서도 찾으려는 값이 없을 수 있는건데 너무 안일하게 생각했던 것 같다.
알려주는 것만 습득하지 말고, 그 이상을 고민하고 궁금해하자.
세션에서는 여기서 발생 시킨 예외를 Controller에서 try catch로 처리하는 과정을 보여주었는데
새롭게 알아가는 부분이라 신기하고, 흥미로웠다.
AOP라는 개념을 배우면 더 세련되게 예외 처리를 할 수 있을거라 하셨다.
조금 놀랐던 점은, 세션에서 기술 매니저님이 상속을 통한 다형성으로 DTO를 풀어내신게 내가 제출한 과제와 똑같았다는 점이다.
덕분에 기술 매니저님의 의도를 바로 알아챌 수 있었다.
그저 알맞은 성공 여부를 반환하고 싶었을 뿐인데.. 얻어걸린 느낌이지만(ㅋㅋㅋ) 나름 뿌듯했다!
[Spring Boot로 CRUD API 만들기] 과제 제출
과제를 시작하면서 미리 만들어뒀던 Use Case와 ERD,
열심히 구글링해서 만들어낸 Postman API 명세서,
과제를 진행하면서 겪은 에러와 궁금증들을 적은 블로그 링크를
깃헙 리드미에 적어 과제를 제출하였다.
제출 링크에는 이런 질문들이 있었다.
request는 어떤 방식을 사용했는지,
RESTful한 API를 설계했는지,
적절한 관심사 분리를 적용했는지.
답변을 작성하면서 다시 한 번 과제를 돌아볼 수 있었다.
👇 제출 과제 보러가기 👇
기술 매니저님의 조언
- 중심 부분만 이해했다면 괜찮다.
- 과제가 된 만큼만 팀 내에서 코드리뷰 해보기
- 네이밍 관련 부분
- 메서드 분리, 위치
- 과제 빨리 끝내고 리팩토링 하기
- 공부해 볼 관련 키워드
- 자바 빈(Bean), 스프링 빈(Bean)
- 의존성 주입(DI)
- 생성자, setter, builder, 정적 메서드(하나의 DTO에서 여러 생성자)
- DTO
- Entity를 DTO로 변환
- 패키지 분리
- inner class
- Lombok 롬복 없이 구현해보기
- ORM > JPA > Spring Data JPA (JPA와 조금 다름)
- queryDSL
- 트랜잭션, 커밋, 롤백
- @Transactional(readOnly =true) 요건 다른 애임
- S3, RDS
오늘의 나는
시험과 과제 제출을 마지막으로 주특기 입문 주차가 끝이 났다.
이번 입문 주차의 개인적인 목표는 '좋은 질문 하기!' 였는데
좋은.. 질문이었는진 모르겠지만 다양한 질문을 하고 답변을 받으면서 새롭게 알게된 부분이 많은 것 같다.
항해의 기술 매니저님들은 절대 정답을 주지 않으시기 때문에..
스스로 찾아가면서 부딪히고 깨지고 좀 이래야 뼈에 새겨지는 것 같기도..?😛
이제 내일부터 주특기 숙련 주차 시작이다.
모든 기술 매니저님들이 과제를 최대한 빨리 끝내고 더 다양한 경험(팀원들과의 코드리뷰라던지 리팩토링 같은)을 하기를 추천해주셨다.
가능..할진 모르겠지만 일단 무조건 해보는거다!
'📝 TIL' 카테고리의 다른 글
[TIL] 3주차 주특기 숙련ㅣ컨디션 난조 (2) | 2022.12.03 |
---|---|
[TIL] 3주차 주특기 숙련ㅣ주간 시작 (0) | 2022.12.02 |
[TIL] 3주차 주특기 입문ㅣCRUD API 만들기 3편 (0) | 2022.11.30 |
[TIL] 3주차 주특기 입문ㅣCRUD API 만들기 2편 (4) | 2022.11.29 |
[TIL] 3주차 주특기 입문ㅣCRUD API 만들기 1편 (3) | 2022.11.28 |