HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
🐴
[2기 - 마르코] 10주차 RBF
🐴

[2기 - 마르코] 10주차 RBF

주차
SpringBoot Part6
회고일
May 25, 2022
참여자
멘토
Property
tag
 
1주 간의 수업과 과제를 진행하면서 새로 알게 된 개념이나 잘못 알았던 개념에 대해 이야기 해봅시다.
 

강태산

  • Spring-Session을 통해 세션 클러스터링을 구현해본점이 좋았다.
  • @Transactional을 이해하고, 주의점을 배웠다.
  • package-private을 조금 이해할 수 있었다.
    • Service → Converter
    • Class의 접근제어 지시자를 변경한다.
  • cascade, 고아객체를 이해했다.
  • @Transactional을 더 이해했다.
    • 단순 Read에도 붙여주어야 지연로딩이 가능하다.
  • Security와 JWT를 활용한 인증, 인가 방식을 배울 수 있었다.
    • JwtAuthenticationFilter 구현
    • SecurityContextRepository 커스텀

김지웅

  • JPA 프록시, 지연로딩과 즉시로딩 이 부분을 좀 더 자세히 알게되었음
  • DTO를 여러개로 만드는 것이 코드를 읽을 때 조금 더 좋았다는 걸 알게됨
  • 스프링 세션을 겉핥기? 로라도 알게된 점이 좋았음. 처음 보는 형태였기 때문에.
  • DDD 책 예제 코드를 좀 따라쳐보면서 어떤게 도메인 로직이고 하위 도메인 간에 지켜져야할 규칙들에 대해 자세히 알게됨
  • 홍구님이 세션에서 설명해주신 CQRS에 대해 확실히 이해가 되었고 예제 코드를 따라치면서 패키지 구조를 어떻게 가져가야할지에 대해 알게되었다.
  • 깨끗한 코드는 어떤 코드인가?
    • 모든 것을 검증하는 세세하고, 한 가지만 하는 코드
    • 가독성이 좋은 코드
    • 남이 고치기 쉬운 코드
    • 주의 깊게 짠 코드
    • 중복 없음, 네이밍 깔끔, 단순한 추상화가 된 코드

방은혁

  • Spring Security 강의를 통해 Spring Session의 동작원리를 배웠다. 그리고 일일 미션을 통해 JPA로 커스터마이징한 UserDetailsService 구현체를 만드는 것도 처음 해봤다.
  • 이펙티브 자바를 통해 클래스의 접근 제어자와 은닉화에 대해 더 자세한 내용을 배웠다.
  • JPA 피드백을 반영하면서, Exception Handler 개념을 다시 정리하고 적용했다.
  • 이펙티브 자바를 통해 클래스를 불변으로 만들면 얻을 수 있는 장점에 대해 알 수 있었다.
  • Spring Security 강의를 통해 OAuth의 정의, 종류에 대해 알 수 있었다. 또 Authorization Code Grant 구현 방법도 알 수 있었다.

이한주

  • JPA 엔터티의 기본 생성자는 protected, public 접근 제어자가 가능하다. hibernate가 생성한 proxy 객체가 엔터티 클래스를 상속하기 때문이다.
  • 하드코딩(생성자 인자에 문자열을 직접 넣음)을 하기 보다는 상수를 활용하는게 가독성이 좋은 코드가 된다.
  • 데이터베이스를 사용한 인증 방법을 배움
  • 서비스 계층의 Read 작업에도 @Transactional 을 붙여서 안전성을 높일 수 있다.
  • 스프링에서 JSON 데이터가 넘어올 때 Jackson2HttpMessageConvert 클래스가 ObjectMapper 를 이용해 변환을 해줘서 DTO 클래스에 setter가 따로 없어도 된다.
  • OAuth 인증에 Authorization Code Grant 말고도 다른 방식을 배울 수 있었다.

정다현

  • toString 메서드 정의할 때 + 연산자를 사용해야 할지 StringBuilder를 사용할 지 많이 고민했었는데, ToStringBuilder를 알게 되었다. 앞으로 toString 메서드 정의를 할 때는 ToStringBuilder를 사용할 것 같다.
  • yaml로 DB 설정하는 방법이 인상 깊었다. 프로젝트 안에 데이터베이스를 위치시켜서 프로젝트와 묶을 수도 있고 많이 배웠다.
  • 세션 클러스터에 알게 되었고, 서버의 문제가 생겼을 때 세션을 로그인은 어떻게 해결할지 알게 되었다.
  • Oauth 인증 과정에 대해서 알게 되었다
  • dto를 controller하고 model 중에 어디에 위치시킬지 고민이 많는데, 피어 리뷰를 통해서 dto 패키지를 따로 생성해서 위치시켰다
  • spring validator를 직접 활용해보았다. Id에는 NonNull을 사용하면 생성할 때 에러가 발생했다.
 

팀 토론 (제일 마지막으로!! 중간에 토론 금지!!)

  • 마르코 코드 리뷰 중 Put vs Patch에 대해 고민.
  • 코테에서 파이썬에 대해 어떻게 생각하는가?
  • validation 검증 어떤 방식을 사용 했는지
  • @DataJpaTest 는 Repository 관련한 빈들만 가져와준다.