[WIL] 항해99 4주차 - DI / IoC

Doyeon·2023년 2월 12일
0
post-thumbnail

WIL (23.02.06~02.11)

[4주차] 주특기 입문 + 주특기 숙련

월~목요일은 Spring 입문, 금~토는 Spring 숙련 과정을 진행했다.

  • 주특기 입문
    • SpringBoot로 게시판 백엔드 서버 만들기
      • Java를 활용하여 필요 클래스 구상
      • Lombok과 JPA를 사용한 데이터베이스 활용
      • CRUD 기능이 포함된 REST API 작성
    • Spring 공부
      • JPA
      • Controller, Service, Repository
      • REST API
      • @Transactional & 영속성 컨텍스트
  • 주특기 숙련
    • 회원가입, 로그인 기능이 추가된 SpringBoot 게시판 백엔드 서버 만들기
      • 회원가입, 로그인 구현
      • JWT를 활용한 게시글 처리
      • 회원과 게시글 JPA 연관관계 매핑
    • 숙련 주차 강의 1회 완강
      • JPA 이해, 관계설정 및 활용
      • JWT 이해, 로그인 구현
      • AWS 설정 및 관리

DI(Dependency Injection)

  • 객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입 시켜주는 방식
  • 생성자, setter를 통해 외부에서 생성된 객체를 사용한다.
    • 스프링에서는 @Autowired 를 통해 의존성을 주입한다.(생성자, 필드, setter에 사용)
  • 스프링이 프레임워크가 필요한 객체를 생성해서 관리해주기 떄문에, 이미 생성된 객체를 원하는 곳에서 사용(주입)하면 된다.
    • 빈(Bean) : 스프링이 관리하는 객체
    • 스프링 IoC 컨테이너 : “빈”을 모아둔 통

DI 장점

  • 모듈 간의 결합도가 낮기 때문에 한 클래스를 수정할 때 다른 클래스를 수정해야 하는 상황을 막는다.
  • 코드의 재사용성, 유연성이 높아진다.
  • 코드를 확장하거나 변경할 때 영향을 최소화한다.

IoC(Inversion of Control)

  • 객체 관리의 권한이 개발자에서 프레임워크(컨테이너)로 넘어감
  • 객체의 생성부터 생명주기 관리까지 컨테이너가 한다.
  • 일반적 : 개발자가 자신이 필요한 객체를 생성해서 사용한다.
  • 스프링 : 이미 생성된 객체를 용도에 맞게 가져다 사용한다.
    • 스프링이 객체(Bean)를 생성해놓고 IoC 컨테이너에 넣어두었다.
    • 개발자는 용도에 맞게 이미 생성된 객체를 가져다 사용하면 된다. → 의존성 주입

이번주 TIL 모음

스프링 부트(Spring Boot)로 게시판 벡엔드 서버 만들기
JPA란 무엇인가?
[Spring] Controller, Service, Repository를 알아보자
RESTful API란?
@Transactional 사용과 영속성 컨텍스트(persistence context)
Spring Data JPA를 활용한 데이터 정렬 구현(JPA method & Pageable, Page)
MVC 패턴과 Spring MVC
JPA 연관관계 매핑
프록시와 연관관계
[Spring] DI / IoC 란 무엇인가?

profile
🔥

0개의 댓글