-
Spring HATEOAS
HATEOAS란? Hypermedia As The Engine Of Application State의 약자이며 하이퍼미디어를 통해 정보를 동적으로 제공할 수 있습니다 API에서 리소스에 대해 어떤 행동을 할 수 있는지에 대해 하이퍼미디어(=링크)를 제공하여 다른 상태로 전이가 가능합니다 REST API의 구성요소 중 하나인데 HATEOAS를 만족해야 진정한 REST API라고 할 수 있습니다 Uniform Interface of REST API 필요한 이유 : 서버와 클라이언트가 독립적으로 진화하면 서버의 기능이 변경되어도 클라이언트에서 변경을 할 필요가 없다 Self-Desc...
-
Spring Security + OAuth2 + JWT
Spring에서 Spring Security와 JWT를 사용한 소셜 로그인(OAuth2)을 구현하겠습니다. 소셜 로그인으로는 Google, Github 2개를 연결하겠습니다. 이번 예제에서는 ID/PW방식은 도입하지 않고 오직 소셜로그인만 지원합니다. 프로젝트 구조 설정 build.gradle implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'io.jsonwebtoken:jjwt:0.9.1' application.yml spring: security: oauth2: cli...
-
엑셀(excel) upload/download
poi와 poi-ooxml 라이브러리를 사용하여 자바에서 엑셀을 다룰 수 있다 implementation 'org.apache.poi:poi' implementation 'org.apache.poi:poi-ooxml' 업로드 Front-end Back-end 다운로드 Front-end <div> <button class="btn" onclick="/event/excel">엑셀 추출</button> </div> Back-end HttpServletResponse 와 ResponseEntity를 사용 하는 2가지 방법이 있다 Res...
-
properties, yml(yaml) 프로파일 설정
설정을 상황에 맞게 다르게 해야 할 필요가 있다. 예를 들면, 개발환경과 운영환경의 설정 정보가 다를 경우이다. profile을 적용하여 상황에 맞게 설정을 변화시킬 수 있다. 1. properties application.properties을 가장 먼저 로드하고 profile이 있다면 겹치는 부분은 덮어 씌여진다 파일명 : application-{profile명}.properties application.properties spring.profiles.active=dev # dev로 설정 → 이와 같이 설정하면 application-dev proper...
-
DNS (Domain Name System)
DNS 실제로 네트워킹 하는 주소인 IP주소를 외우기 쉽지 않기 때문에 도메인 네임을 부여하는 방법 DNS 서버에 질의하여 IP주소를 반환받는다 동작방식 사용자가 웹 브라우저에 www.naver.com 도메인 네임을 입력한다 로컬 DNS 캐시에 도메인 정보가 있으면 반환하고 없으면 DNS서버로 요청한다 DNS서버는 IP주소 202.179.177.21을 반환한다 사용자는 이 IP주소를 이용해 서버에 요청을 한다 DNS 구조 www.naver.com (.) www : 3차 도메인 naver : 2차 도메인 com : 탑 도메인(TLD) . : 루트 도메인 [생략] ...