분류 전체보기
-
[Spring] Kotlin에서 @Valid로 @RequestBody DTO 검증하기Server/Spring Boot 2021. 10. 22. 01:00
Kotlin, Spring Boot에서 @RequestBody DTO 필드에 Valid 사용하는 방법 저번 글 에서 Java, Spring Boot에서 RequestBody DTO 필드에 Valid를 적용하는 법에 대해서 알아보았는데요. 이번 글에서는 Kotlin, Spring Boot로 Valid를 적용하는 법에 대해서 알아보겠습니다. Valid에 대한 개념은 똑같기 때문에 Valid 개념이 헷갈리신다면 저번 글 을 읽고 오시는 것을 추천드립니다. 그리고 Kotlin, Spring Boot, gradle 기반으로 프로젝트를 하나 생성한 후에 진행해보겠습니다. @RequestBody DTO 필드 Valid로 검증하기 implementation("org.springframework.boot:spring-b..
-
[Spring] MVC HttpSession, Interceptor, Cookie 정리하기Server/Spring MVC 2021. 10. 20. 01:19
Spring MVC : 세션, 인터셉터, 쿠키 로그인을 구현하는 방법에는 크게 JWT, Session-Cookie 방식 두 가지가 존재합니다. 저는 지금까지 두 가지 중에 항상 JWT를 사용해서 로그인을 구현해왔는데요. 그래서 Session-Cookie를 사용했을 때 어떤 장단점이 있는지 직접 개발하면서 체감 해보진 못하고 이론적으로만 공부해보았습니다. JWT는 직접 개발하면서 느낀 결과 여러가지 장점이 있지만, 토큰이 탈취 당할 수 있다는 것이 가장 큰 단점이라고 많이 느꼈습니다. 그래서 이번 글에서는 JWT 대신 세션에 대해서 알아보고 추가적으로 인터셉터, 쿠키에 대해서도 살~짝 정리해보겠습니다. HttpSession 사용하기 Controller에서 HttpSession을 사용하려면 아래의 두 가지 ..
-
[Spring] Kotlin 으로 AWS S3 파일 업로드 하는 법Server/Spring Boot 2021. 10. 18. 09:50
Kotlin, Spring Boot로 S3에 파일 업로드 하는 법 이번 글에서는 Kotlin 코드로 AWS S3에 파일 업로드 하는 방법에 대해서 알아보겠습니다. AWS S3 버킷을 생성하는 방법에 대해서는 다루지 않을 것이라 혹시 알고 싶다면 여기 에서 참고하고 오시면 될 거 같습니다. implementation("org.springframework.cloud:spring-cloud-starter-aws:2.0.1.RELEASE") Spring boot는 gradle 기반으로 사용할 것이기 때문에 위의 의존성을 build.gradle에 추가하겠습니다. @Service class S3Service( private val s3Client: AmazonS3Client ) { @Value("\${cloud.a..
-
[Spring] @Valid를 이용해 @RequestBody DTO 검증하기Server/Spring MVC 2021. 10. 12. 02:34
Spring Valid 사용하여 @RequestBody 검증하기 클라이언트로부터 서버로 받아오는 값들을 검증하지 않고 로직을 실행하면 문제가 발생할 수도 있기에 검증이 필요한데요. 그래서 이번 글에서는 Spring 에서 @Valid를 사용해서 @RequestBody를 통해서 들어오는 DTO 값들을 검증하는 법에 대해서 정리해보겠습니다. 그리고 프로젝트는 Spring Boot gradle 기반으로 만들어서 해보겠습니다. implementation 'org.springframework.boot:spring-boot-starter-validation' 먼저 @Valid를 사용하기 위해서 build.gradle에 위의 의존성을 추가하겠습니다. Valid 적용하기 @RequestMapping("/api/v1/te..
-
[Spring] MVC 기본 어노테이션과 Lombok 정리하기Server/Spring MVC 2021. 10. 7. 21:59
Spring 기본적인 어노테이션 정리하기 이번 글에서는 Spring Boot에서 MVC를 사용할 때 자주 사용하는 어노테이션과 Lombok 어노테이션에 대해서 간단하게 알아보겠습니다. 위의 사진은 먼저 Spring Boot로 프로젝트를 만들었을 때 프로젝트 구조에 대한 정리입니다. 보통 view 와 관련된 파일들을 resources 디렉토리 아래에 작업을 하는데요. 대표적으로 jsp가 존재합니다. Spring Boot에서 jsp를 사용하는 법 은 여기를 확인하시면 됩니다. 대략 프로젝트 구조에 대해서 정리가 되었다 가정하고 바로 어노테이션들의 특징에 대해서 알아보겠습니다. @RequestMapping RequestMapping은 URI를 Controller의 메소드와 맵핑을 할 때 사용하는 스프링 프레임..
-
[Spring] AOP(Aspect Oriented Programming)란 무엇일까?Server/Spring 2021. 9. 27. 00:30
AOP(Aspect Oriented Programming)란 무엇일까? 스프링의 삼각형 중에 하나가 AOP(Aspect Oriented Programming)입니다. 이번 글에서는 어렵고 중요한 AOP에 대해서 정리해보겠습니다. AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다. 그리고 흩어진 Aspect를 모듈화할 수 있는 프로그래밍 기법입니다. 정의하면 이런데.. 무슨 말인지 잘 와닿지 않는 거 같습니다,, 위의 A, B, C 클래스에서 동일한 색깔의 선들의 의미는 클래스들에 나타나는 비슷한(중복되는) 메소드, 필드, 코드들이 나타난다는 것입니다. 이러한 경우 만약 클래스 A에 주황색 부분을 수정해야 한다면 B, C 클래스들에 주황색 부분에 해당하..
-
[Querydsl] Spring Boot에서 Querydsl 설정하는 법Server/Querydsl 2021. 9. 16. 13:29
Spring Gradle 에서 Querydsl 설정하는 법 Querydsl은 Spring boot starter에 없기 때문에 따로 설정을 해주어야 하는데요. 그래서 Spring Boot 프로젝트는 만들었다고 가정하고 build.gradle에 Querydsl 설정 하는 법에 대해서만 정리해보겠습니다. build.gradle에 보면 맨 위에 plugins가 존재합니다. 여기에 위처럼 querydsl을 추가하겠습니다. 그리고 Querydsl 의존성을 dependencies에 추가해주겠습니다. 그리고 마지막에 위의 코드를 추가해야 합니다. 그리고 gradle 새로고침을 누르면 아래와 같이 Querydsl 의존성들이 추가된 것을 볼 수 있습니다. build.gradle 전체 코드 plugins { id '..
-
[Kotlin In Action] 5장: 람다로 프로그래밍Book/Kotlin In Action 2021. 9. 11. 01:11
5장: 람다로 프로그래밍 람다와 컬렉션 사람들로 이뤄진 리스트가 있고 그 중에 가장 연장자를 찾고 싶은 코드를 작성해보겠습니다. data class Person(val name: String, val age: Int) fun findTheOldest(people: List) { var maxAge = 0 var theOldest: Person? = null for (person in people) { if (person.age > maxAge) { maxAge = person.age theOldest = person } } println(theOldest) } fun main() { findTheOldest(listOf(Person("Alice", 29), Person("Bob", 31))) } 위의 코..