[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] MVC 패턴
·
Back-End/Spring
MVC 패턴 - 개요서블릿과 JSP의 한계서블릿으로 개발할 때는 뷰(View) 화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여 지저분하고 복잡해진다. JSP를 사용하면 뷰를 생성하는 HTML 작업을 깔끔하게 가져가고, 동적으로 변경이 필요한 부분에만 자바코드를 적용할 수 있다. 하지만 JSP 코드 상위 부분의 절반은 비즈니스 로직이고, 나머지 하위 절반은 결과를 HTML로 보여주기 위한 뷰 영역이 된다. JSP에는 Java 코드, Repository 등 다양한 코드가 모두 노출되며 너무 많은 역할을 가져가게 된다.  하나의 서블릿이나 JSP로 비즈니스 로직과 뷰 렌더링을 모두 처리하게 되면 유지보수가 어려워진다. 제일 큰 문제점은 둘 사이에 변경의 라이프 사이클이 다르다는 점이다. 예를 들면 UI..
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 회원 관리 웹 애플리케이션 요구사항
·
Back-End/Spring
회원 관리 웹 애플리케이션 요구사항기능 요구사항회원 저장회원 목록 조회  회원 도메인 모델id는 Member를 회원 저장소에 저장하면 회원 저장소가 할당한다.package hello.servlet.basic.domain.member;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member(){} public Member(String username, int age) { this.username = username; this.age = age; ..
[HTTP] HTTP 헤더 - 캐시와 조건부 요청
·
Back-End/HTTP
[작성일: 2023. 09. 12] 캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야 한다.인터넷 네트워크는 매우 비싸고 느리다.브라우저 로딩 속도가 느리다.느린 사용자 경험   캐시 적용 cache-control: max-age=60캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.비싼 네트워크 사용량을 줄일 수 있다.브라우저 로딩 속도가 매우 빠르다.빠른 사용자 경험 하지만 캐시 유효 시간이 초과하면 서버를 통해 다시 데이터를 조회하고 캐시를 갱신한다.이때 다시 네트워크 다운로드(1.1M)가 발생하는 것이다. 서버에 있는 데이터와 클라이언트에게 있는 데이터가 변함이 없는데도 전체를 다시 다운 받는다면 낭비가 발생한다.     검증 헤더와 조..
[HTTP] HTTP 헤더 - 일반 헤더
·
Back-End/HTTP
[작성일: 2023. 09. 09] HTTP 헤더 개요1999년 RFC2616이 등장했지만 폐기되고, 2014년 RFC7230~7235가 등장했다. RFC732x가 등장하며 변화한 것을 알아보자. 엔티티(Entity) ➡️ 표현(Repressentation)Repressentation = representation Metadata + Representation Data표현 = 표현 메타데이터 + 표현 데이터  메시지 본문(message body)을 통해 표현 데이터를 전달한다.메시지 본문 = 페이로드(payload)표현은 요청이나 응답에서 전달할 실제 데이터를 의미한다.표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다.데이터 유형(html, json), 데이터 길이, 압축정보 등     표현Co..
[HTTP] HTTP 상태코드
·
Back-End/HTTP
[작성일: 2023. 09. 08] 상태코드상태코드란 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능을 의미한다.1xx (Informational) : 요청이 수신되어 처리 중(거의 사용 X)2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없다는 의미5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함. 클라이언트가 인식할 수 없는 상태코드를 서버가 반환한다면 상위 상태코드로 해석해서 처리하면 된다.미래에 새로운 상태코드가 추가되어도 클라이언트를 변경하지 않아도 된다.    2xx (Succes..
[HTTP] HTTP 메서드 활용
·
Back-End/HTTP
[작성일: 2023. 09. 07]  클라이언트 ➡️ 서버 데이터 전송데이터 전달 방식은 크게 2가지가 있다. 쿼리 파라미터를 통한 데이터 전송GET주로 정렬 필터(검색어)메시지 바디를 통한 데이터 전송POST, PUT, PATCH회원 가입, 상품 주문, 리소스 등록, 리소스 변경  정적 데이터 조회 이미지, 정적 텍스트 문서조회는 GET을 사용한다.정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능하다.  쿼리 파라미터 사용 주로 검색, 게시판 목록에서 정렬 필터(검색어)조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용한다.조회는 GET을 사용한다.GET은 쿼리 파라미터를 사용해서 데이터를 전달한다.  HTML Form 데이터 전송 HTML Form s..