부트캠프/항해99

4주차 주특기 숙련 회고

byungmin 2022. 2. 5. 18:04
  • 기간 : 01/28 (금) ~ 02/03 (목)
이번 주차 주제 : 주특기에 익숙해지고 조금 더 생각하며 로직 짜기
개인 목표 : 프로젝트에 시큐리티 적용, JPA 연관관계 적용, CRUD 연습

이번주 내가 배운 것

  • 백앤드
    • 스프링 시큐리티 세션방식으로 로그인 적용, 시큐리티 필터 사용해서 커스텀 하기
    • OAuth2로 구글, 카카오 연동
    • JPA의 연관관계, 영속성 컨택스트 적용하고 익숙해지기
    • RESTful API 작성해보기
    • 게시글 페이징 처리 적용
    • validation 사용
    • 공통 예외 처리 → 공통 ErrorResponse 만들기

배운점

  • 과제 시작 전 API를 혼자 짜보았다. REST API를 짜고 싶었는데 작성 후 매니저님한테 피드백 받으면서 수정했다. API를 먼저 설계하고 개발에 들어가니까 편했다.
  • 이번 주차에 가장 많이 고민했던 것은 응답 데이터를 어떤식으로 전해줄지에 대한 고민이었다.
  • 핸들러로 예외처리를 하고 나서 보낼 응답 데이터와 요청 성공시 보낼 응답 데이터를 공통으로 사용하려고 했는데 복잡해져서 매니저님께 여쭤봤다. 피드백을 통해 응답DTO를 예외처리 응답과 일반 성공시 응답을 다르게 해서 처리하도록 수정
  • 스프링 시큐리티가 로그인을 자동으로 수행해주는데 중간에 그 흐름을 내 입맛대로 바꾸고 싶었다. 로그인 실패시 alert을 띄어주기 위해서 로그인실패시 발동되는 필터를 커스텀해서 로직을 작성했다. 스프링 시큐리티는 필터가 겁나게 많다. 그래도 커스텀해서 쓰도록 잘 구현되어있으니 내 입맛에 맛게 잘 사용하면 로그인 로직을 쉽게 변경할 수 있을 것 같다.
  • 유효성 검사를 위해 validation을 사용했다. 클라이언트 단에서 1차로 검사하고 백앤드에서 한번 더 검사했다. 요청DTO에 유효성 어노테이션을 사용해서 검증 로직을 구현했다. @Valid 를 사용해서 걸리는 예외를 공통으로 처리해서 에러 응답 DTO로 보냈다.
  • JPA를 사용하면서 게시글과 댓글에 대한 연관관계 설정, 무한참조 방지하는 방법 등 배운 것을 프로젝트에 적용할 수 있었다. 아직 많이 어렵다.
  • 아무튼 숙련 과제를 통해 로직 구현과 전체적인 흐름에 조금 더 익숙해진 것 같다.
  • @Valid 와 BindingResult 때문에 2시간 날려먹었다. 매개변수 순서 짜증나네.. 아무튼 @Valid 다음엔 꼭 BindingResult가 오게 하자...
  • @NotNull, @NotBlank, @NotEmpty 차이, @NotBlank 써야징
질문 내용
  • 예외처리 해서 응답해줄 때 400번대, 500번대로 넘기고 클라이언트 단에서 얼럿띄어주는 형식으로 만들었는데 콘솔에 400에러가 그대로 뜨는데 그냥 둬도 될지, 아니면 상태코드는 200으로 넘기고 분기로 에러 나눠서 처리하면 좋을지

상태코드는 200으로 넘기되 응답 메시지 안에 상태코드랑 메시지 넘겨주면 될듯, 그리고 프론트랑 에러 부분 협의 하면 좋을 듯

 

이번주 기술 키워드 : ORM, SQL, MVC
 

ORM 정리

ORM (Object-Relational Mapping)

apricot-tarsal-29a.notion.site

  • ORM에 대한 이해와 JPA를 사용할 때의 장단점 등에 대해 알 수 있었다. 

 

잘한점

  • 이번주 과제 난이도가 헬이었다. 일단 요구사항을 끝까지 완료했다. (테스트 코드 짜는 것은 포기함)
  • 그동안 배웠던 이론들 (시큐리티, JPA 등)을 프로젝트에 코드로 구현하고 적용했던 것
  • 꾸준히 했던 것. 코드를 보고 따라치는 것에서 그치는게 아니라 어떻게 적용하고 뭐가 더 좋을지 고민하는 시간을 더욱 가져야겠다.
  • 구현할수록 재밌어진다. ㅋㅋ
  • 과제를 마무리하고 팀원들과 각자 구현한 로직을 리뷰하는 시간을 가졌다. 내가 짠 코드뿐만 아니라 다른 사람이 짠 코드를 통해 배울점이 많이 있었다.
  • 팀원들의 오류를 같이 봐주면서 해결하는 시간이 많이 있었다. 나도 날수도 있는 오류다보니 이 시간도 배울 수 있는 시간이었다.

 

부족했던 점

  • 테스트 코드는 작성 못했다. 자꾸 에러가 난다. 테스트 코드 관련 공부를 해야할듯!@
  • 이번주는 과제가 많아서 그런지 너무 과제에만 신경을 쓴듯. 시간을 잘 쪼개서 독서와 이론공부도 겸해야 겠다.
  • 응답을 어떻게 보낼지는 프론트 개발자와 같이 협의해서 정하면 좋을 것 같다.
  • 자바 공부 해야겠다!!

 

보완 / 발전하고 싶은 점

  • 테스트 코드 작성, TDD에 대한 공부 이해
  • 이제 곧 프론트앤드와 협업을 하는데 넘겨줄 데이터를 어떤식으로 보내줄지, 보내줄 때 어떻게 로직을 구현할지 조금 더 공부하고 정리해놓자.
  • swagger 적용안해봤네.. 다음 플젝 때는 적용해바야지

'부트캠프 > 항해99' 카테고리의 다른 글

6주차 미니프로젝트 회고  (0) 2022.02.21
5주차 주특기 심화 회고  (0) 2022.02.13
3주차 주특기 기초 회고  (0) 2022.01.30
2주차 프로젝트 회고  (0) 2022.01.23
1주차 프로젝트 회고  (0) 2022.01.16