티스토리 뷰
728x90
✅ Framework?
프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. (나무 위키)
왜 사용합니까?
1. 실력이 부족한 진형준도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다.
2. 어느 정도 품질면에서 성과가 있는 결과물을 얻을수 있다.
3. 개발 시간을 단축할 수 있다.
Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등
✅ Spring의 본질
- 자바의 가장 큰 특징은 객체 지향 언어
- 스프링은 자바의 가장 큰 특징을 잘 살려 좋은 객체 지향 프로그래밍을 개발할 수 있도록 도와주는 프레임워크
✅ Spring Framework
자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다.
장점
- POJO(Plan Old Java Object)기반의 구성
- java코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 의미.
- POJO : Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속도니 "무거운" 객체를 만들게 된 것에 반발해서 사용하게 된 용어
- IoC(Invertion of Control: 제어 역행)
- 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
- Di(Dependency Injection: 의존성 주입)
- 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
- AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)
- 프로그램의 전체 로직을 크게 비지니스 로직과 공통로직(Aspect)을 분리하는 프로그래밍 기법
- 높은 확장성
- 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.
Spring Framework 왜 사용합니까?
- 한국의 '전자표준 프레임워크'
- 정형화 되어 있기 때문에 일정수준의 품질을 기대 할 수 있습니다.
- 개발 후 유지보수 및 기능의 확장성에서도 품질을 보장합니다.
Spring Framework 단점
- 내부에서 많은 기능을 가졌기 때문에 상당히 무겁습니다.
- 설정이 반이다.....
- 버전을 하나하나 명시 해준다던지....
Spring Framework 기능이 많은 만큼 환경설정이 복잡하다. 이것을 보완해주기 위해 Spring Boot가 나왔다.
❗❗ 스프링 프레임워크를 쉽게 사용하려고 스프링 부트가 나왔다.
✅ Spring Boot
Spring Boot 왜 사용할까요?
- Auto Configuration 자동 실행
- 개발에 필요한 라이브러리들을 추가하면 Spring Boot 가 이 라이브러리들을 인지해서 관련된 스프링 설정을 자동으로 처리해주기 때문에 개발자들은 복잡한 설정을 하지 않고도 개발이 가능하다.
- 내장 서버 탑재
- Tomcat 서버를 내장하고 있기 때문에 단지 main() 메소드를 가진 클래스를 실행하는 방식으로 서버를 구동하기 때문에 실행결과를 빠르게 확인할 수 있다.
- Tomcat 서버를 내장하고 있기 때문에 단지 main() 메소드를 가진 클래스를 실행하는 방식으로 서버를 구동하기 때문에 실행결과를 빠르게 확인할 수 있다.
- 쉬운 의존성 관리
- Spring Boot Starter : 스프링 부트는 버전 관리를 스프링 부트에 의해서 관리
- Spring Boot Starter : 스프링 부트는 버전 관리를 스프링 부트에 의해서 관리
- jar 를 통한 손쉬운 배포
- 내장 서블릿 컨테이너 덕분에 jar 파일로 간단 배포!
'기술 면접' 카테고리의 다른 글
REST API 가이드 (2) | 2022.02.07 |
---|---|
Nginx (1) | 2021.12.13 |
[Back-end] Java 질문 정리 (0) | 2021.10.12 |
댓글