목차 요청 매핑 요청 매핑 - api 예시 HTTP 요청 - 기본, 헤더 조회 HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 파라미터 - @ModelAttribute HTTP 요청 메시지 - 단순 텍스트 HTTP 요청 메시지 - JSON HTTP 응답 - 정적 리소스, 뷰 템플릿 HTTP 응답 - HTTP API, 메시지 바디...
목차 스프링 MVC 전체 구조 핸들러 매핑과 핸들러 어댑터 스프링 MVC - 시작하기 스프링 MVC - 컨트롤러 통합 스프링 MVC - 실용적인 방식 1. 스프링 MVC 전체 구조 이전 시간에 직접 만들었던 MVC 프레임워크와 지금 우리가 사용하고 있는 스프링 MVC를 비교해보자. 직접 만든 MVC 프레임워크 구조 Spring MVC 구조 직접 ...
목차 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 - v1 View 분리 - v2 Model 추가 - v3 단순하고 실용적인 컨트롤러 - v4 유연한 컨트롤러 - v5 정리 1. 프론트 컨트롤러 패턴 소개 각 클라이언트들은 Controller A, B, C에 대해 각각 호출한다. 공통 코드들은 별도로 처리되어 있지 않고 각 Controller에 ...
목차 회원 관리 웹 애플리케이션 요구사항 서블릿으로 회원 관리 웹 애플리케이션 만들기 JSP로 회원 관리 웹 애플리케이션 만들기 MVC패턴 - 개요 MVC패턴 - 적용 MVC패턴 - 한계 4. MVC패턴 - 개요 너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게되고, 결과적으로 유...
목차 회원 관리 웹 애플리케이션 요구사항 서블릿으로 회원 관리 웹 애플리케이션 만들기 JSP로 회원 관리 웹 애플리케이션 만들기 MVC패턴 - 개요 MVC패턴 - 적용 MVC패턴 - 한계 1. 회원 관리 웹 애플리케이션 요구사항 요번에 만드는 웹 애플리케이션은 간단하다. 서블릿과 jsp의 사용방법을 간단히 알아보고 어떤 식으로 웹 개발이 진화되었는지 ...
목차 Hello 서블릿 HttpServletRequest - 개요 HTTP 요청 데이터 - 개요 HTTP 요청 데이터 - GET 쿼리 파라미터 HTTP 요청 데이터 - POST HTML Form HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트 HTTP 요청 데이터 - API 메시지 바디 - JSON HttpServletResponse - 기본...
서론 웹 개발 공부를 하다보면 자연스레 Http 프로토콜에 대해 이해해야하고 공부해야하며, 공부를 하면서 URL과 URI라는 것을 자주 듣게 된다. URL이란 용어는 인터넷을 사용하면서 웹 페이지 주소로 자주 들어보았지만, URI라는 용어는 생소할 것이다. URL과 URI는 엄연한 차이가 있다. 오늘은 그 둘의 차이점을 알아보자. 본론 URL과 UR...
오늘은 자바 웹 기술의 기초가 되는 Servlet과 Jsp에 대해 공부한 것에 대해 복습을 해보겠다. Servlet Servlet 발전과정 인터넷이 발달 되기 전에는 대부분의 웹 페이지가 정적인 페이지로 이루어져 있었다. 데이터간의 통신이 활발하지 않고 페이지를 들어가 다른페이지를 넘어가면 모두가 같은 화면을 보는 환경이었다. --> 클라이언트가 ...
목차 빈 스코프란? 프로토타입 스코프 웹 스코프 request 스코프 예제 만들기 스코프와 Provider 스코프와 프록시 1. 빈 스코프란? 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 빈 스코프는 말 ...
멤버십 삭제 요구사항 [요구사항 확인] 나의 멤버십 삭제 API 기능: 나의 멤버십을 삭제합니다. 요청: 사용자 식별값, 멤버십 번호 응답: X 멤버십 삭제를 위해서는 해당 멤버십 사용자가 멤버십 조회 페이지에서 삭제를 할 수 있게 만들어야 하기 때문에 멤버십의 PK만 알면 삭제할 수 있도록 만들어야 한다. 제일 먼저 레파지토리테스트를 해보자...
[ 요구사항 확인 ] 나의 멤버십 상세 조회 API 기능: 나의 1개 멤버십을 상세 조회합니다. 요청: 사용자 식별값, 멤버십 ID 응답: 멤버십 ID, 멤버십 이름, 포인트, 가입일시 상세조회 실패시를 테스트 코드로 작성해보자. 상세조회 실패시는 해당 멤버십이 없을 때이다. 그 전에 Entity를 수정해보자 간단한 erd를 만들어보았다. 상세 조...
목차 빈 생명주기 콜백 시작 인터페이스 InitializingBean, DisposableBean 빈 등록 초기화, 소멸 메서드 지정 어노테이션 @PostConstruct, @PreDestroy 1. 빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결...
[ 요구사항 확인 ] 나의 멤버십 전체 조회 API 기능: 내가 가진 모든 멤버십을 조회합니다. 요청: 사용자 식별값 응답: {멤버십 ID, 멤버십 이름, 포인트, 가입 일시}의 멤버십 리스트 클라이언트가 해당 클라이언트의 ID를 입력했을 시 클라이언트가 가진 모든 멤버십을 조회할 수 있게 만들 레파지토리부터 테스트 코드를 진행하겠다. 멤버십이 없을 때...
[멤버십 등록 API 구현] 다음으로 멤버십을 등록할 테스트를 작성해 보았다. Membership 엔티티 클래스에 해당 컬럼들이 없기 때문에 컴파일 오류가 난다. 컬럼을 생성하고 다시 테스트를 돌려보자 이후 테스트를 다시 돌려보면 성공하는 것을 볼 수 있다. 리팩토링 단계로 멤버십타입을 enum형식으로 바꾸면 관리하기 좋을 것 같다. enum형식이...
[멤버십 등록 API구현] 엔티티 등록을 위한 repository부터 개발을 할 것이다. 제일 먼저 MembershipRepository에 대한 테스트 클래스부터 작성한다. > 실제 코드를 짤때는 생성자 주입을 하도록 한다. 지금은 테스트 코드 이므로 간편하게 필드 주입을 사용한다. 컴파일 오류가 날 것이다. 해당 레파지토리와 엔티티가 없기 때문이...
[문제 설명] 멤버십 적립 서비스 현재 지원중인 멤버십에는 네이버, 카카오, 라인 3가지 멤버십이 있으며, 사용자는 원하는 멤버십을 등록할 수 있다. 포인트 적립비율은 결제금액의 1%로 고정되며, 추후에 고정 금액(1000원)으로 확장하여 적립될 수 있어야 한다. [기능 요구 사항] 멤버십 연결하기, 나의 멤버십 조회, 멤버십 연결끊기, 포인트 적...
1. 단위 테스트, 통합 테스트 단위 테스트란, > 코드가 제대로 작동하는지 확인하기 위해 애플리케이션의 개별 모듈을 독립적으로 테스트 (종속성과의 상호 작용없이)하는 것을 의미합니다. 통합 테스트란, > 다른 모듈이 그룹으로 결합 될 때 잘 작동하는지 확인하는 것을 의미합니다. 간단한 예로 기능성 휴대폰을 사용할 경우 필요한 주요 부품은 "배터리...
목차 다양한 의존관계 주입 방법 생성자 주입을 선택해라! 롬복과 최신 트랜드 조회 빈이 2개 이상 - 문제 @Autowired 필드 명, @Qualifier, @Primary 애노테이션 직접 만들기 조회한 빈이 모두 필요할 때, List, Map 자동, 수동의 올바른 실무 운영 기준 1. 다양한 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있...
Lombok Lombok이란 > 여러가지 @어노테이션을 제공하고 컴파일 과정에서 자동으로 개발자가 원하는 메소드를 생성/주입 방식으로 동작하는 라이브러리 Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다. Lombok은 여러 어노테이션(@)을 제공하고 ...
목차 컴포넌트 스캔과 의존관계 자동 주입 시작하기 탐색 위치와 기본 스캔 대상 필터 중복 등록과 충돌 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다.(순수 자바코드로 스프링 빈 생성) 예제에서는 몇개가 안되었지만, 이...