Spring Boot 45

[Spring boot] 로깅 라이브러리 - Logback

로깅(logging)이란 애플리케이션이 동작하는 동안 시스템의 상태나 동작 정보를 시간 순으로 기록하는 것을 의미로깅은 개발 영역 중 → 비기능 요구사항에 속함사용자나 고객에게 필요한 기능은 아니라는 의미하지만 로깅은 디버깅하거나 개발 이후 발생한 문제를 해결할 때 원인을 분석하는데 꼭 필요한 요소자바 진영에서 가장 많이 사용되는 로깅 프레임워크Logbacklog4j 이후에 출시된 로깅 프레임워크로서 slf4j를 기반으로 구현됐으며, 과거에 사용되던 log4j에 비해 월등한 성능을 자랑spirng-boot-starter-web 라이브러리 내부에 내장돼 있어 별도의 의존성을 추가하지 않아도 사용할 수 있다.Logback 특징5개의 레벨 로그(TRACE, DEBUG, INFO, WARN, ERROR)ERRO..

[Spring boot] REST API 명세 문서화

API 개발 과정에서 계속 변경되므로 작성한 명세 문서도 주기적인 업데이트 필요Swagger라는 오픈소스 프로젝트를 넣어보자Swaggerpom.xml 파일 의존성 추가 org.springdoc springdoc-openapi-starter-webmvc-ui 2.6.0 config 폴더 만들어서 SwaggerConfiguration 넣기import io.swagger.v3.oas.models.Components;import io.swagger.v3.oas.models.OpenAPI;import io.swagger.v3.oas.models.info.Info;import org.springframework.context.annotation.Bean;import org.springframewor..

[Spring boot] POST API 만들기

@RequestMapping 구현POST API는 DB 등이 저장소에 리소스를 저장할 때 사용되는 APIGET API에서는 URL의 경로나 파라미터에 변수를 넣어 요청을 보냈지만 POST API에서는 저장하고자 하는 리소스나 값을 HTTP body에 담아 서버에 전달import com.springboot.api.dto.MemberDto;import java.util.Map;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import o..

[Spring boot] GET API 만들기

https://start.spring.io/여기서 Spring boot 간단하게 시작 @RequestMapping 구현import org.springframework.web.bind.annotation.RequestMapping;@RestController@RequestMapping("/api/v1/get-api")public class GetController { }RequestMapping 애너테이션을 별다른 설정 없이 선언하면 HTTP의 모든 요청을 받는다.그러나 GET 형식의 요청만 받기 위해서 애너테이션에 별도 설정이 필요import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.we..

[Spring boot] JWT Accesstoken 및 Refresh 검사 흐름?

Accesstoken 만료검사를 위해 만료된 accesstoken을 서버에 날려서 내가 만든 Error Handler가 잘 동작하는지 보기 위해서 Postman으로 던져보았다.Exception은 다음과 같이 정의했다@Getter@AllArgsConstructorpublic class UnauthorizedException extends RuntimeException { public UnauthorizedException(String message){ super(message); } public static UnauthorizedException of(String message){ return new UnauthorizedException(message); ..

[Spring boot] JWT 관리 코드 분석

build.gradlejjwt-api: JWT 기능을 사용하는 데 필요한 API.jjwt-impl: JWT 서명 및 파싱 등의 구현체.jjwt-jackson: JSON 파싱을 위한 Jackson 연동.implementation("io.jsonwebtoken:jjwt-api:0.11.5")runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5")runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.5") JWT밑은 JWT 관리 클래스이다. 한 번 다시 공부해보자import io.jsonwebtoken.*;import io.jsonwebtoken.security.Keys;import org.springframework.beans.factory.anno..

URL 메타데이터 추출 기능 문서

kkrap 프로젝트에서 url을 저장하는 기능이 필요했다. url을 저장 후 사용자를 위해 제목, 파비콘, 썸네일을 추출하는 기능이 추가적으로 필요하였는데 이 부분의 개발 과정에 대해서 기술한다. 기능 개요해당 기능은 사용자가 링크를 저장할 때, 해당 URL의 제목, 썸네일 이미지, 파비콘 정보를 자동으로 추출하여 저장하는 기능이다. 서비스에서 링크들을 수집하는 기능이 필요하고 거기에 대한 정보를 보여줄 기능이 필요하여 이 메타데이터를 추출하게 되었다. 기능 목적 및 배경사용자가 링크를 저장할 때 단순한 URL 텍스트만 보여줄 경우, 시각적 정보 부족으로 인해 UX가 떨어짐메타데이터를 자동 추출하면 링크의 내용을 직관적으로 파악할 수 있음특히 SNS, 뉴스, 유튜브 등에서 제목과 썸네일, 파비콘의 정보가..