> For the complete documentation index, see [llms.txt](https://jinwon-yoon.gitbook.io/jinonys-blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jinwon-yoon.gitbook.io/jinonys-blog/daily-log/2022.12.13.md).

# 2022.12.13

## 할일 및 한일&#x20;

* [x] 스프링 강의 수강 및 정리&#x20;
* [ ] Java 프로젝트 기능 구현&#x20;

## 경험 및 배움&#x20;

오늘은 저녁에 약속이 있어 공부를 많이 진행하지 못하였다.

### 스프링 강의 수강 및 정리&#x20;

빈을 등록할 때, 어떤 경우에는 컴포넌트 스캔 방식을 통한 자동 주입이 좋은지, 아니면 수동 등록 방식이 좋은지에 대해 학습하였다.

우선 최근에는 **자동 등록 방식을 선호하는 추세**라고 한다. 왜냐하면 설정 정보를 기반으로 애플리케이션을 구성하는 부분과 실제 동작하는 부분을 명확하게 나누는 것이 이상적이지만, 개발자 입장에서 스프링 빈을 하나 등록할 때, `@Component` 만 넣어주면 끝나는 일을 `@Configuration` 설정 정보에 가서 `@Bean` 을 적고, 객체를 생성하고, 주입할 대상을 일일이 적어주는 과정은 상당히 번거롭다.

하지만 수등 등록 방식이 쓰일 때도 있다. 우선 애플리케이션은 두 가지로 나눌 수 있다.

* **업무 로직 빈 :** 웹을 지원하는 컨트롤러, 핵심 비즈니스 로직이 있는 서비스, 데이터 계층의 로직을 처리하는 리포지토리등이 모두 업무 로직이다. 보통 **비즈니스 요구사항을 개발할 때 추가되거나 변경**된다.
* **기술 지원 빈 :** 기술적인 문제나 공통 관심사(AOP)를 처리할 때 주로 사용된다. 데이터베이스 연결이나, 공통 로그 처리 처럼 **업무 로직을 지원하기 위한 하부 기술이나 공통 기술들**이다.

이 때, 업무 로직은 문제가 발생했을 때 어디가 문제인지 명확하게 잘 드러나지만, 기술 지원 로직은 적용이 잘 되고 있는지 아닌지 조차 파악하기 어려운 경우가 많다. 따라서 **기술 지원 로직들은 가급적 수동 빈 등록을 사용해서 명확하게 드러내는 것이 좋다고 한다.**

자세한 이번 단원 정리는 노션 링크를 첨부한다.

{% embed url="<https://jinwonyoon.notion.site/8a413f67c3eb4bcfa65e0c47550b7ab7>" %}

## 개선 및 목표&#x20;

* 내일은 오늘 못한 목표까지 모두 마무리할 수 있도록 해보자!&#x20;
