1주 간의 수업과 과제를 진행하면서 새로 알게 된 개념이나 잘못 알았던 개념에 대해 이야기 해봅시다.
강태산
- 시큐리티의 내부 동작방식을 좀 더 이해할 수 있었다.
- https에 대해 조금 더 알수 있었다.
- 직접 인증서를 발급하고 어플리케이션에 등록하는과정을 통해
- 일급객체에 개념을 이해하고 적용해보았다.
- 연관관계 매핑과 양방향 매핑의 특징에 대해 이해할 수 있었다.
- 연관관계 주인만이 외래키를 등록, 수정, 삭제할 수 있다. (반대는 읽기만 가능)
- JPA에서 equals, hashcode 사용시 주의사항을 배웠고, 날짜 컬럼을 자동으로 Insert, update해주는 어노테이션을 알게되었다.
김지웅
- 시큐리티 전체적인 오버뷰를 볼 수 있었다.
- api 테스트를 포스트맨으로만 했었는데 테스트 코드로 검증해보는 경험을 해서 좋았다. 하지만 테스트 코드를 작성하는 것보단 포스트맨 같은 API 툴을 쓰는게 좀 더 좋은 것 같기도….
- 시큐리티가 하나의 큰 필터라는 것은 알고 있었지만 어떤 역할을 하는 필터들이 있는지 세부적으로 알 수 있었다.
- 게시판 과제를 하면서 DTO에 관련된 개념을 잘 잡고있는 중이다.
- DDD 책을 읽으면서 서비스 계층 관련 이해도를 올렸다.
방은혁
- 강사님께서 디버거를 이용해, 코드를 통해 알려주셔서 이해하는데 도움이 됐다.
- 디버거를 잘 사용하는 것도 개발자의 능력 중 하나같다고 느꼈다. (나는 잘 사용하지 못하는 것 같다.)
- 디버거를 잘 사용하기 위해서는 코드의 내부의 큰 흐름을 알아야 잘 사용할 수 있음을 깨달았다.
- 스프리킹 시큐리티가 대충 필터에서 작용할거라고 예상은 했지만, 자세하게 몰랐는데 이번 강의 통해 자세하게 알 수 있었다.
- 수, 목, 금 더 깊은 구조를 배울 수 있어서 어렵지만, 재밌었다.
- 미션을 진행하면서 keystore, truststore에 대해 처음 알게 되었다.
- keystore : 자신의 개인키, 인증서 저장소
- truststore : 상대방이 맞는지 확인하는 용도로 상대방의 인증서를 보관한다.
- JPA 미션 피드백을 통해 일급 컬렉션, Test Fixture 개념을 공부했고 프로젝트에 적용했다.
- Spring Data Jpa 를 이용해 custom repository를 만드는 방법을 알게 되었다.
이한주
- 보안에 인증과 인가 말고도, 크리덴셜(민감정보) 보안을 최우선으로 해야 한다는 것을 알 수 있었다.
- 시큐리티가 여러 필터를 통해서 구성되어 있다는 것을 알 수 있었다.
- Remember-Me 인증이 쿠키를 통해 인증을 한 다는 것을 알게 됨
- JPA 과제를 하면서 Paging 기능을 찾아봄, JpaRepository가 PagingAndSortingRepository를 상속해서 이 기능을 제공한다는 것을 알게 됨
정다현
- 인증 과정에서 어떤 절차를 거치는지 알 수 있었다
- 이전에는 클래스를 직접 열어봐서 상세하게 알지 않았고, 어떻게 사용하는지만 알았다. 어떻게 동작하는지 알면, 어떤 부분의 에러인지 확인할 수 있는 것 같아 좋은 것 같다.
- remember-me로 자동 로그인 기능을 제공해주는 것에 알게 되었다.
- CSRF 공격 방식을 알게 되었고, CSRF 토큰이 따로 저장되는 장소가 있다는 것을 알게 되었다.
@DataJpaTest
를 사용해서 jpa 테스트를 작성해보았다
팀 토론
- 컨트롤러에서 레포지토리에 바로 접근하는 방식
- 단순 조회만 할 때도 서비스를 거쳐야 하나
- 분리를 해야 레포지토리 변경이 일어났을 때 서비스만 봐도 알 수 있다.
- 기능이 많아지면 그 때 서비스 클래스를 나누면 된다.
- 검증을 함께 가져갈 수 있는 묶음으로 분리하면 좋을 것 같다.
- api 테스트를 포스트맨으로만 했었는데 테스트 코드로 검증해보는 경험을 해서 좋았다. 하지만 테스트 코드를 작성하는 것보단 포스트맨 같은 API 툴을 쓰는게 좀 더 좋은 것 같기도….
- 엔티티 VO의 범위 검증은 어디서 하시는지 궁금합니다!