SlideShare una empresa de Scribd logo
1 de 18
Spring Boot != Spring
1
2023-02-24
권능
Types of Frameworks
2
Timeline
3
2014
2009
2007
2006
2004
1999
1997
1995
1989
Website의 첫 등장 100만번째 도메인 등록 Spring 등장 스프링 3.5
스프링 4.0
스프링부트 1.0 등장
Java등장 EJB등장 스프링 2.0 스프링 3.0
4
CGI and Servlet
CGI Servlet
Timeline
5
2014
2009
2007
2006
2004
1999
1997
1995
1989C
Website의 첫 등장 100만번째 도메인 등록 Spring Framework 등장 스프링 3.5
스프링 4.0
스프링부트 1.0 등장
Java등장 EJB등장 스프링 2.0 스프링 3.0
7
AOP IoC/DI
POJ
O
Servlet Configuration
8
Spring Container
9
/user/register
/user/login
/promotion
Spring Container
10
POJO vs. JavaBean
11
Spring Boot
12
Spring Boot
13
Spring Boot makes it easy to create stand-alone, production-
grade Spring based Applications that you can "just run".
Features
14
Containerless
15
Auto Config
Configuration
16
17
Opinionated
Opinionated
18

Más contenido relacionado

Similar a 스프링!=스프링부트

[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기NAVER D2
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOI Goo Lee
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고embian
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것NAVER Engineering
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa흥래 김
 
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개안드로이드 프로그래밍 정복 - Android Study #레이아웃전개
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개Jake Yoon
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능Dexter Jung
 
XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개Jung soo Ahn
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 준일 엄
 
Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례정현 남
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례선협 이
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1SeungHa Eom
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례Taehyun Kim
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 

Similar a 스프링!=스프링부트 (20)

[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIO
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
 
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개안드로이드 프로그래밍 정복 - Android Study #레이아웃전개
안드로이드 프로그래밍 정복 - Android Study #레이아웃전개
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능
 
XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개
 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
 
Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례
 
1.스프링프레임워크 개요
1.스프링프레임워크 개요1.스프링프레임워크 개요
1.스프링프레임워크 개요
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 

Más de Wonjun Hwang

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)Wonjun Hwang
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)Wonjun Hwang
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Wonjun Hwang
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)Wonjun Hwang
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Wonjun Hwang
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyWonjun Hwang
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyWonjun Hwang
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사Wonjun Hwang
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Wonjun Hwang
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음Wonjun Hwang
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드Wonjun Hwang
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링Wonjun Hwang
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업Wonjun Hwang
 

Más de Wonjun Hwang (20)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 
2024 개발 트렌드
2024 개발 트렌드2024 개발 트렌드
2024 개발 트렌드
 
디바운싱과 쓰로틀링
디바운싱과 쓰로틀링디바운싱과 쓰로틀링
디바운싱과 쓰로틀링
 
Passkey
PasskeyPasskey
Passkey
 
스마트한 팀 협업
스마트한 팀 협업스마트한 팀 협업
스마트한 팀 협업
 

스프링!=스프링부트

