공부 이야기/토비의 스프링

[Spring] 스프링이란? 백기선님의 스프링 프레임워크 입문 강좌

한희성 2019. 9. 18.
반응형

안녕하세요 한희성입니다.


오늘부터 그냥 닉네임 안쓰고 이름 쓰기로 결정했습니다 ㅋㅋ 매번 입으로 말하면서 적기도 뭐하고그래서..


오늘은 90분짜리 백기선님의 입문강좌를 듣고 스프링에 대한 포스팅을 작성하려고합니다.


대학다닐 때 C, JAVA 등 깊게 배우지도, 관심도 많지 않았기 때문에 3년이 지난 아직까지도 웹 개발을 하면서 늘...


기초가 약한것에 대한 컴플렉스를 가지고 있습니다. 물론 책도 보고 꾸준한 자기 개발도 하지만 만족스럽지 못했는데.. 


우연히 인프런이라는 온라인 강좌 사이트를 발견 !! 무료로 수강할 수 있는 과목들이 너무나도 다양해서 좋았습니다 ㅋㅋ


바로 스프링프레임워크 입문 강좌 수강!!!  무료 강좌 보러가기!  원하는 과목 검색하셔서 수강하시면 됩니다~



스프링 프레임워크 입문!


각각의 강좌들을 나열하고 제목에 대한 학습 내용을 적도록 하겠습니다.


1. 강의 소개 및 프로젝트 셋팅

* Spring Boot 프로젝트를 기준으로 강의


2. IoC(Inversion of Controll)

2-1 IoC 소개 

* 컨틀롤이 인버젼 됐다, 즉 제어의 역전 ~ 무슨뜻이냐 ~~하면 ~

* 스프링을 사용하지 않았더라면 일반적인 객체는 New 생성자를 이용하여 객체를 생성.

  하지만 스프링을 사용함으로써 DI 의존성주입을 통하여 스프링내부에서 미리 생성해놓은 객체를 사용할 수 있다.


2-2 IoC 컨테이너

* 스프링프레임웍은 IoC 용 컨테이너를 제공하고 그 인터페이스를 제공하는 핵심적인것이 바로 아래

* applicationContext(BeanFactory) = IoC container 라고도 불린다.

* Bean을 만들어 주고 엮어준다.

* IoC 컨테이너가 하는일은 Bean으로 등록된 객체들을 관리하고 동작시켜준다.

a. 그럼 어떤것이 Bean 일까? 어노테이션이 붙어있는 것들이 Bean 으로 등록되며 IoC 컨테이너 내부에서 객체들을 관리하며 의존성을 주입시켜준다. 이것이 컴포넌트 스캔이라는 방법 !


2-2 Bean

* 스프링 IoC 컨테이너가 관리하는 객체

* 스프링에 Bean 등록하는 방법은 크게 두가지

a. Component Scanning

- spring boot로 프로젝트를 만들었기 때문에 기본으로 @springBootApplication 붙은 클래스가 반드시존재

- 이 어노테이션의 코드를 따라가보면 @컴포넌트스캔이 있다. 이 컴포넌트스캔의 역할은 자기의 최상단 패키지 부터 모든 클래스를 검사하며 @컴포넌트스캔이 붙어있는 클래스를 검사하여 bean 으로 등록한다.  이것을 컴포넌트스캔 방법이라한다. @컨트롤러 어노테이션도 마찬가지로 소스를 열어보면 @컴포넌트스캔을 포함하고있다.

b. 직접 등록

- 반드시 @Configuration 이 붙어있는 클래스에 작성해야 하며, @SpringBootApplication 는 위 어노테이션을 포함하고있다.

-@Bean 어노테이션을 붙인 후 메서드의 이름이 Bean 이름이 된다.

-@Bean

public String hanTest() {

return "heeseong";

}

- @Autowired String hanTest;

* 실제 어노테이션에 직접적인 기능은 없다. 마커로 사용되며 이 마커를 보고 처리하는 프로세서들이 스프링 내부의 핸들러들이 어딘가에 존재한다.!


2-3 의존성 주입

* 생성자, 필드, Setter

* 스프링5 부터 컨트롤러의 생성자가 오직 하나만 있고 그 생성자가 파라메로 갖는 타입이 빈으로 등록 되어있다면

@Autowired 없이 자동 주입이 된다.

* 해당 컨트롤러의 필수 값들이라면 (ex : service) 생성자에 등록하는 것을 추천

* 그렇지 않다면 필드에 작성을 추천

* Setter 가 존재한다면 Setter에 붙여라


3. AOP(Aspect Oriented Programming)

3-1 AOP 소개

흩어진 코드를 한 곳으로 모아서 코딩해라가 핵심

* 프록시 패턴

* 코딩기법



4. PSA(Portable Service Abstraction)

4-1 PSA 소개

* 잘 만든 인터페이스

* 확장성 좋은 코드






반응형

댓글

💲 추천 글