[백엔드] Framework (프레임워크) : 개념/종류/대표적인 프레임워크

기본기가 가장 중요하다는 생각으로,
인프런에서 '초보 백엔드 개발자 로드맵' 이라는 강의를 수강하고 있다.
이 곳은 개발 관련 기본지식을 복습하며 새로이 깨닫게 되는 점을
정리 및 요약하여 올리는 페이지이다.
🚩학습 컨텐츠
- 강의명 : 인프런 - [초보 백엔드 개발자 로드맵]
✅ Framework 개념 및 종류
프레임워크는 개발 시 필요한 것들을 미리 만들어둬서 작업을 편하게 해주는 코드 덩어리이다.
프레임워크의 종류는 크게 2가지로 분류된다.
- 개발시 설정과 코드 작성법을 제안해주는 프레임워크
- 최소한의 코어만을 가지고 설정/제약을 최소화하는 프레임워크
✅ 대표적인 프레임워크 소개
아래 소개할 프레임워크들은 모두 서버측에서 api를 만드는데 필요한 프레임워크로 대표적인 것 3가지만 추려서 자세히 소개했다.
이외에도 프레임워크가 많고, 백엔드 개발을 위해서는 어떤것이든 프레임워크 하나 정도는 깊게 공부해야한다.
⭐대표적인 프레임워크 3가지

1. Nest JS
: Node js 의 프레임워크.
Node js 는 익스프레스가 대표적인 프레임워크이지만, Nest JS를 아래의 이유로 추천함.
익스프레스 vs Nest JS
- 익스프레스 : 최소한의 코어만 가지고 확장해나가는 프레임워크
- Nestjs : 아키텍처와 구조를 잡아주는 프레임워크.
Nest JS 의 장단점
- 데코레이터를 사용해, 추가적인 설정파일 없이 라우터/미들웨어 설정 가능.
- 내부적으로 익스프레스/패스티파이를 사용하기때문에 기존 익스프레스의 미들웨어를 사용할 수 있음.
- 아직까지는 자바의 스프링에 비해서는 기업용 프로그램을 작성하기에 부족함이 있음. 다만, 최근 익스프레스에 발전이 더디기때문에, 네스트js가 더 발전가능성이 있기 때문에 추천.
2. Spring
: JAVA 의 대표적인 프레임워크.
기업용 애플리케이션 제작에 필요한 모든것을 갖추고있는 프레임워크
(기업용 애플리케이션 제작에 가장 지원이 잘되어있는 프레임워크 중 하나)
애초에 기업용 애플리케이션을 염두에 두고 탄생한 프레임워크라 상당한 양의 공부 필요.
Spring 의 장점
- 같이 사용하는 JPA, 스프링배치, 시큐리티의 퀄리티가 좋음
- 국내에서 큰회사들은 대부분 스프링을 사용하기떄문에 취업에 유리
- 사용자가 많이떄문에 커뮤니티가 잘되어있다는것이 장점.
Spring 의 단점
- 스프링은 좋지만 자바가 발전이 더딘편이며 행사코드가 많음. (이 부분은 최근에 코틀린으로 어느정도 해소됨)
3. FastAPI
: 파이썬 커뮤니티에서 인기 있는 프레임워크.
파이썬에는 장고, 플라스크라는 매우 유명한 프레임워크가 있지만,
API 만 작성하는 용도라면, 앞으로는 FastAPI를 배우는 것을 추천.
최소한의 설정/제약을 주는 프레임워크로 플라스트와 비슷한 컨셉의 프레임워크.
FastAPI 의 장점
- 스프링과 비슷하게 의존성주입사용
- 파이덴틱 기반의 유효성 검증이 좋음.
- 스웨거로 되어있는 문서 자동화도 굉장히 잘되어있음.
- 어싱크 어퀘이크 기반의 동시성을 도입해서 성능이 좋고, 빠르며, 배우기 쉬움
FastAPI 의 단점
- 기업용 애플리케이션 작성을 위해서는 스프링에 비해서는 직접 해야할일이 많음.
참고 문헌:
"인프런 - [초보 백엔드 개발자 로드맵]"