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

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

Spring 2023.01.26 0

private 함수를 테스트하고 싶을때

이 글을 쓰는 목적 이 글은 private 함수를 테스트하고 싶은 분을 위해 작성된 코드입니다. 이 글에서 다루는 내용 이 글을 테스트 프레임워크를 통해서 private 함수를 테스트하는 내용이 아닙니다. private 함수를 public으로 바꾸기는 애매하고, private 상태로 테스트하자니 테스트 픽스쳐를 다수 만들어서 코드를 짜야할 것 같은 상황에 있는 사람. 그리고 그런 상황으로 인해서 미래 코드의 순 서가 변경되거나 테스트의 순서가 변경될까봐 다른 방법을 찾아보고 있는 분을 위해서 작성하는 글입니다. 본문 우선 이 글을 보고 계신 분이라면 이미 private 함수를 public으로 오픈해보는 방법에 대해서는 고민해보셨을 것 같습니다. 하지만 오픈하지 않으시는 이유가 있다면 해당 클래스에서 은닉..

Kotlin 2024.03.20 0

블로그 주제에 대한 생각

처음 블로그를 시작하면서는 다른 사람들에게 도움이 되는 글을 쓰려 했다. 그러나 좋은 글을 뽑으려다보니까 시간이 많이 들어서 글을 작성하지 못하는 일이 많았다. 앞으로는 일상적으로 개발하면서 드는 생각, 그리고 내가 배운 것들 아니면 배우면서 느낀 점들을 공유하려고 한다. 이렇게 하면 첫 번째로 어떤 생각을 했는지 다른 사람들이 직접 알 수 있고, 두 번째로 손이 가는대로 글을 쓸 수 있으니 글의 작성량이 늘어난다. 그래서 글의 방향이 조금 바뀔 예정이니 이해해주면 좋을 것 같다. 그리고 학교에서 배우는 내용도 꾸준히 올리려고 한다. 요즘은 외부에서 가르쳐주는 강의도 많고, 전문적인 내용이 많다. 그러나 학교에서 배우는 이론적인 내용과 특히 내가 원서를 읽으면서 느끼는 감정과 생각은 그런 강의들에서 얻기..

나의 생각 2022.03.22 0

Dart 기본 예제

이 글은 기본적인 Dart 예제 코드를 작성한 글입니다. 예제 코드를 통해 언어의 핵심적이고 간단한 특징들을 살펴보도록 하겠습니다. // 함수 선언 void printInteger(int aNumber) { print('The number is $aNumber.'); // 표준 출력 장치로 출력 } // 앱의 진입 포인트 void main() { var number = 42; // 변수 선언후 초기화. printInteger(number); // 함수 호출 } // 코멘트를 쓰는 법입니다. /// 여러 줄의 코멘트를 남길땐 이렇게 사용합니다. void 특별한 타입입니다. 이 값이 절대 쓰이지 않는다는 뜻이죠. printInteger나 main 같이 void return 타입을 가진 함수는 명시적으로 값을..

Dart 2021.08.27 0

트랜잭션후 메시지 전송을 보장하는 방법, How to guarantee to send events after Transaction

이 글에서 다루는 내용 이 글은 MSA 환경에서 로컬 트랜잭션의 커밋이후 메시지 전송을 보장하는 방법에 대해서 다룹니다. 내용을 다루기 위해서 예시와 함께 작성되었습니다. https://microservices.io/patterns/data/transactional-outbox.html Microservices Pattern: Pattern: Transactional outbox First, write the message/event to a database OUTBOX table as part of the transaction that updates business objects, and then publish it to a message broker. microservices.io 목차 트랜잭션의 커..

Web 2024.04.22 0