본문 바로가기

JAVA/Spring Boot

(19)
REST API REST API 1) 모델 클래스 생성 package ee.swan.web.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class Todo { private int id; private String title; }2) 컨트롤러 클래스 생성 package ee.swan.web; import ee.swan.web.dto.Todo; import java.util.concurrent.atomic.AtomicInteger; import org.springframework.web.bind.annotatio..
스프링 부트 기본설정 스프링 부트에서 웹 자원들을 실행하기 위한 규약 스프링 부트는 기본적으로 Runnable jar로 실행되므로 WAR 규격에 맞춰서 WEB-INF 폴더를 만들거나 webapp 폴더를 만들지 않고 웹 자원들을 사용하기 위한 몇가지 규약을 제공한다. - 정적 파일 - src/main/resources/static - 웹 페이지 대표 아이콘 - src/main/resources/favicon.ico - 템플릿 - src/main/resources/templates 웹 자원들을 해당 규약에 맞는 곳에 두면, 웹을 위한 별도의 폴더를 만들지 않고 사용할수 있다. 웹 리소스 폴더 설정 스프링 부트의 기본 설정 대신 javaConfig 클래스파일을 만들어서 설정을 추가할수 있다. @Configuration public..
스프링부트 보안 OAuth2 스프링 부트 OAuth2OAuth2는 피보탈, 구글, 아마존, 페이스북, 트위터 등의 회사에서 채택한 공개 표준 명세이다이들 회사는 크레덴셜(클라이언트ID와 비밀키)에 기반한 액세스 토큰(access token)을 발급하는 식으로 서비스 접근 권한을 부여한다. 리소스 오너Resource Owner(사용자)는 어떤 앱이 자신의 계정에 접근하는 행위를 특정 스코프(읽기 또는 쓰기)로 제한한다.인증서버 Authorization Server는 사용자 신원을 검증한 뒤 앱 클라이언트에 인증 토큰을 발행하고, 리소스 서버는 오직 이 인증 토큰을 통해서만 접근할 수 있게끔 리소스를 보호한다.따라서 앱 클라이언트는 반드시 사용자이름, 비밀번호, 토큰으로 인증을 받아야 리소스에 접근할 수 있다.인증과정은 API로 검증해..
스프링 부트 보안 (예제) 스프링 부트 보안 크로스사이트 스크립팅(cross-site scripting), 인증(authorization), 인가(authentication), 보안세션(secure session), 신원확인(identification), 암호화(encryption) 등 여러 전문 분야를 섭렵하며 보안을 적용하기란 쉬운일이 아니다.스프링 시큐리티 개발팀은 각고의 노력 끝에 서비스 메서드에서 전체 웹애플리케이션에 이르기까지 보안을 쉽게 적용할 수 있도록 길을 열었다.스프링 시큐리티 sping security는 AuthentifactionProvider를 중심으로 특화된 UserDetailsService를 제공하며, LDAP, 액티브 디렉터리(Active Directory), 커버로스(Kerberos), PAM, AO..
스프링부트 웹 개발 (샘플) 스프링부트 웹 개발스프링 프레임워크는 웹 기술을 spring-web, spring-webmvc, spring-websocket, spring-webmvc-portlet 모듈로 지원한다.spring-web 모듈은 멀티파트 파일업로드, (서블릿 리스너를 이용한)스프링 컨테이너 초기화, 웹 애플리케이션 컨텍스트 등 무릇 웹이라면 갖춰야 할 공통 요소를 제공한다.spring-mvc 모듈(웹 서버 모듈)은 스프링 MVC(모델-뷰-컨트롤러) 및 웹애플리케이션용 REST 서비스 구현체를 지니고 있다.두 모듈에는 아주 강력한 JSP 태그 라이브러리, 커스텀 바인딩 및 검증, 유연한 모델 전송, 커스텀 핸들러와 뷰 리졸버 등 다 새로운 기능이 포함되어 있다.스프링 MVC의 핵심은 org.springframework.we..
Spring Data JPA Spring Data JPA 스프링 프레임워크를 이용했을 때 얻을 수 잇는 장점 중에 하나는 기존의 다른 프레임워크들과의 통합이 가능하다는 점이다.스프링 프레임워크는 기본적으로 다른 프레임워크들과의 대립이 아닌 융합을 선택했기 때문에 각종 프레임워크들과의 통합을 위한 '어댑터(Adaptor)'들을 지원한다. 따라서 개발의 편의를 도와주는 추가 기능들이 많다. 과거 JDBC에서 ORM(Object Relational Mapping)까지 'Spring Data'라는 하위 프로젝트를 통해 다양한 방식의 개발을 지원하고 있다. Spring Data JPA는 JPA(Java Persistence API)라는 기술을 스프링에서 개발할 수 있도록 돕는 라이브러리이다.이를 이용하면 다양한 데이터 베이스에서 종족적인 S..
스프링 부트 데이터 액세스 스프링 부트 데이터 액세스 SQL 데이터베이스 JDBC(Java Database Connectivity) 자바 데이터베이스 연결를 개발자가 일일이 코드 한줄 한줄 신경써서 처리하던 때가 있었다.알맞는 드라이브러르 내려받고 접속문자열을 매뉴얼에서 찾은 다음 연결을 맺고 끊음, SQL문, 결과, 트랜잭션, '결과세트를 객체로 변환'등 잡다한 일련의 과정을 손수 코딩했었다. 그후 캐스터(Castor)XML, 오브젝트 스토어(Object-Store), 하이버네이트(Hibernate)같은 ORM(Object Relational Mapping-객체 관계매핑) 프로엠워크가 잡다한 일을 대행하기 시작했다.개발자는 그저 도메인 클래스를 작성하고 DB 테이블과 매핑하는 XML파일만 만들면 되었다.그런데 서서히 이런 프레임..
스프링 부트 테스트 스프링 부트 테스트spring init --package=com.apress.spring -g=com.apress.spring -a=spring-boot -name=spring-boot -x pom.xml4.0.0 com.apress.springspring-boot0.0.1-SNAPSHOTjar spring-bootDemo project for Spring Boot org.springframework.bootspring-boot-starter-parent1.3.3.RELEASE UTF-81.8 org.springframework.bootspring-boot-starter org.springframework.bootspring-boot-starer-testtest org.springframework.boo..