Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 챌린저스 #bod
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #최종프로젝트 #aws s3 #프로필 이미지 수정 #자동삭제
- ci/cd파이프라인
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #트랜잭션전파 #transaction
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- 인가 #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #ioc #의존성
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #소셜로그인 #네이버 #기능구현 #vue.js #spring boot #네이버로그인 #연동하기
- 프로세스 #CPU #시공유 #커널
- java5기
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #4개월삭제 #국비지원 #자바
- spring security #jwt 토큰 #json web token #token #직렬화 #인증
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #cd
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #aop #관점지향프로그래밍 #유지보수
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #대용량트래픽 #처리방법 #캐싱 #코드최적화 #db최적화 #트래픽 #로드밸런서
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #get방식 #post방식 #http프로토콜 #클라이언트 #백엔드 #api
- 보안 #이슈
- 스파르타 코딩클럽 #인메모리db #h2 #연동이슈 #문제해결 #방법 #spring security #header #
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #springmvc패턴 #model #view #controller
- 스프링 #백엔드 #자바
- 비트 #바이트 #이진수
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #tdd #테스트 주도개발 #테스트코드 #유닛테스트
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #로그인 #인증인가 #jwt? #토큰인증 #액세스토큰 #리프레시토큰 #쿠키 #파싱 #서명키의 중요성 #security context holder
Archives
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 Spring Master 2강 IoC와 DI, 강한 결합을 느슨한 결합으로(제어의 역전) 본문
IoC(제어의 역전) , DI(의존성 주입)
객체지향의 SOLID원칙 & GoF의 디자인 패턴과 같은
설계원칙 및 디자인 패턴이다.
IoC는 설계원칙에 해당
DI는 디자인 패턴에 해당
좋은 코드의 정의
논리가 간단해야한다
중복을 제거하고 표현이 명확해야한다
코드를 처음 보는사람도 쉽게 이해하며 수정이 가능해야한다.
의존성을 최소화 해야한다.
새로운 기능 추가 시 크게 구조변경이 없어야한다.
Spring은 개발자가 Java를 사용하여
위와 같이 좋은 코드를 작성할 수 있게 도와준다.
IoC와 DI는 좋은 코드 작성을 위한 Spring의 핵심 기술 중 하나이다.
IoC는 DI로도 알려져 있다 => DI패턴을 사용하여 IoC 설계 원칙을 구현하고 있다.
Controller가 각각 Service 1을 생성하여 사용한다.
Repository 생성자 변경에 의해서
모든 Controller와 모든 Service의 코드 변경이 필요해진다.
강한 결합 해결 방법
public class Repository1 { ... }
// 객체 생성
Repository1 repository1 = new Repository1();
Class Service1 {
private final Repository1 repitory1;
// repository1 객체 사용
public Service1(Repository1 repository1) {
// this.repository1 = new Repository1(); 사용하지 않는다.
this.repository1 = repository1;
}
}
// 객체 생성
Service1 service1 = new Service1(repository1);
public class Repository1 {
public Repository1(String id, String pw) {
// DB 연결
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/memo", id, pw);
}
}
// 객체 생성
String id = "root";
String pw = "1234";
Repository1 repository1 = new Repository1(id, pw);
강한결합 -> 느슨한 결합
Repository 1의 생성자 변경은 아무 피해를 주지않게된다.
Service1 생성자가 변경되면 모든 Controller를 변경하지 않아도된다.
제어의 역전 (Ioc : Inversion of Control)
프로그램의 제어흐름이 뒤바뀐다.
반응형
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Spring Master 2강 Entity이해하기 (0) | 2024.05.22 |
---|---|
스파르타 부트캠프 Spring Master 2강 ORM과 JPA, 하이버네이트 (0) | 2024.05.22 |
스파르타 부트캠프 Spring Master 2강 3Layer Architecture (0) | 2024.05.22 |
스파르타 부트캠프 Spring Master 1강 JDBC와 JDBCTemplate (0) | 2024.05.17 |
스파르타 부트캠프 Spring Master 1강 DTO란 (0) | 2024.05.17 |