SlideShare uma empresa Scribd logo
1 de 40
Java 기반Web의 역사
UMC 3기 Server 김준기
INDEX
INDEX
1 2 3 4 5
최초의WebServer CGI Servlet Spring Spring Boot
최초의WebServer
정적인 페이지만 제공할 수 있었다!
최초의WebServer의 한계
동적인 페이지도 제공하고 싶다!
CGI (공용 게이트웨이 인터페이스)
- 서버와 애플리케이션 간의 데이터를 주고 받는 방식 또는 컨벤션
- 이런 CGI를 기반으로 C, PHP등으로 구현체를 만듬
- 현재의 WAS 서버의 역할
CGI
구현체
CGI의 단점
Web
Server
CGI
구현체
CGI
구현체
프로세스
프로세스
프로세스
Servlet
Servlet
Web
Server
프로세스
프로세스
프로세스
스레드
스레드
스레드
Servlet
구현체
Servlet Container
Servlet (프로세스 -> 스레드)
Servlet (프로세스 -> 스레드)
손님
Servlet (프로세스 -> 스레드)
손님
Servlet (스레드 풀)
Servlet (스레드 풀)
손님
Servlet (싱글톤[Singleton])
어플리케이션(프로세스) 안에 객체가 1개만 있는 패턴.
장점: 요청마다 객체를 생성하면 너무 높은 cost 발생
-> 메모리를 아낄 수 있다.
Servlet
Servlet Container Web Container
Servlet
Web Container
Servlet의 생명주기 관리
웹서버와의 통신 지원
Servlet의 구조
Init()
Service()
Destroy()
Servlet
Servlet 구현체 생성
비즈니스 로직 수행
Servlet 구현체 삭제
doGet(),
doPost()
등에 구현
Servlet의 구조
Java 코드로
HTML을 만드는데 한계가 있음
JSP(JavaServer Page)의 등장
JSP(JavaServer Page)의 등장
JSP로는 복잡한 비즈니스 로직
구현이 어려움
Servlet + JSP + MVC 패턴
MVC 패턴: Model, View, Controller
Model
View
Controller
Java Object
JSP
Servlet
Data 전달
화면 렌더링
비즈니스 로직 수행
Servlet + JSP + MVC 패턴
MVC 패턴: Model, View, Controller
로직이 복잡해질 수록 공통으로
처리해야하는 부분이 많아진다!!
ex) log 출력
프론트 컨트롤러(FrontController)패턴의 등장!
Front
Controller
1번 Controller
2번 Controller
3번 Controller
Client
Client
Client
Spring을 만들자!
객체지향의 장점을 잘 살린 패턴
너도 나도 쓴다!
겹치는 부분이 다수 발생
MVC 패턴을 자동화 시킨
FrameWork들의 등장
@Controller 등의 어노테이션으로
Spring의 압승
Spring
Spring
Client
Dispatcher
Servlet
Controller 맵핑 Controller
어댑터 목록
Controller
어댑터
Controller
viewResolver
View
HTTP요청
Controller
조회
Controller
이름 전달
Controller 어댑터에게
요청 전달
어댑터
이름 전달
Controller 어댑터 조회
Controller 호출
Model과 View 논리적
이름 전달
Model과 View 논리적
이름 전달
View 논리적 이름 전달
View 물리적
이름 전달
Model 전달
Rendering
Spring
Client
Dispatcher
Servlet
Controller 맵핑 Controller
어댑터 목록
Controller
어댑터
Controller
viewResolver
View
HTTP요청
Controller
조회
Controller
이름 전달
Controller 어댑터에게
요청 전달
어댑터
이름 전달
Controller 어댑터 조회
Controller 호출
Model과 View 논리적
이름 전달
Model과 View 논리적
이름 전달
View 논리적 이름 전달
View 물리적
이름 전달
Model 전달
Rendering
Spring
Controller
Spring
Spring에게 치명적인
단점이 있었다!!
Spring의 단점
톰캣 수동설치
라이브러리 간의 종속성 X
외부 라이브러리 버전 수동 구성
Spring의 단점
환경설정이 절반인
Spring의 악랄한 설정 환경
Spring Boot
2014
Spring Boot
2014
Spring Boot
톰캣 내장
연관된 라이브러리 자동
호출(starter)
스프링과 외부 라이브러리 간의
버전 자동 구성
DB Connection
Spring Boot
Spring Boot
Spring Boot
Commons-dbcp Tomcat-jdbc-pool HikariCP
Spring Boot
Spring Boot
CGI
정리
최초의
WebServer
Servlet
Spring
SpringBoot
감사합니다 Thank You
지금까지 발표를 들어 주셔서 감사합니다 : )

Mais conteúdo relacionado

Semelhante a [KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기

I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages SangHoon Han
 
임태현, IIS with ASP.NET
임태현, IIS with ASP.NET임태현, IIS with ASP.NET
임태현, IIS with ASP.NET태현 임
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista Community
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 Amazon Web Services Korea
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista Community
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web serviceBumjin Kim
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea Strike
 
어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?SangHoon Han
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 SeongHyun Ahn
 
WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징trustinlee
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기John Kim
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015Goonoo Kim
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 

Semelhante a [KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기 (20)

I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages I am ASP.NET Core Razor Pages
I am ASP.NET Core Razor Pages
 
임태현, IIS with ASP.NET
임태현, IIS with ASP.NET임태현, IIS with ASP.NET
임태현, IIS with ASP.NET
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
Beejei node.js & web service
Beejei   node.js & web serviceBeejei   node.js & web service
Beejei node.js & web service
 
Presentation1
Presentation1Presentation1
Presentation1
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?어서 와~ ASP.NET Core는 처음이지?
어서 와~ ASP.NET Core는 처음이지?
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
 
WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 

[KAU UMC 컨퍼런스] Java 기반 Web의 역사 - 김준기

Notas do Editor

  1. 1996
  2. 2003
  3. 2003