개인공부용123 프로그래밍 블로그
[Spring 개발]기본 지식 본문
1. IoC(Inversion of Control)
- 프로그램의 제어 흐름 구조가 바뀜
- 자신이 사용할 object를 생성하거나 선택하지 않고 어떻게 사용되는지 알 수 없음
- Container에 위임하고, Container는 Bean 설정 정보를 바탕으로 Bean을 만들어 DI하고 이로 인해 IoC가 이루어짐
- Spring에서는 ApplicationContext가 제어권을 가짐
2. DI(Dependency Injection)
- 의존하는 클래스에 대한 인스턴스를 직접 생성하지 않고 컨테이너로부터 생성된 Bean을 Setter 혹은 생성자를 통해 외부로 부터 주입
- 코드 재사용성 증가, 결합도 감소
3. AOP(Aspect oriented programming)
- 공통된 기능을 재사용(OOP를 더 OOP 답게 해줌)
- 공통기능이 하나의 장소에서 관리
- 핵심적인 비지니스 로직에서 공통기능을 Aspect로 모듈화하여 관리
4. OOP(Object oriented programming)
- 캡슐화 : 데이터 접근시 외부에서 직접접근이 아닌 함수를 통해 접근(정보은닉, 코드 이해도 향상)
- 상속 : 상위 객체의 속성을 하위 객체가 물려 받음
- 추상화 : 객체에서 공통되는 속성과 행위를 추출하는 것
- 다형성 : 오버로딩, 오버라이딩 등
5. 기초 지식
- 컴파일 타임 : 소스를 컴파일을 통해 기계어로 바꾸는 단계 (컴파일 타임 에러 : syntax에러, 타입 체크 오류 등)
- 런타임 : 컴파일타임에서 완성된 .class파일을 응용프로그램에서 동작 하는 단계 (런타임 에러 : Null Exception, 0 Divide 오류, 메모리 부족 Exception 등)
'백엔드 개발 > Spring 개발' 카테고리의 다른 글
[Spring개발]Spring 프로젝트 로딩 구조 (0) | 2020.08.08 |
---|---|
[Spring 개발] 스프링의 주요 특징 (0) | 2020.08.03 |