loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • DDD 세레나데
  • nextstep
  • TDD
  • 스터디
  • 객체지향
  • 넥스트스탭
  • 인프런
  • 소프트웨어 장인
  • 장인정신
  • 조영호
  • 김영한
  • ATDD
  • 마틴 파울러
  • study
  • 오브젝트
  • Patterns of Enterprise Application Architecture
  • 테스트 주도 개발
  • 추상화
  • fastcampus
  • 자바
  • JUnit
  • 백기선
  • java
  • Test Driven Development
  • 현실세상의 TDD
  • 이규원
  • 스프링
  • 인프라공방
  • 엔터프라이즈 애플리케이션 아키텍처 패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

웹 애플리케이션 이해 - HTML, HTTP API, CSR, SSR, 자바 백엔드 웹 기술 역사
교육 및 인강/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

웹 애플리케이션 이해 - HTML, HTTP API, CSR, SSR, 자바 백엔드 웹 기술 역사

2021. 6. 25. 16:56

인프런 김영한님의 스프링 강의다.

20년전 서블릿 시절부터 시작되는 내용으로 스프링까지 오는 과정을 이야기한다.

1섹션 - 웹 애플리케이션 이해를 정리하며, 자세한 설명이 궁금하면 수강을 권장한다.  

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com


HTML, HTTP API, CSR, SSR

정적 리소스

- 이미 생성되고 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공

 

HTML 페이지

- 동적으로 필요한 HTML 파일을 생성해서 전달

- 웹 브라우저는 HTML 해석.

HTTP API

- HTML과 비슷지만 데이터를 전달한다.

    - 주로 JSON 형식 {"주문번호":100, "금액":5000} 을 사용한다.

- 다양한 시스템에서 호출

- 데이터만 주고 받기 때문에 UI화면에서 필요하면 클라이언트가 별도로 처리해야한다.

 

서버 사이드 렌더링(SSR), 클라이언트 사이드 렌더링(CSR)

SSR - 서버 사이드 렌더링

- HTML 최종 결과를 서버에서 만들어 브라우저에 전달

    - 주로 정적인 화면에 사용

관련기술) JSP, 타임리프 -> 백엔드 개발자

 

CSR - 클라이언트 사이드 렌더링

- HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용

    - 주로 동적인 화면에 사용, 웹 환경을 앱처럼 부분부분 변경가능

예) 구글지도, Gmail, 구글 캘린더,

관련기술) React, Vue.js -> 웹 프론트엔드 개발자

* 참고

- React, Vue.js를 CSR + SSR 동시에 지원하는 프레임워크도 있음

- SSR을 사용하더라도, 자바스크립트를 사용해서 화면 일부를 동적으로 변경 가능

 

* 어디까지 알아야할까요?

- 백엔드, 서버 사이드 렌더링 기술 (간단해서 2,3일이면 실무가능) 

    - JSP(거의 사장됨), 타임리프(지금 스프링이 미는 중)  

    - 화면이 정적이고, 복잡하지 않을 때 사용

- 웹 프론트엔드, 클라이언트 사이드 렌더링 기술

    - React, Vue.js

    - 복잡하고 동적인 UI 사용

    - 웹 프론트엔드 개발자의 전문 분야

- 선택과 집중

    - 백엔드 개발자의 웹 프론트엔드 기술 학습은 옵션

    - 백엔드 개발자는 서버, DB, 인프라 등등 수 많은 백엔드 기술 공부가 필요

    - 웹 프론트엔드도 숙련에 오랜 시간 필요


자바 백엔드 웹 기술 역사

과거 기술

- 서블릿, 1997

    - HTML 생성이 어려움

- JSP, 1999

    - HTML 생성은 편리하지만, 비즈니스 로직까지 많은 역할 담당

- 서블릿, JSP 조합 MVC 패턴 사용

    - 모델, 뷰, 컨트롤러로 역할을 나누어 개발

- MVC 프레임워크 춘추 전국 시대, 2000~2010년 초

    - MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원

    예) 스트럿츠, 웹워크, (구)스프링 MVC

 

현재 사용 기술

- 애노테이션 기반의 스프링 MVC 등장 (MVC 프레임워크 춘추 전국 시대 마무리)

    - @Controller

- 스프링 부트의 등장

    - 과거에는 서버에 WAS를 직접 설치하고, 소스는 War파일로 만들어 WAS에 배포

    - 스프링 부트는 서버(톰캣9)를 내장 -> 빌드결과에 WAS 서버포함, 빌드 배포 단순화

 

최신 기술 - 스프링 웹 플럭스(WebFlux)

- 장점

    - 비동기 넌 블러킹 처리

    - 최소 쓰레드로 최대 성능, 쓰레드 컨텍스트 스위칭 비용 효율화

    - 함수형 스타일로 개발, 동시처리 코드 효율화

    - 서블릿 기술 사용안함

 

- 단점

    - 기술적 난이도 높음

    - 아직은 RDB 지원 부족

    - 일반 MVC 쓰레드 모델도 충분히 빠름 (장비가 고성능) 

    - 실무에서 보기 힘듬

 

자바 뷰 템플릿 역사

HTML을 편리하게 생성하는 뷰 기능

- JSP : 속도 느림, 기능 부족

- 프리마커(Freemarker), 벨로시티(Velocity) : 속도 문제 해결, 다양한 기능

- 타임리프(Thymeleaf)

    - 내추럴 템플릿: HTML의 모양을 유지하면서 뷰 템플릿 적용 가능

    - 스프링 MVC와 강력한 기능 통합

    - 최선의 선택 (성능은 프리마커, 벨로시티가 더 빠름)

'교육 및 인강 > 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 카테고리의 다른 글

서블릿(Servlet) - HttpservletResponse 기본 사용법, HTTP 응답 데이터 단순 텍스트 & HTML & API JSON  (0) 2021.06.28
서블릿(Servlet) - API 메시지 바디 : 단순 텍스트, JSON  (0) 2021.06.28
서블릿(Servlet) - HTTP 요청 데이터 : 개요, GET 쿼리 파라미터, POST HTML Form  (0) 2021.06.27
서블릿(Servlet) - 서블릿 환경 구성, HttpServletRequest 개요와 기본 사용법  (0) 2021.06.25
웹 애플리케이션 이해 - WS, WAS, Servlet, 멀티 쓰레드  (0) 2021.06.25
    '교육 및 인강/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 카테고리의 다른 글
    • 서블릿(Servlet) - API 메시지 바디 : 단순 텍스트, JSON
    • 서블릿(Servlet) - HTTP 요청 데이터 : 개요, GET 쿼리 파라미터, POST HTML Form
    • 서블릿(Servlet) - 서블릿 환경 구성, HttpServletRequest 개요와 기본 사용법
    • 웹 애플리케이션 이해 - WS, WAS, Servlet, 멀티 쓰레드
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바