내가 궁금해서 찾아본 스프링부트

김온유·2023년 11월 26일

싸피셜

목록 보기
6/10

안녕하세요~ 잘 지내셨나요?

벌써 1학기가 끝나가네요.. 그럼 곧 다가올 2학기를 맞이할 준비를 해야겠죠?!

2학기에는 스프링부트를 많이 사용한다던데요,

비전공 파이썬반에선 장고만 배웠기 때문에 스프링부트가 무엇인지 한번 찾아보았습니다!!

스프링부트란?

: Java 개발의 복잡성으로 시작된 도구가 스프링(Spring)입니다.
그리고 스프링 부트 (Spring Boot)는 스프링 프레임워크를
기반으로 하고 있으며, 스프링을 쉽고 편하게
시작할 수 있도록 도와주는 기술입니다.



이렇게 보았을 때, 장고는 파이썬을 기반으로 하는 웹 프레임워크이고 스프링부트는 자바를 기반으로 하는 웹 프레임워크라고 생각할 수 있을 것 같습니다.

Django

  • 특징

  1. MTV 패턴
    (Model, View, Tamplate)

  2. ORM 기반 프레임 워크
    (객체 지행 프로그래밍에서 객체라는 개념을 구현한 클래스와 RDB에 쓰이는 데이터인 테이블을 자동으로 연결하는 것으로 SQL문이 필요 없다)

  • 장점

  1. Python의 다양한 라이브러리를 사용할 수 있어 개발 속도가 빠르고 생산성이 크다.

  2. 기본적인 기능들이 기본 모듈로 제공된다.

  3. 빠르게 개발 진행이 가능하다.

  • 단점

  1. 인터프리터 언어라서 실행 속도가 느리다.

  2. 한국에서 많이 사용되지 않기때문에 한글로된 자료가 찾기 힘들다.

  3. 기본 모듈을 사용하여 원하는대로 커스텀을 하기가 힘들다.

Spring

  • 특징

  1. MVC 패턴을 사용한다.
    ( Model, View, Controller )

  2. 관점 지향 프로그래밍(AOP)이다.
    APO : OPP(모든 데이터를 현실에 빗대어 객체로 다루는 프로그래밍 기법)를 더욱 발전시키기 위한 개념, 각 기능별로 모듈화 해서 분리를 시킴

  3. 의존성 주입(DI)
    각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

  4. 제어역행(IOC)
    컨트롤의 제어권이 사용자가 아니라 프레임워크에게 있어서 스프링에서 사용자 코드를 호출한다

  • 장점

  1. 초기 설정이 간편하다.

  2. 자체적인 웹 서버를 내장하고 있어 빠르게 배포를
    진행할 수 있다.

  3. Tomcat과 같은 기본 HTTP 서버가 내장되어 있다.

  4. XML 구성을 할 필요가 없다.

  5. 안정성, 신뢰성, 보안성

  • 단점

  1. 사용한 의존성 목록이 증가할수록 어플리케이션이 무거워지거나 개발환경이 복잡해질수도 있다.

  2. 컴포넌트들이 너무 다양해 배경지식이 적을 경우 선택에 어려움을 느낄 수 있다.

  3. 설정이 복잡하다.

  4. 기본 언어가 자바로 자바스크립트나 파이썬에 비교하면 난이도가 높다.



장고와 스프링의 특징, 장/단점을 비교해보았는데요, 아무래도 우리나라에서는 자바를 많이 사용하다보니 스프링부트도 많이 사용하시는 것 같습니다.

그럼 2학기가 되기전에 자바와 스프링부트를 공부하러 가야겠네요~~


profile
초보 개발자입니당

3개의 댓글

comment-user-thumbnail
2023년 12월 19일

우와 좋은 정보 감사합니다.!

답글 달기
comment-user-thumbnail
2024년 1월 5일

잘 안보고 갑니다^^

답글 달기
comment-user-thumbnail
2024년 1월 24일

스프링부트 너무 어려워서 울고싶어요

답글 달기