2023/01 6

스프링에서 싱글톤으로 관리하는 빈의 생성주기

스프링 빈 생성주기에 대해서 배웠다. 정확히는 스프링에서 싱글톤으로 관리하는 빈에 대한 생성주기였다. 스프링 컨테이너 생성 스프링 컨테이너의 생성은 말 그대로 Application Context(이하 스프링 컨테이너)의 생성이다. 빈 객체 등록 스프링 컨테이너가 생성되면 빈 객체 등록이 이뤄진다. 이때, 빈이 생성자 주입을 사용하도록 되어있다면, 필요한 의존관계가 빈 객체등록 시점에서 이뤄진다. 의존관계 주입 만약 모든 의존관계가 다 생성자 등록이라면 빈 객체등록이 끝나는 시점에 의존관계 주입도 이미 끝나있을 것이다. 이 의존관계 주입단계에서는 수정자 주입이나, 필드주입을 받는 빈이 주입을 받는다. 초기화 콜백 위 단계에서 의존관계가 주입된 빈들은 초기화 콜백이 수행된다. 초기화 콜백은 Initializ..

Web/Spring 2023.01.26

인텔리제이는 생각보다 더 많은 도움을 준다.

평소에 인텔리제이에 IdeaVim을 켜서 쓰는 편이다. 그것만으로 충분히 좋은 IDE라고 생각했는데 최근에 김영한님의 스프링 강의를 들으면서 더 강력한 기능들을 많이 배울 수 있었다. 그래서 좋은거 나눠가지자는 생각으로 내가 쓰는 좋은 기능들을 함께 공유하고자 한다. 내 키보드는 capslock의 위치에 ctrl이 들어가있다. 이걸 감안하고 보길 바란다. 그리고 나는 Mac 유저다. 그러니 윈도우 유저들은 기능만 참고하고 위치는 알아서 쓰면 된다. Keymap Tool window 화면 전환과 관련된 키맵들이다. run 현재 실행중인 어플리케이션의 출력물을 확인할 수 있다. 테스트코드를 돌리고 있었다면 테스트 코드, 어플리케이션 코드를 작성하고 있었다면 어플리케이션 코드를 볼 수 있다. cmd + 4 g..

Web 2023.01.25

스프링 컨테이너

기존에 사용했던 Nest.js와 Flutter 에서 의존관계를 관리했던 방법 Nest.js를 쓰거나 Flutter 로 어플리케이션 개발을 할때는 DI를 구현해서 사용했다. Flutter 로 DI를 구현해서 사용했을때에는 Service Locator라는 라이브러리를 사용해서 어플리케이션 실행 시점에 ServiceLocatorInitializer(가칭)에서 의존관계를 조립해서 모든 의존관계를 ServiceLocator에 주입해두고 꺼내서 썼다. 어디에서 어떻게 의존관계가 관리되는지는 명확했다. Nest.js를 쓸때는 초기화된 결과들이 저장되는 곳은 몰라도, @Module을 통해서 어떤 모듈이 서로 참조하고, 노출되는 Provider는 어떤것이 있는지 알 수 있었다. 스프링은 어떻게 의존관계를 관리하지? 내가..

Web/Spring 2023.01.24

최근 변한 삶

이번에 학교의 마지막학기를 마무리하면서 티맵의 광고 개발팀에 합류했다. 3학년 2학기 이후로는 프리로만 일을 해왔기 때문에 조직에 적응하는게 어색하기도 하다. 팀원분들이 친절하시고 광고 도메인에 깊은 경험이 있기 때문에 마음이 좋다. 이제 마음에 좀 여유가 생겨서 입사후 3주 시점에 느낀 점에 대해서 몇가지 적어보려고 한다. 변한 점 세가지 1. Spring 생태계에 입문 최근 2년동안 Typescript, nest.js로 업무를 진행해왔고, 사실 티맵에 합류했을때도 Nest.js로 작업을 진행했었다. 현재 일하는 부서에서는 자바 스프링으로 개발을 하고 있다. 스프링이 한국 IT에서는 많은 기회가 있기 때문에 커리어발전의 기회로 삼을 수 있어서 기쁘다. 스프링 공부는 인프런의 김영한님의 강의를 통해서 주..

회고록 2023.01.23