1. 배경 지식LocaleResolver 인터페이스를 사용하면 서블릿 단에서 웹 요청과 응답에 관련된 locale 작업들을 다룰 수 있다.This interface allows for implementations based on request, session, cookies, etc. The default implementation is org. springframework. web. servlet. i18n. AcceptHeaderLocaleResolver, simply using the request's locale provided by the respective HTTP header Spring에서 해당 인터페이스의 기본 구현은 AcceptHeaderLocaleResolver 클래스다.이 클래스는 ..
불로소득을 향하여
왜냐면 이직(이라 쓰고 구직이라 읽게 된)에 성공하고 작성하려고 했기 때문이다. 2023.01Q작년(22년) 12월에 서비스 '어랏'이 릴리즈 된 후 회사 내에서 큰 변화의 바람이 불기 시작했다.메인 비즈니스의 방향을 크게 바꾸었고, 재택근무가 전면 폐지되었다.평가 시스템도 생소한 방식으로 바뀌었는데, 사람들 간에는 직원을 내보내려는 방식이라는 살벌한 루머가 떠돌았다. 그리고 나와 둘이 어랏 서비스를 같이 시작하며 1년 여간 함께했던 사수가 퇴사당했다.업무적으로 많이 의존하던 사수가 이틀 만에 사라져 정신적으로 힘든 시기였다.내가 서비스의 백엔드 히스토리를 가장 많이 알고 있게 되어 부담감과 책임감도 컸다. 업무 외적으로는, 지난 10여 년간 해왔던 운동의 패러다임을 바꿔준 재활 전문 트레이너 선생님과..
최근, Java 17 + Spring Boot 3.0.2 버전을 사용하는 프로젝트에서 Jackson과 관련된 이슈를 발견했다. 글 작성의 편의를 위해 아래에서는 회원가입 API를 구현해야 하는 상황을 가정한다. Jackson의 동작원리와 Introspection이라는 개념에 대해 알고 있어야 한다.- [Spring] Jackson 라이브러리 이해하기- [Java] 처음 들어보는 java.beans.Introspector 1. 발단회원가입에 필요한 정보를 request body로 받기 위해, 아래와 같이 Java 16부터 정식으로 도입된 record 타입으로 생성했다.record SignUpRequest( @NotEmpty String name @NotEmpty String address, @NotEmpt..
2022년 12월에 런칭된 서비스 "어랏"을 개발하며 발생한 버그에 대한 경험을 작성한 글이다. 본인인증과 관련된 꽤 중요한 기능의 버그였는데, 런칭 전에 찾아내어 다행이었다. 아래 링크들을 참고하여 작성하였다. - https://kwonnam.pe.kr/wiki/springframework/transaction/transactional_event_listenerspringframework:transaction:transactional_event_listener [권남]kwonnam.pe.kr- https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/event/TransactionalEv..
내가 소속되어 있는 어랏 프로젝트는 매 스프린트 마지막 날마다 다양한 방식으로 회고를 한다. PM님께서 아래 사이트에서 매번 다른 회고 방식을 가져오는데, 그중 무난한 거 하나 골라서 올해 2022년 회고를 해보려고 한다. - https://www.funretrospectives.com/category/retrospective/ FunRetrospectives | Have fun, learn from the past and prepare for the future! Have fun, learn from the past and prepare for the future! www.funretrospectives.com 내가 사용할 방식은 "The Good, the Bad, and the Ugly"인데, 아래 ..
여자 친구님께서 생일 선물로 사주신 헤드셋..!! 생일이 9월달이었지만 쫄라서 두 달 미리 받아서 알차게 사용 중임 ㅋㅋ 재택근무 자유롭게 할 수 있었던 회사 방침이 주 4일 출근 제도로 바뀌어서 시끄러운 사무실에서 귀 막을 것이 필요했다. 에어팟 프로가 있어서 노캔 키면 되긴 하지만, 오래 끼고 있으면 귓구멍이 확실히 아프더라. 그래서 굇수 개발자들은 다들 하나씩은 있는 헤드셋을 알아보며 최종적으로 에어팟 맥스와 소니 신상 xm5 사이에서 고민하다가, 잇섭님 영상을 보고 얘를 선택했다. 마음을 결정한 날 여자 친구가 바로 인터넷에서 30만 원 후반대 정도 가격에 구매했다. 박스를 까면 뾱뾱이로 잘 감싸져서 왔다. 빨리 ㅂ라리 열어야돼 빨릴!!!! MFI 인증도 받았군.. 배터리가 30시간 정도 간다고 ..
현재 내가 참여 중인 프로젝트에서는 정적 팩토리 생성자를 이용하여 객체를 생성하는 경우가 많은데, 다른 프로젝트의 코드 리뷰를 하면서 보니 그러한 생성자 네이밍에도 뭔가 규칙이나 컨벤션이 있을 것 같았다. 물론 정적 팩토리 생성자의 장점 중 하나가 create, make 등 생성자 이름에 의미를 부여할 수 있다는 것이지만, 나는 흔히들 쓰는 of, from의 차이가 궁금했다. 우연히 개발자 단톡에서 아래와 같은 Java 공식 문서를 공유 받아, 간략하게 정리해보려고 한다. - [Oracle] Method Naming Conventions 어떤 문서냐? 위 문서에서는 Java의 Date-Time API에서 사용 중인 여러 클래스의 다양한 메소드 네이밍 컨벤션을 표로 정리했다. 문서를 해석해보자면, 그러한 ..
최근 팀 내에서 git rebase를 사용하다가 조그마한 사고가 있었다는 이야기를 듣고, 482번째 rebase에 대해 다시 검색하면서 알아보다가 이대론 안되겠다 싶어 글로 남겨 기억에 남기고자 한다. 아래 링크에 들어가면 볼 수 있는, 아주 아주 아주 이해하기 쉽게 잘 써놓은 블로그를 우연히 만나 거의 번역 수준으로만 작성할 예정 ㅎ; 다시 보니 Edureka라는 온라인 교육 플랫폼에서 운영하는 블로그 같다. 아래 글은 git이 어떻게 동작하는지, commit은 무엇이고 branch는 무엇인지부터 시작하지만, 그 부분은 건너 뛰고 git에서의 merging 이라는 개념부터 번역을 작성하려고 한다. - Git Rebase vs Git Merge: Which is Better? Merging이란? Merg..
올해 2월, 이직에 성공하고 벌써 4개월이나 흘렀다. 정말 바쁘면서 알차게 시간을 보내고 있는데, 기록을 좀 남겨보고 싶어서 상반기 회고를 써보려고 한다. 2022년 1월 작년 12월 31일에 최종 합격하고 펑펑 놀았다. 인센티브 때문에 바로 그만두지 못해서 이직 텀이 일주일 정도밖에 없긴 했지만, 다행히 재택근무를 할 수 있어서 인수인계만 하고 나머지 시간은 심신의 휴식을 취했다 ㅎㅎ 취준생부터 쭉 써왔던 블로그도 잠깐 쉬어가기로 결정했는데, 이직하고 바쁘고 정신없어서 지금까지도 이전처럼은 글을 주기적으로 작성하지 못하고 있다. 퇴사 과정에서 인사팀이랑 좀 충돌이 있긴 했지만, 뭐, 좋게 좋게 잘 해결했고.. 하여튼 1월은 머리털 나고 이렇게 행복한 적이 있던가 싶을 정도로 놀고 즐겼다. 2022년 2..