일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 정보처리기사
- 깃
- spring
- 이펙티브 자바
- 스프링
- 개발
- 세마포어
- 공채
- 신입
- IT
- 프로그래밍
- 컴퓨터과학
- OS
- 자바
- 스터디
- 컴퓨터공학
- github
- 운영체제
- package-private
- 뮤텍스
- 메모리
- 깃허브
- 알고리즘
- 디지털
- 우리카드
- Effective Java
- CS
- java
- 신입사원
- Public
- Today
- Total
목록Spring/핵심 (16)
주니어 개발자 성장기
*Appconfig 는 @Configuration 애노테이션이 있고 Bean이 등록되어있는 설정 클래스다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 위에서 'ApplicationContext'를 스프링 컨테이너라고 한다. 'ApplicationContext'는 인터페이스다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 'AppConfig'를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 스프링 컨테이너 생성 과정 1. 스프링 컨테이너 생성 'new AnnotationConfi..
IoC(Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)라고 한다. 즉, 구현체가 아니라 DI를 해주는 외부의 어떤 것(클래스, 프레임워크 등)이 프로그램의 제어권을 갖게 되는 것을 말한다. *프레임워크 vs 라이브러리 프레임워크는 프로그래머가 작성한 코드를 제어하고, 대신 실행한다. (ex) Junit) 반면, 라이브러리는 프로그래머가 작성한 코드가 직접 제어의 흐름을 담당한다. DI(Dependency Injection) 어떤 클래스의 추상화의 구현체를 외부에서 생성, 연결해주는 것 의존 관계는 정적인 클래스 의존 관계와, 실행 시점에 결정되는 동적인 객체(인스턴스) 의존 관계, 둘을 분리해서 생각해야 한다. 정적인 ..
SRP란 한 클래스는 하나의 책임만 가져야 한다. Single responsibility principle 하나의 클래스는 하나의 역할만을 해야한다. 예를 들어, 할인 정책, 회원 관리, 주문 관리 등의 역할부터 구현 객체를 생성, 연결, 실행 하는 등의 관심사도 분리가 필요하다. OCP란 확장에는 열려있지만, 변경에는 닫혀있어야 한다. Open/Closed principle 소프트웨어 요소를 확장하더라도 코드를 변경할 필요가 없다는 의미이다. 다형성(인터페이스)과 DI를 이용해 이 원칙을 지킬 수 있다. DIP란 구체화에 의존하는 것이 아니라, 추상화에 의존해야 한다. 의존관계 주입(Dependency Injection)은 이 원칙을 따르는 방법 중 하나다. Dependency inversion pr..
스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본적으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd party(외부) 라이브러리 자동 구성 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공 관례에 의한 간결한 설정 스프링? 애매모호한 단어 문맥에 따라 다를 수 있다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 참고: 스프링 핵심 원리 - 기본편 (김영한)