Notas del editor

  1. 스프링을 공부하다 보면 한번씩은 스프링과 스프링부트의 차이점이 뭔가요? 라는 질문을 받습니다.
  2. 스프링은 동적인 웹 애플리케이션을 개발하기 위해 사용되는 다양한 프레임워크 중 Java기반의 프레임워크입니다. 그 외 노드JS 기반의 express, 파이썬 기반의 장고라는 대표적인 프레임워크들이 존재합니다.
  3. 스프링과 스프링부트에 대해 이야기하기 전에 인터넷의 등장 이후, 1989년에 처음으로 Website라는 개념이 등장하였고 1997년에 100만번째 도메인이 등록됩니다. 이 시기에 인터넷과 가정용 PC가 보급되면서, 웹 사용자가 급격히 증가하게 되었습니다. 이때 당시 웹에 CGI(Common Gateway Interface)라는 기술이 사용되고 있었는데 멀티쓰레드를 지원하지 않아 증가한 사용자수를 감당할 수가 없었습니다. 마침 1995년에 등장했던 Java는 멀티쓰레드를 지원했고, 자연스럽게 웹 개발에 Java의 Servlet 기술이 도입되기 시작했습니다.
  4. 1999년도에 Servlet을 확장시킨 EJB(Enterprise JavaBeans)라는 대기업용 서버 애플리케이션 스펙이 출시되었지만 사용법이 너무 복잡하다는 단점을 가지고 있었습니다. 스프링 출시 당시, “복잡할 필요가 없다. 개발자의 봄(Spring)이 찾아왔다”라며 당당하게 등장하였는데 그렇다면 스프링은 EJB에 비해 무엇이 더 좋았으며, 스프링 첫 출시이후 10년만에 등장한 스프링부트는 스프링과 무엇이 달랐을까요?
  5. 스프링 프레임워크는 Java기반의 프레임워크로서 동적인 웹 애플리케이션을 개발하기 위한 다양한 기능을 제공하고 있습니다. 스프링의 특징으로는 POJO, DI, IoC, AOP 등이 있습니다. 오늘날의 Enterprise Java Beans는 Spring의 종속성 주입 및 POJO 사용에서 많은 부분을 차용합니다. 첫 번째 이정표 릴리스는 2004년에 출시되었으며 EJB 모델과 중량급 컨테이너에 대한 대안을 제공했습니다. Spring 덕분에 이제 Java 엔터프라이즈 애플리케이션을 더 가벼운 IOC 컨테이너 에서 실행할 수 있습니다 . 또한 무수히 많은 유용한 기능 중에서 종속성 반전, AOP 및 Hibernate 지원도 제공했습니다. Java 커뮤니티의 막대한 지원으로 Spring은 이제 기하급수적으로 성장했으며 완전한 Java/JEE 애플리케이션 프레임워크라고 할 수 있습니다. 또 다른 분파인 Spring Boot는 임베디드 서버와 자동 구성을 갖춘 완전한 게임 체인저입니다.
  6. 스프링 프레임워크는 Java기반의 프레임워크로서 동적인 웹 애플리케이션을 개발하기 위한 다양한 기능을 제공하고 있습니다. 스프링의 특징으로는 POJO, DI, IoC, AOP 등이 있습니다. 오늘날의 Enterprise Java Beans는 Spring의 종속성 주입 및 POJO 사용에서 많은 부분을 차용합니다. 첫 번째 이정표 릴리스는 2004년에 출시되었으며 EJB 모델과 중량급 컨테이너에 대한 대안을 제공했습니다. Spring 덕분에 이제 Java 엔터프라이즈 애플리케이션을 더 가벼운 IOC 컨테이너 에서 실행할 수 있습니다 . 또한 무수히 많은 유용한 기능 중에서 종속성 반전, AOP 및 Hibernate 지원도 제공했습니다. Java 커뮤니티의 막대한 지원으로 Spring은 이제 기하급수적으로 성장했으며 완전한 Java/JEE 애플리케이션 프레임워크라고 할 수 있습니다. 또 다른 분파인 Spring Boot는 임베디드 서버와 자동 구성을 갖춘 완전한 게임 체인저입니다.
  7. 왼쪽의 경우 순수 Servlet 기반의 WAS 설정입니다. 보시다시피 각 url별로 일일이 mapping을 해주어야하는 반면, 스프링 프레임워크의 경우 모든 요청을 DispatcherServlet에게 위임하고, 스프링 컨테이너 내부에서 처리되도록 하고 있습니다. 그렇기 때문에 스프링의 경우 웹애플리케이션에 변경이 있어도 스프링 프레임워크 내부에서만 관리하면 될 수 있었습니다. 즉 개발자의 WAS에 대한 부담을 크게 줄여주었습니다.
  8. WAS를 수정할 일이 없어짐.
  9. 스프링부트라는 대안이 나오게 된 배경은 한 개발자의 “Containerless 웹 어플리케이션 아키텍쳐 지원”이라는 요청에서 부터 시작되었습니다. 부트가 출시되기 전, 2010년 초반에는 node.js나 python 기반의 프레임워크 같이, 비교적 간편하고 빠르게 애플리케이션을 작성할 수 있는 툴이 인기가 있었습니다. 스프링 개발자들도 자연스럽게 비슷한 환경에서 개발할 수 있길 원했고, 몇가지 사항을 제안하였습니다.
  10. 사실 스프링부트를 개발한 개발자들도 스프링부트가 정확히 무엇이다 라고 정의하진 않았습니다. 스프링부트 공식 문서에는 복잡한 고민없이 빠르게 스프링 기반 애플리케이션 개발을 시작할 수 있는 도구라는 특징으로 내세우고 있습니다.
  11. 스프링 웹 어플리케이션을 실행시키기 위해선 어쩔 수 없이 Servlet Container가 무조건 존재해야합니다. 이것이 생각보다 간단하지는 않습니다. web.xml설정, war파일로 변환할 때 패키지 구조를 지켜주어야합니다. 배포도 별도로 진행해야하고, 상세한 설정을 해주어야합니다. containerless 환경을 지원하기전에는 “HelloWorld” 문자열만 보여주는 간단한 웹 프로그램도 무조건 이런 서버를 구성해주어야만 했습니다. 이런 굉장히 번거로운 과정을 생략할 수 있게 되었습니다. containerless ≠ no servlet container Servlet Container를 아예 사용하지 않아도 된다는 아니지만, 설치하고, 관리하고 학습해야하는 개발자의 수고를 제거해주게 되었습니다. 스프링부트를 이용하면 Servlet Container의 초기 실행까지 모두 처리해줍니다.
  12. 간단히 보여주기