kotlin 5

Kotlin No Args Plugin 및 not nullable on Entity

ref.) https://blog.junu.dev/37 lombok에서 Entity들을 참조하기 위해서 인자가 없는 생성자가 필요해서 보통 @NoArgsConstructor를 Entity 클래스에 추가한다. 그런데 코틀린의 경우 위 참조 글에서 처럼 plugin을 추가하면 굳이 @NoArgsConstructor 어노테이션을 추가할 필요가 없다. plugins { id("org.jetbrains.kotlin.plugin.jpa") version "1.8.0" } class명에 빨간 밑줄이 그이긴 하는데, 무시하고 build해도 잘 된다.

Project/Poppin 2023.12.03

Google OAuth2.0 소셜 로그인 플로우 - React, Kotlin(Spring boot), Authorization code grant 방식

혼자 공부하면서 Authorization Code Grant 방식의 Google 소셜 로그인에 대해 정리하였다. 이런 방법 말고도 백엔드에서 모두 처리하는 방식 등 다양한 방식을 공부했다. 프론트에서 모두 처리하는 방식, 백에서 모두 처리하는 방식이 있으나, 여기서는 프론트와 협업하는 방식에 대해서 다룬다. 참고로 프론트에서 모두 처리하는 방식은 google에서 사용자 정보가 담긴 토큰을 프론트로 내려줄 때 URL에 담아서 보내주는 방식이라 보안상 좋지 않다고 한다. 1. Authorization Code Grant 방식 Flow 1차로 프론트에서 Google에 요청해서 1회성 Auth Code를 발급받는다. 프론트가 백에 이를 전달하면, 백에서도 Google에 요청해서 사용자 정보가 포함된 토큰을 전송..

Project/Poppin 2023.11.19

springboot, kotlin, gradle: no main manifest attribute 에러 intellij 프로젝트

문제 intellij로 생성한 spring-boot, kotlin, gradle 구성의 프로젝트가 build 후 jar 명령어로 실행 시 no main manifest attribute라는 에러와 함께 실행이 되지 않았다. 원인 및 해결 원인 빌드된 파일을 자바로 실행할 때, 자바는 MANIFEST.MF라는 파일에 있는 설정 정보를 기반으로 파일을 실행한다. 그런데 intellij에서 아무런 추가 설정이 없으면 MANIFEST.MF에 실행할 main 함수의 위치가 어딘지 적어주질 않아서 위와 같이 에러가 발생하는 것이다. intellij로 프로젝트를 생성했을 때와, Spring initializer로 생성했을 때 build.gradle.kts 파일의 속성값을 하나씩 비교해보면서 무슨 차이인지 알게되었다...

Project/Poppin 2023.10.29

[TIL] 코틀린 gradle querydsl 설정

문제 Querydsl에서 참조로하는 Q객체를 만들려고했는데 에러가 떴다. 해결방법 build.gradle.kts 파일에 가서 다음처럼 설정한다. plugins { id("org.springframework.boot") version "3.1.0" id("io.spring.dependency-management") version "1.1.0" kotlin("jvm") version "1.8.21" kotlin("plugin.spring") version "1.8.21" kotlin("kapt") version "1.7.10" } kapt: 스프링부트에서 롬복(lombok)을 사용하면 특정 어노테이션이 달린 클래스들을 롬복이 해석하여 소스 코드를 자동으로 생성해주듯이 코틀린에서 롬복처럼 사용하는 Annota..