✏️ 2023-01-26 Today I Learn

@mitoconcrete · January 26, 2023 · 3 min read

[회고] 220126 : 토론을 통해 함께 문제 해결하기

오늘 테스트 코드를 작성 중 로그인관련 로직을 작성하는데, JWTUtil에 값을 초기화하기 위해 적어놓은 @PostConstruct 메서드가 실행이 되지않아 테스트가 실행되지 않는 일이 발생했다. 해당 이슈가 나에게만 생긴것이 아니라, 거의 대부분의 사람들이 겪었기 때문에 많은 사람들이 모여서 해당이슈를 해결하기 위해 토론했다. 해당이슈가 발생하는 원인부터 시작해서 다른 팀원분들이 자신의 화면을 공유하며, 디버거를 동작시키며 트랙킹하는 모습도 보았다. 토론에서 영감을 받아 'junit spy postconstruct not working' 과 같은 키워드를 검색해본결과, junit에서는 postconstrct 로 선언된 메서드가 동작하지않기때문에, @BeforeEach와 같은 테스트 어노테이션을 이용하여 수동으로 초기화 시켜주고 @Value 로 선언한 어노테이션의 경우에도 런타임시 받아와지지 않아 Mock 에 Relflection 을 이용하여 강제로 주입시켜줘야 한다는 솔루션이 있었다. 많은 사람들이 굉장히 많이 돌아갔지만, 결국엔 문제를 해결할 수 있었고, 많은 사람들이 성취감을 느낄 수 있었다는게 신기한 경험이었다.

또한, 기존 로직에서 JWT를 사용하지만 UserRepository를 거치는 로직에 관하여 다른조 팀원분들과 이야기를 나누는 시간을 가졌다. JWT를 사용하지만 결국 DB에서 유저정보를 가져오기 때문에, 세션방식과 비슷해지는것이 아닌가 하는 의문을 다른조 팀원분이 가지고 계셨고, 그 이유에 몇몇 팀원분들이 납득하시면서 이야기꽃이 펼쳐졌다. 이야기를 하면서 쿠키-세션방식에 대한 복습도 할 수 있었고, JWT를 사용할 때와 쿠키-세션방식을 할 때 각각의 장단점이 무엇일지 의문을 가질 수도 있었다. 더 나아가, 기존 JWT로직을 협의가 된 의도에 맞는 로직으로 개선할 수 있었다.

많은 사람들과 모여, 이렇게 진지하게 개발에 대해 이야기를 나눌 수 있는 환경이 있어서 너무 행복했고, 커뮤니케이션을 통해 나뿐만 아니라 다른 사람들도 함께 생각이 확장되는것이 느껴져서 좋았다.

@mitoconcrete
어제보다 조금 더 성장하기 위해 기록합니다.