개인공부용123 프로그래밍 블로그

[Spring 개발]기본 지식 본문

백엔드 개발/Spring 개발

[Spring 개발]기본 지식

개인공부용123 2020. 8. 3. 23:10

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 등)