티스토리 뷰
1. Framework
- 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 ClassFrame 와 InterfaceFrame의 집합
- 특정한 틀을 만들어 놓고 거기에 살을 붙여 놓음으로써 프로그램을 만들어 작업시간을 줄여줍니다.
- Framework는 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌로 구성됩니다.
- Framework는 이렇게 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 의미합니다.
- Framework 컴포넌트 들은 재사용이 가능합니다.
- Framework는 좀더 높은 수준에서 패턴을 조작합니다.
Framewokr가 중요한 이유
객체지향 개발을 하게 되면서 개발자의 취향에 따라 다양한 프로그램이 나오게 되었습니다.
개발에 투입되는 개발자도 점점 늘어남에 따라 전체 시스템의 통합성, 일관성이 부족하게 되었습니다.
그래서 개발자의 자유를 제한하고 일관된 개발을 하기 위해 Framework를 도입하게 되었습니다.
Framework가 가져야할 특징
a. 개발자들이 따라야할 가이드라인을 가집니다.
b. 개발할 수 있는 범위가 정해져 있습니다.
c. 개발자를 위한 다양한 도구들이 지원됩니다.
Framework의 장/단점
장점 - 개발 시간을 줄일 수 있고, 오류로 부터 자유로울 수 있습니다.
단점 - Framework에 너무 의존하면 개발 능력이 떨어져서 Framework 없이 개발하는 것이 불가능 해 질 수 있습니다.
2. MVC 패턴
MVC란?
- MVC란 Model, View, Controller로 나누어 비즈니스로직과 유저인터페이스를 분리하여 서로 영향없이 유지보수가 용이하게 개발할 수 있습니다.
MVC 구성요소
Model - 논리적 데이터 기반 구조를 표현, (데이터)
View - 사용자 인터페이스 내의 구성요소들을 표현(사용자에게 보여지는 화면)
Controller - Model과 View를 연결하고 있는 상호 동작을 관리, Model과 View 내의 클래스들 간 정보 교환을 하는데 사용
3. Spring Framework
자바 플랫폼을 위한 오픈소스 애플리케이션 Framework
자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 Framework
자바로 된 Framework로 자바SE로 된 자바 객체(POJO)를 자바EE에 의존적이지 않게 연결해주는 역할
Spring 특징
- 크기와 부하의 측면에서 경량
- 제어 역행(IoC) 기술을 통해 애플리케이션의 결합을 도모
- 관점지향 프로그래밍(AOP)를 위한 풍부한 자원
- 간단한 컨포넌트로 복잡한 애플리케이션을 구성하고 설정 가능
a. 경량 컨테이너로 자바 객체를 직접 관리
- 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있습니다.
b. 스프링은 POJO(Plain Old Java Object) 방식의 프레임워크
- 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍습니다.
c. 스프링은 제어의 역행(IoC : Inversion of Control)을 지원
- 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 사용자의 코드를 호출합니다.
d. 스프링은 의존성 주입(DI : Dependency Injection)을 지원
- 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜줍니다.
e. 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원
- 트랜잭션이나 로깅, 보안과 같은 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있습니다.
f. 스프링은 영속성과 관련된 다양한 서비스를 지원
- iBatis나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공합니다.
g. 스프링은 확장성이 높다.
- 수 많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이합니다.
4. Singleton Design Pattern(싱글톤 디자인 패턴)
- 클래스 인스턴스가 하나만 만들어지도록 하고, 그 인스턴스에 대한 전역 접근을 제공합니다.
5. Agile software development(애자일 소프트웨어 개발)
- 앞을 예측하며 개발을 하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어 내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 개발법.
'면접준비' 카테고리의 다른 글
Back-end 면접 준비 (2/3) (0) | 2017.11.26 |
---|---|
Back-end 면접 준비 (1/3) (0) | 2017.11.26 |
Interger.MIN_VALUES (0) | 2017.11.21 |
원시 타입 관련 (0) | 2017.11.21 |