자바 웹 기술의 역사
서블릿(자바 코드로 짜야해서 HTML 생성이 어려움)
→ JSP(HTML 작성이 편리함. 그러나 비즈니스 로직까지 너무 많은 역할을 담당하게 되어 유지보수가 너무 너무 힘들어짐)
→ 서블릿, JSP 조합 MVC 패턴 사용(모델, 뷰, 컨트롤러로 역할을 나누어 개발. 렌더링 부분과 비즈니스 로직을 분리!)
→ MVC 프레임워크 춘추전국시대 ( MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원)
- 현재 사용기술
- 애노테이션 기반 스프링 MVC 등장.
- 스프링 부트 등장
- 서버를 내장!(톰캣 서버를 내장해버려서 따로 설치할 필요가 없고 그냥 jar를 서버에 넣고 실행하면 서버가 뜸 = 혁신!!)
- 과거에는 서버에 WAS를 설치하고 , 소스는 WAR파일을 만들어서 설치한 WAS에 배포함
- war 파일 : Web application ARchive의 약자. 웹 프로젝트를 담아놓은 파일웹 프로젝트 파일을 받는 쪽에서는 웹 프로젝트를 간단히 받아올 수 있음.
- 웹 어플리케이션을 지원하기 위한 압축 방식
- 배포 시에 프로젝트 폴더째로 전해줄 수가 없으니 WAR 형태로 Export 시키고 넘기면
- 스프링 부트는 빌드 결과(jar)에 was 서버를 포함해서 빌드 배포를 단순화 해줌
- jar 파일 : 여러 개의 자바 클래스 파일과 관련 리소스 등 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷. war(jar가 모인것)>jar
- 최신 기술!
- 두가지 기술로 분할 됨
- web servlet(spring mvc) : 서블릿 위에 스프링 mvc를 올려 서블릿 기반으로 동작
- web reactive(spring webflux) : 완전 최신기술!
- 완전한 비동기 넌 블러킹 처리
- 비동기 : 두 주체가 서로의 시작, 종료시간과는 관계 없이 별도의 수행 시작/종료시간을 가지고 있을 때
- 넌블로킹 : 다른 주체에게 작업을 요청하고 그 결과를 받을 때까지 기다리지 않으며 자신의 작업을 하는 것
- 최소 쓰레드로 최대 성능 - cpu코어 개수에 쓰레드를 맞춰서 쓰레드 컨텍스트 스위칭 비용을 효율화 함
- 함수형 스타일 개발 - 동시처리 코드 효율화(여러 api를 가져와서 동시에 조합해 사용가능)
- 서블릿 기술을 사용하지 않음.
- 그러나 기술적 난이도가 무척 높고 rdb의 지원이 부족해 많이 쓰이지 않음
- 완전한 비동기 넌 블러킹 처리
- 두가지 기술로 분할 됨
- 자바 뷰 템플릿 역사(html를 편리하게 생성하는 기능!)
- jsp : 속도가 느리고 기능이 부족함
- 프리마커, 벨로시티 : 속도가 빠르고 다양한 기능을 제공함. 별도로 코드가 들어감.
- 타임리프 :
- 내추럴 템플릿 : html모양을 유지하면서 뷰 템플릿 적용 가능 (태그 사용으로 문제해결)
- 스프링mvc와 기능 통합이 무척 잘 됨.
- 스프링을 사용할거면 최선의 선택! (성능은 프리마커, 벨로시티가 빠름. 하지만 웬만한 사이트에서는 타임리프도 문제가 되지 않음)
'자바' 카테고리의 다른 글
함수형 인터페이스 (0) | 2021.12.20 |
---|---|
람다식(익명함수) (0) | 2021.12.20 |
자바 스레드를 이용한 간단한 게임 (0) | 2021.12.14 |
자바 11주차 <쓰레드> (0) | 2021.12.12 |
자바 스택으로 계산기 구현 (0) | 2021.12.12 |