드디어 출입증을 받았습니다. 정말 감격이네요..... 🥲 베짱이로 살아온 인생이라 무언가 간절히 원해본 적도 없었고 이렇게 열정 가득한 사람들에 둘러쌓여 지내본 적도 없었습니다. 꿈만 같은 시간들이 절반이나 지나갔다는 생각에 벌써 아쉬운 마음도 듭니다. 여전히 제가 여기에 어울리는 사람인가에 대해서는 많이 부끄럽습니다. 부족함은 넘치고, 그만큼 송구하고 감사합니다.. 제 인생 업적 중 하나로 꼽을만한 우테코, 그리고 2022년이라고 생각합니다. 그래서 출입증 하나로 포스팅 하나 작성해봅니다. 살다보니 이런 일이... 우테코라니.... 빨리 다음주가 왔으면 좋겠습니다. 출입증 태그하고 싶네요.
😃 JWT와 세션, 현재까지의 학습 결과는 세션이 훨씬 매력적이네요! 최근 인증과 인가를 학습하며 JWT와 세션 방식을 대조하며 학습하고 있습니다. 현재까지 학습한 결과는 다음과 같습니다. 세션 방식이 압도적으로 우선 선택되어야 하며, 일부 토큰 방식이 더 적합한 케이스가 있을 가능성을 배제할 수는 없으나 현재까지는 그러한 케이스를 발견하지 못했다. 이렇게 생각하게 된 이유는, 세션의 단점으로 지적되고 있던 부분들이 이미 해소되었다고 생각하기 때문입니다. 전통적으로 꼽는 세션 방식의 가장 큰 단점이 서버 부하, 확장에 막혀있음 이라고 생각하는데요, 이러한 단점들은 이미 해소되었다고 느껴져서 세션의 강력한 장점인 서버의 로그인 유지 통제 용이성을 가져가는 게 나은 것 같습니다. 💾 중립적인 공간에 세션을..
스프링이 제공하는 테스트 관련 기능과 설정 중, 테스트 격리에 관련하여 헷갈리는 부분들을 정리해봤습니다! 학습 결과 요약은 다음과 같습니다! @Sql 애너테이션을 클래스 레벨에 선언하면 매 테스트 메서드 실행 전에 수행된다 @Sql 애너테이션을 메서드 레벨에 선언하면 해당 테스트 메서드 실행 전에 수행된다 클래스 레벨에 선언하고 메서드 레벨에도 선언하면, 메서드 레벨에 선언한 스크립트로 오버라이드 된다. 둘 다 실행하거나 하려면 merge 관련 다른 설정을 찾아봐야할듯. @Transactional 애너테이션을 클래스 레벨에 선언하면 매 테스트 메서드에 트랜잭션을 생성하고, 테스트 수행 후 롤백한다 테스트 메서드에 @Rollback(false) 또는 @Commit을 선언해서 롤백하지 않고 반영해버릴 수도 ..
요약 Optional findById(ID id) : 탐색하다. 탐색 결과가 없을 수 있음. 내부 예외 발생 없음. T getOne(ID id) : 가져오다. 가져오려는 대상이 없을 시, 내부에서 예외 발생. (EntityNotFoundException) getOne은 Deprecated 되었고 대신 getReferenceById 가 권장됨. getReferenceById는 EntityManager#getReference 를 사용하며, 조회된 entity 내부값 접근 전까지 lazy loading처리함. ✨ find vs get 리뷰어의 학습링크 Repository 내 구현되는 메서드 명으로 find 와 get 을 선택함에는 다소 신중함이 필요합니다. 메서드명으로 find를 쓰느냐, get을 쓰느냐에 따..
🧑⚖️ 체스 게임방 삭제 관련 기능은 도메인 규칙이다 우아한테크코스 레벨 2 첫 미션, 스프링 체스 2단계에서 도메인 요구사항이 추가되었습니다. 여러 게임을 게임 방으로 관리하되, 게임 종료 상태이고 비밀번호가 일치할 경우 삭제할 수 있다는 것이었습니다. 첫 고민은 이 요구사항과 관련된 도메인 객체를 만들어야 하느냐 였습니다. 이 규칙은 실제 체스 규칙과는 상관이 없지만, 해결하고자 하는 주요 문제 영역이자 관심사라고 판단했습니다. 또한 프리젠테이션 레이어나 인프라스트럭처 레이어가 변경되더라도, 게임방 관리, 비밀번호 확인 등의 도메인 규칙이 변경되지 않는다면 동일하게 사용되어야 한다고 판단했습니다. 그래서 도메인 객체 Room 추가했습니다. 📨 Room 에게 메시지를 보내기 위한 준비 사실도메인 객..