웹 기술
- 1997 - 서블릿
- HTML 생성이 어려웠음
- 1999 - JSP
- HTML 생성은 편리했지만, 비즈니스 로직까지 전부 함께 들어있어 너무 많은 역할을 담당했음
- 2000년 초 ~ 2010년 초 - 서블릿, JSP 를 조합한 MVC 패턴
- Model, View, Controller 로 역할을 나누어서 개발
- MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기술을 지원했음
- 스트럿츠, 웹워크, Spring MVC (과거)
- 현재
- Annotation 기반 Spring MVC
- @Controller
- 사실상 이 기술이 나오면서 다양하게 MVC 프레임워크가 나오던 것이 막을 내림
- Spring Boot
- Spring Boot 는 빌드 결과(Jar) 에 WAS 서버를 포함 → 빌드 배포가 단순화됨. 즉, Spring Boot 는 서버를 내장함
- 과거에는 서버에 직접 WAS 를 설치하고, 소스는 War 파일을 만들어서 WAS 에 배포하였음
- Annotation 기반 Spring MVC
Spring WebFlux
요즘은 Servlet 을 자주 사용하고 있지만 새롭게 등장하고 있는 기술
특징
- 비동기, 논블럭킹
- 최소 쓰레드로 최대 성능 → 컨텍스트 스위칭 비용이 효율화됨
- 거의 CPU 개수에 맞추기 때문에 별로 들지 않음
- 함수형 스타일로 개발 → 동시 처리 코드가 효율화됨
- 서블릿 기술 사용 X → Netty 사용
단점
- 기술적 난이도 높음
- RDB 지원 부족
- 일반 MVC 쓰레드 모델도 충분히 빠름
- 실무에서 아직 많이 사용 안 함 (전체 1% 이하)
뷰 템플릿
HTML 을 편리하게 생성하는 뷰 기능
JSP
속도가 느리고 기능 부족
권장하지 않음
프리마커(Freemarker), 벨로시티(Velocity)
속도 문제 해결, 다양한 기능
타임리프(Thymeleaf)
HTML 모양을 유지하면서 뷰 템플릿 적용 가능 (내추럴 템플릿)
- Spring MVC 와 강력한 기능 통합
- 최선의 선택 (성능은 프리마커, 벨로시티가 더 빠름)
'프로그래밍 > 언어' 카테고리의 다른 글
[JavaScript] JavaScript 와 Json 을 이용한 ajax 통신 (0) | 2016.09.03 |
---|---|
[Java] 클래스 이름과 파일 이름의 관계 (0) | 2016.08.22 |
[JavaScript] window와 document의 화면 사이즈 관련 (0) | 2016.08.19 |
[jQuery] 무한 스크롤 예시 (0) | 2016.08.19 |
[jQuery] each 사용 시 break 및 continue 사용 방법 (0) | 2016.03.27 |