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

2022. 11. 1. 20:36·SW개발/Java Spring
반응형

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

  • 스프링의 철학을 맛볼 수 있었다.
  • 스프링에 익숙해지기 좋은 예시인 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
'SW개발/Java Spring' 카테고리의 다른 글
  • OpenJDK 아카이브 링크
  • Java의 정석 13장 리뷰
  • 백기선 스프링 프레임워크 핵심 기술 완강 후기
  • Java 이클립스 The project description file (.project) for ~ is missing 에러
Caniro
Caniro
  • 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바