본문 바로가기
기타

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

by yapdol 2024. 9. 3.

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

 

 


 

 

 

 

 

기본기가 가장 중요하다는 생각으로,

인프런에서 '초보 백엔드 개발자 로드맵' 이라는 강의를 수강하고 있다.

이 곳은 개발 관련 기본지식을 복습하며 새로이 깨닫게 되는 점을

정리 및 요약하여 올리는 페이지이다.


 

 

🚩학습 컨텐츠

  • 강의명 : 인프런 - [초보 백엔드 개발자 로드맵]

 

 

 

 

Framework 개념 및 종류

프레임워크는 개발 시 필요한 것들을 미리 만들어둬서 작업을 편하게 해주는 코드 덩어리이다.

프레임워크의 종류는 크게 2가지로 분류된다.

 

  1. 개발시 설정과 코드 작성법을 제안해주는 프레임워크
  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  의 단점

  • 기업용 애플리케이션 작성을 위해서는 스프링에 비해서는 직접 해야할일이 많음.

 

 

 

 

 

 

 

 

 

참고 문헌:

"인프런 - [초보 백엔드 개발자 로드맵]"