전체 글

전체 글

    31. 프로젝트 개요 및 설정

    31. 프로젝트 개요 및 설정

    1️⃣ 프로젝트 개요 기본적인 화면과 기능은 이전에 만든것과 동일하다. REST API도 이전에 만든 기능을 그대로 스프링 버젼으로 개발하게 될것이다ㅣ. 이번 프로젝트 구현범위는 아래와 같다. 뉴스 서비스 스프링 WebMVC 컨트롤러 구현 뉴스 서비스 API RestController 구현 모델과 뷰 영역은 기존에 만든것을 그대로 사용할것이다. 클래스 이름은 동일하게 사용하고 패키지를 따로 만들어 관리할것이다. 2️⃣ 개발환경 설정 기존 소스복사 이전에 만든 spring_study 프로젝트에 com.example.news 패키지를 만들어주자. 그리고 이전에 만든 news 프로젝트의 ch10 패키지로 들어가 News.java와 NewsDAO.java를 복사해오자. 만약 저기에서 에러가 발생한다면 패키지 문..

    30. 스프링 RestController구현

    30. 스프링 RestController구현

    이전에 만든 JAX-RS와 유사한 구조이며 이번에는 REST API를 RestController 버전으로 구현할것이다. 1️⃣ 클래스 생성 및 테스트 클래스 생성 TestRestController라는 이름으로 클래스를 생성해주자. Java Package : com.example.demo Class name : TestRestController package com.example.spring_study; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.Re..

    29. 스프링 MVC 컨트롤러 구현

    29. 스프링 MVC 컨트롤러 구현

    1️⃣ 요청 파라미터 처리 GET, POST는 각각 @GetMapping, @PostMapping 어노테이션을 사용한다. GET, POST는 클라이언트가 서버로 요청하는 과정에서만 의미가 있다. 서버가 요청을 받아들인 후엔 처리방식이 동일하다. 이제 이전에 만들었던 TestWebController.java 클래스를 수정할것이다. @GetMapping("/hello2") @ResponseBody public String hello2(@RequestParam(value="msg", required=false) String msg) { return msg; } @ResponseBody : 별도의 뷰가 아닌 리턴값을 직접 HTTP응답 바디에 출력한다. 다음으로 http://localhost:8083/test/h..

    28. 스프링 개발환경 설정

    28. 스프링 개발환경 설정

    1️⃣ 스프링 프로젝트 생성 프로젝트 생성 프로젝트를 아래와 같이 새로 생성해주자. Name: 프로젝트 이름. spring_study로 만들어주자. Type : Maven과 Gradle중 Maven을 골라주자. Packaging : jar, war중 선택가능하다. JSP를 사용하면 WAR을 골라주자. 다음 페이지는 아래와 같이 설정해주자. 2️⃣ JSP 사용 설정 스프링 부튼 기본적으로 타임리프를 뷰 템플릿 엔진으로 사용하는데 JSP를 사용하기 위해서 추가작업이 필요하다. JSP파일처리와 JSTL사용을 위한 라이브러리를 pon.xml에 추가해주자. org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet jstl 그리고 프로젝트 리로드를 해주..

    27. 뉴스 REST API 서버 구현

    27. 뉴스 REST API 서버 구현

    이전에 만든 뉴스서비스에 REST API를 추가하여 REST API 서버를 구현할것이다. 웹 기반 뉴스 서비스를 스마트폰에도 제공해야 하는 경우 REST API만 추가하면 스마트폰과 웹 모두 지원되는 웹 서비스 구현이 가능하다. 1️⃣ API 설계 뉴스 등록, 삭제, 목록, 상세 보기 기능 전부 API로 구현하며 세부 API는 아래와 같다. 기능 메소드 URI 설명 뉴스등록 POST /news 뉴스 등록을 위한 데이터를 JSON으로 HTTP body에 전달. 뉴스삭제 DELETE /news/aid 뉴스 삭제를 위한 aid경로를 파라미터로 전달. 뉴스목록 GET /news 전체 뉴스 목록을 JSON으로 전달. 뉴스상세보기 GET /news/aid 특정 뉴스의 aid경로를 파라미터로 전달. 2️⃣ API 구..

    26. Postman으로 REST API 테스트

    26. Postman으로 REST API 테스트

    REST API를 개발할때 테스트할 도구가 필요하다. CLI방식으로 가장 많이 사용되는 도구는 curl이, GUI환경에선 포스트맨이 가장 많이 사용된다. 우린 그중에서 포스트맨을 사용할것이다. 1️⃣ Postman 설치 및 워크스페이스 생성 포스트맨 설치 포스트맨은 윈도우, 맥, 리눅스 모두 지원하고 프로그램 설치 없이 웹에서 사용이 가능하다. 계정을 생성하면 설정 및 작업공간 동기화를 지원한다. 우선 포스트맨 다운로드 해주자. 그리고 다운로드 및 설치 하는동안 회원가입해주자. 포스트맨이 실행되면 작업 공간을 만들어 줄것이다. 2️⃣ 테스트 GET방식 테스트 그리고 localhost:포트/api/test를 입력해보자. POST방식 테스트 이번엔 GET > POST로 변경하자. API 설계에 따라 msg라..

    25. JAX-RS로 REST API 서버 구현

    25. JAX-RS로 REST API 서버 구현

    1️⃣ JAX-RS 설치 pom.xml에 즉 의존성 설정을 아래처럼 해주자. org.glassfish.jersey.containers jersey-container-servlet 2.33 org.glassfish.jersey.inject jersey-hk2 2.33 org.glassfish.jersey.media jersey-media-json-jackson 2.33 2️⃣ 서비스 구현 설정 클래스 생성 JAX-RS 서비스가 톰캣 jwbook의 웹 웹 어플리케이션에서 동작한다. 따라서 JAX-RS 서버 모듈을 톰켓에 등록해줄것이다. src/main/java 에 ch12 패키지를 생성 한후 RestConfig 클래스를 생성해주자. 코드는 아래와 같다. package ch12; import javax.ws...

    24. 한글 처리 필터 구현

    24. 한글 처리 필터 구현

    지금까지 서블릿에서 해왔던 한글 인코딩 처리 부분을 필터로 구현해볼것이다. 필터의 활용분얀은 매우 다양하며 잘설계해서 구현하면 여러 환경에서 코드 수정없이 추가기능을 부여하거나 제어하는 구조를 만들수있다. 우선 필터 동작 확인을 해볼것이다. ch10의 NewsController 서블릿에서 service()의 request.setCharacterEncoding()을 주석처리해주자. 1️⃣ 필터 클래스 생성 src/main/java 폴더에서 EncodingFilter 클래스를 만든후 아래처럼 코딩해주자. import javax.servlet.Filter; import javax.servlet.annotation.WebFilter; @WebFilter("*.nhn") public class EncodingFi..