클라이언트와 서버의 통신은 HTTP를 기반으로 통신을 한다.HTTP 프로토콜을 통해 데이터를 주고 받을 수 있고 정적 파일을 제공해준다.HTTP 기반으로 동작한다.정적 리소스를 제공하거나 기타 부가 기능을 제공한다.HTTP 기반으로 동작한다.웹 서버의 기능(정적 리소스
스프링 부트 환경에서 서블릿을 등록하고 사용해보자.참고로 스프링 부트에서 서블릿을 등록하는 이유는 스프링 부트는 톰켓 서버를 내장하고 있기 때문에, 별도의 톰켓 서버 설치 없이 편리하게 서블릿 코드를 실행하기 위함이다.(톰켓 서버 관련 설정이 엄청 오래걸린다...)스프
관리 웹 애플리케이션 요구 사항 회원 정보 이름 : `username` 나이 : `age` 기능 요구사항 회원 저장 회원 목록 조회 _ 회원 도메인 모델_ `id는 Member`를 회원 저장소에 저장하면 회원 저장소가 알아서 값을 할당한다. 회원 저장소 동시성
프론트 컨트롤러 패턴 특징프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다.(입구를 하나로 만든다.)프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.공통 처리를 가능하게 한다.프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.스프
스프링 MVC 전체 구조 직접 만든 MVC 프레임 워크와 스프링 MVC를 비교해보자. 직접 만든 MVC 프레임 워크 구조 스프링 MVC 구조 직접 만든 프레임워크 -> 스프링 MVC FrontController -> DispatcherServlet handler
프로젝트 생성시 주의점 스프링 부트 사용시 JAR 선택 JSP를 사용하지 않으면 JAR을 사용 내장 서버만을 이용하며, 내장 서버 사용에 최적화 되어있다. 최근에는 거의 JAR만 사용한다. WAR도 내장 서버 사용이 가능하지만 주로 외부 서버에 배포하는 목적으로만 사
항상 프로젝트를 생성하면 기본적으로 동작하는지 확인하자.동작 확인기본 메인 클래스 실행(SpringmvcApplication.main() ) http://localhost:8080 호출해서 Whitelabel Error Page가 나오면 정상 동작자 이제 본격
검증 요구사항상품 관리 시스템에 새로운 요구사항이 추가되었다.요구사항: 검증 로직 추가타입 검증가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증상품명: 필수, 공백X가격: 1000원 이상, 1백만원 이하 수량: 최대 9999특정 필드의 범위를 넘어서는 검증가격
악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까?여러 화면에 보이는 상품명, 가격, 수량 등, label 에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 작은
Bean Validation - 소개 검증 기능을 지금처럼 매번 코드로 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 다음 코드를 보자. `@NotBlank :
로그인 관련 요구사항을 확인해보자.홈 화면 - 로그인 전회원 가입로그인홈 화면 - 로그인 후본인 이름(누구님 환영합니다.) 상품 관리로그 아웃보안 요구사항로그인 사용자만 상품에 접근하고, 관리할 수 있음로그인 하지 않은 사용자가 상품 관리에 접근하면 로그인 화면으로 이
서블릿 필터 - 소개 공통 관심 사항 요구사항을 보면 로그인 한 사용자만 상품 관리 페이지에 들어갈 수 있어야 한다. 앞에서 로그인을 하지 않은 사용자에게는 상품 관리 버튼이 보이지 않기 때문에 문제가 없어 보인다. 그런데 문제는 로그인 하지 않은 사용자도 다음 URL
프로젝트를 하다 보면 예상치도 못하게 버그에 의해서든 외부 요인에 의해서든 예외가 발생할 수 있다. 예외가 발생하면 클라이언트에게 오류 페이지를 이쁘게 띄어줘야 한다. (인프런이나 gitHub)를 생각해보자.예외 처리를 서블릿 컨테이너가 어떻게 처리하는지를 알아야 한다
API 예외 처리는 어떻게 해야할까?HTML 페이지의 경우 지금까지 설명했던 것 처럼 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있다.그러나, API 예외 처리는 고려해야 하는 사항이 매우 많다.앱에서 API로 서버를 호출할 수도 있고 기업
스프링 타입 컨버터 소개 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것 처럼 애플리케이션을 개발하다 보면 타입을 변환해야 하는 경우가 상당히 많다. 다음 예를 보자. HelloController - 문자 타입을 숫자 타입으로 변경 @ModelA
일반적으로 사용하는 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해해야 한다.HTML 폼 전송 방식application/x-www-form-urlencodedmultipart/form-data하나씩 알아보자.app