본문 바로가기

Spring Boot6

Spring Boot 테스트 케이스 작성 개발한 기능을 테스트하려고 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행합니다. 모든 개발 과정에서 테스트를 이런 방식으로 하려면 시간이 오래 걸리고, 반복해서 실행해보기 어렵다는 단점이 있습니다.그래서 자바는 JUnit이라는 프레임워크로 테스트를 실행하여 이런 문제를 해결합니다. JUnitJUnit은 자바용 단위 테스트 프레임워크입니다. 테스트 클래스와 메서드를 인식하고 실행하는 역할을 합니다.개발자가 테스트 실행 흐름을 제어할 수 있도록 어노테이션을 제공합니다. @Test해당 메서드가 테스트 대상임을 나타냅니다. @DisplayName("테스트 이름")테스트 결과를 IDE나 빌드 툴에 띄울 때 친절한 한글 이름으로 표시해 줍니다. @Befor..
2026. 7. 15. Spring Boot
[Spring boot/Kotlin] Spring security + JWT 로그인 구현하기 오늘은 Spring security + JWT를 이용하여 로그인을 구현해보도록 하겠습니다. 언어는 kotlin을 사용했습니다. 1. User Entity 생성로그인을 하기 위해서는 회원가입된 사용자 정보가 필요하기 때문에, UserDetails를 상속받은 User Entity를 생성합니다.@Entityclass User(name: String, email: String, m_password: String): BaseTime(), UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long? = null @Column(nullable = false) var name: String = name ..
2021. 12. 30. Spring Boot
JWT(Json Web Token)란? Json Web Token?json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token입니다. 토근 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달합니다. 주로 회원 인증이나 정보 전달에 사용됩니다.구조Header, Payload, Signature의 3부분으로 이루어지며, Json 형태인 각 부분은 Base64로 인코딩 되어 표현합니다. 또한 각각의 부분을 이어주기 위해 . 구분자를 사용하여 구분합니다. 추가로 Base64는 암호화된 문자열이 아니고, 같은 문자열에 대해 항상 같은 인코딩 문자열을 반환합니다.Headertyp와 alg 두가지 정보로 구성됩니다. alg는 헤더를 암호화하는 것이 아니고, Signature를 해싱하기 위한 알고..
2021. 12. 30. Spring Boot
Spring security란? Spring security?Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다.인증과 권한에 대한 부분을 Filter 흐름에 따라 처리합니다. Filter는 Dispathcer Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있습니다. Spring secutiry는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있습니다.Autorization & Authentication- 인증 (Authentication) : 해당 사용자가 본인이 맞..
2021. 12. 28. Spring Boot
swagger Failed to load API definition 오류 @PostMapping("/test") @ApiOperation(value = "test API") @ApiImplicitParams({ @ApiImplicitParam(name = "testReq", value = "test DTO", required = true) }) public BaseResponse postDivisions(@RequestBody TestReq testReq) { testService.create(testReq); return new BaseResponse(BaseResponseCode.OK); } 해당 오류가 뜨는 데에는 다양한 이유가 있지만,저 같은 경우에는 @ApiImplicitParam의 name과 R..
2021. 12. 26. Spring Boot
[Spring boot/Kotlin] 생성/수정 시간 자동화 방명록에 댓글을 등록할 때, 댓글이 달린 생성 시간과 수정 시간을 자동으로 추가되도록 해보겠습니다..!매번 생성, 수정되는 날짜를 직접 입력하기에는 번거롭고 코드가 지저분해지기 때문에 Jpa Auditing을 이용해 이를 구현해보겠습니다. 우선 BaseTime 이라는 이름의 Entity를 생성해줍니다.@MappedSuperclass@EntityListeners(AuditingEntityListener::class)abstract class BaseTime { @CreationTimestamp @Column(nullable = false, updatable = false) val createdAt: LocalDateTime? = null @CreationTimestamp @Col..
2021. 12. 20. Spring Boot