백기선 스프링 프레임워크 입문 강의 수강 후기

2022. 11. 1. 20:36·SW개발/Java Spring
목차
  1. IoC (Inversion of Control)
  2. IoC 컨테이너
  3. Bean
  4. DI (Dependency Injection)
  5. AOP (Aspect Oriented Programming)
  6. PSA (Portable Service Abstraction)
반응형

백기선 스프링 프레임워크 입문 강의 수강 후기

  • 스프링의 철학을 맛볼 수 있었다.
  • 스프링에 익숙해지기 좋은 예시인 Petclinic(https://github.com/spring-projects/spring-petclinic) 프로젝트를 알게 되어 좋았다.
  • 18백기선의 매력을 알 수 있었다.. 불꽃놀이를 보러가고 싶어하는 성격 확인…
    • 인프런 배속 기능 단축키는 < , > 이며, 스킵(방향키)보다는 배속 기능을 활용하는 게 내용을 놓치는 일 없이 마음대로 볼 수 있어서 좋다.

IoC (Inversion of Control)

  • 사용하는 메서드에서 객체 인스턴스를 생성하는 게 아니라, 누군가 알아서 생성하여 제공한다고 생각하고 사용하는 방식이다. (실제로 IoC 컨테이너가 제공)
  • 테스트 코드 작성에도 유리하다.

IoC 컨테이너

  • 대표적으로 ApplicationContext (BeanFactory)
  • 스프링 Bean을 생성하여 제공한다.

Bean

  • IoC 컨테이너가 관리하는 객체이다.
  • Component Scanning으로 자동 등록하는 방식과, 직접 XML이나 자바 설정파일에 등록하는 방법이 존재한다.
    • Component Scanning은 @ComponentScan 애노테이션을 통해 해당 애노테이션이 있는 디렉토리부터 하위 경로를 모두 스캔하여 @Component 애노테이션이 붙은 항목을 Bean으로 등록하는 방식이다.
      • @ComponentScan 애노테이션 매개변수를 통해 하위 디렉토리가 아닌 외부 경로의 Element도 Bean으로 등록할 수 있다고 하는데, 굳이 사용하지 않아도 될 것 같다.
    • XML이나 자바 설정파일에 등록하는 방법은 @Configuration 이 붙은 클래스에 Bean을 명시하는 방식인데, 사실 잘 안 쓸 것 같아 일단 잊었다.
  • 사용법
    • @Autowired , @Inject 애노테이션으로 사용할 수 있다.
      • 해당 애노테이션들은 생성자, 필드, Setter에 붙일 수 있다. Setter가 있다면 필드에 직접 붙이는 것 보다는 Setter에 붙이는 게 낫고, 없다면 굳이 Setter를 만들지 않고 필드에 붙이는 게 합리적일 것이라고 한다. 내 생각도 그렇다.
      • 이것이 DI다.
    • ApplicationContext.getBean(”빈이름”) 으로도 직접 꺼낼 수 있다.
      • IDE 추적을 위해 ApplicationContext.getBean(Something.class) 형식으로 클래스 명을 꺼내서 쓰는 듯..?

DI (Dependency Injection)

  • Bean을 필요한 곳에 넣어주는 것..
  • 장점 순위 : 생성자 주입 > Setter 주입 > 필드 주입

AOP (Aspect Oriented Programming)

  • 여러 메서드의 공통 부분 처리를 담당하는 코드를 모아서 중복을 없애고 관리를 쉽게 한다.
  • 직접 구현하려면 @Aspect , @Around 애노테이션을 통해 특정 애노테이션이 붙은 Element에 대해 동작을 설정할 수 있다. (ProceedingJoinPoint 객체 사용.. 얘도 DI로 받아옴)

PSA (Portable Service Abstraction)

  • PSA라는 잘 만든 인터페이스를 기반으로 코드를 작성하면, 이 인터페이스를 구체화한 기술이 변경되어도 내 코드는 그대로 사용할 수 있다.
  • 예를 들어 스프링 트랜잭션, 스프링 캐시, 스프링 웹 MVC 등에서 PSA에 해당하는 애노테이션(@Transactional, @Cacheable, @Controller 등)을 사용하면, 데이터 소스나 캐시 구현체, 서블릿이나 Reactive 등의 구현 기술이 변경되어도 내 코드를 그대로 사용할 수 있다.
반응형
저작자표시 (새창열림)

'SW개발 > Java Spring' 카테고리의 다른 글

JIT 컴파일  (0) 2023.01.14
OpenJDK 아카이브 링크  (0) 2022.12.10
Java의 정석 13장 리뷰  (1) 2022.11.11
백기선 스프링 프레임워크 핵심 기술 완강 후기  (0) 2022.11.07
Java 이클립스 The project description file (.project) for ~ is missing 에러  (0) 2021.12.13
  1. IoC (Inversion of Control)
  2. IoC 컨테이너
  3. Bean
  4. DI (Dependency Injection)
  5. AOP (Aspect Oriented Programming)
  6. PSA (Portable Service Abstraction)
'SW개발/Java Spring' 카테고리의 다른 글
  • OpenJDK 아카이브 링크
  • Java의 정석 13장 리뷰
  • 백기선 스프링 프레임워크 핵심 기술 완강 후기
  • Java 이클립스 The project description file (.project) for ~ is missing 에러
Caniro
Caniro
MinimalismCaniro 님의 블로그입니다.
  • Caniro
    Minimalism
    Caniro
  • 전체
    오늘
    어제
    • 전체보기 (319)
      • SW개발 (268)
        • Java Spring (6)
        • C++ (186)
        • Python (21)
        • Linux (16)
        • 알고리즘 (13)
        • Git (4)
        • Embedded (1)
        • Raspberrypi (9)
        • React (3)
        • Web (2)
        • Windows Device Driver (6)
      • IT(개발아님) (46)
        • Windows (26)
        • MacOS (7)
        • Utility (11)
      • 챗봇 짬통 (0)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Solaris 10
    unix
    java
    로지텍 마우스 제스처
    windows
    EXCLUDE
    Windows 11
    SFC
    스프링
    MacOS
    spring
    스프링 프레임워크 핵심 기술
    그림판
    제외
    맥북 카카오톡 알림 안뜸
    mspaint
    vscode
    윈도우 명령어
    citrix workspace
    시스템 복구
    Workspace
    윈도우
    logi options
    알림
    SunOS 5.1
    백기선
    KakaoTalk
    dism
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Caniro
백기선 스프링 프레임워크 입문 강의 수강 후기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.