Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat #133 코틀린 마이그레이션 (build.gradle -> build.gradle.kts 로 변경, 의존성 버전 변경) #132

Merged
merged 9 commits into from
Jan 5, 2024

Conversation

JiwonDev
Copy link
Collaborator

@JiwonDev JiwonDev commented Jan 3, 2024

Feat #131

Kotlin 1.8.20
Spring Boot 3.1.2
Gradle 7.5.1

  • build.gradle -> build.gradle.kts 로 변경, 의존성 버전 변경

  • 사용하지 않는 purchase api 모듈 삭제

  • jjwt 버전 변경, deprecated 된 api 수정

  • buildSrc를 이용한 버전 분리

  • embeddedRedis 실행에 실패하더라도 정상 동작하도록 수정

    • mac sonoma에서 localhost 로 정상동작하지 않는 이슈가 있습니다. 이 경우 local terminal로 redis-server를 따로 실행해서 빌드해야합니다.
  • 대충만 만들어뒀습니다. 추후 모듈별로 정리할 예정입니다.

@JiwonDev JiwonDev removed the request for review from f-lab-bright January 3, 2024 18:25
@JiwonDev JiwonDev self-assigned this Jan 4, 2024
@JiwonDev JiwonDev added 🐧 Infra 서버, 인프라, 프로젝트 설정 🔨Fix 올바르지 않은 동작을 고친 경우 labels Jan 4, 2024
Copy link
Collaborator

@Rebwon Rebwon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGMT with comments.

enabled = false
}

plugins {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PN 룰에 따라 P4로 얘기해보면 plugins가 가장 위에 배치되는건 어떨까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 순서는 큰 생각없이 적어둔거라 plugins를 제일 위로 올려두겠습니다

  • PN 룰이라는게 있었군요. 괜찮은 아이디어 같아요 😀
image

account-api/account-infrastructure/build.gradle.kts Outdated Show resolved Hide resolved
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.MalformedJwtException;
import io.jsonwebtoken.UnsupportedJwtException;
import io.jsonwebtoken.*;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아마 이렇게 하면 나중에 Kotlin의 Ktlint가 wildcards import에 대해 싫은 소리를 할 거 같긴 한데... wildcards import로 싫은 소리 못하게 rule을 추가해버리죠ㅋㅋ

Copy link
Collaborator Author

@JiwonDev JiwonDev Jan 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아 이거 IntelliJ가 마음대로 변경해버렸네요. 해당옵션을 꺼놓겠습니다 ㅋㅋㅋㅋ
해당 코드는 어차피 코틀린으로 마이그레이션하면 없어질 예정이니, 당장 수정하지는 않을게요.
image

account-api/account-presentation/build.gradle.kts Outdated Show resolved Hide resolved
app/build.gradle.kts Show resolved Hide resolved
build.gradle.kts Show resolved Hide resolved
build.gradle.kts Outdated
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("au.com.console:kassava:2.0.0")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 무슨 용도로 추가하신 건가요?

Copy link
Collaborator Author

@JiwonDev JiwonDev Jan 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코틀린을 사용할 때 기본적으로 추가하는 의존성입니다. 자바에서 javax 따로있는거랑 비슷한 느낌으로 필요한거만 골라서 불러와서 사용합니당.

kotlin gradle doc
kotlin reflection doc

implementation("org.jetbrains.kotlin:kotlin-reflect") // 코틀린 리플랙션 
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") // 코틀린 JDK 8 호환지원 (autoCloseable 등)

말 나온김에 찾아보니까, kotlin 1.8 (2022.12 출시) 부터는 org.jetbrains.kotlin:kotlin-stdlib 으로 통합되었군요. 같이 변경해두었습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • kassava는 롬복을 사용하지 않기때문에 data class 가 아닌 곳에 toString, equlas 등을 직접 정의할 때 편리하게 사용할 수 있는 도구입니다.
image
  • com.fasterxml.jackson.module:jackson-module-kotlin 요건 jackson kotlin 지원 모듈입니다. kotlin 객체에서 ObjectMapper를 사용할 때 필요해요.

const val SPRING_BOOT = "3.1.2"
const val SPRING_DEPENDENCY_MANAGEMENT = "1.1.2"
const val ASCIIDOCTOR = "3.3.2"
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kotlin에서 toml을 쓰거나 아니면 gradle.properties로 쓰는걸 자주 봤는데 이렇게 정의해서 쓰시는 군요 👍

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 플러그인 포함해서 모든 버전을 해당 레포에서 관리합니다
gradle 기능이에요! https://sabarada.tistory.com/203

notification-api/notification-application/build.gradle.kts Outdated Show resolved Hide resolved
@JiwonDev
Copy link
Collaborator Author

JiwonDev commented Jan 5, 2024

수정완료되었습니다 😀 292571f

@JiwonDev
Copy link
Collaborator Author

JiwonDev commented Jan 5, 2024

image 이게 걸려있으니 남기고싶은 리뷰를 강제적으로 다 닫아야해서 아쉽네요. 나중에 설정을 변경해두겠습니다!

@JiwonDev JiwonDev merged commit 3ae5f4d into main Jan 5, 2024
1 check passed
@JiwonDev JiwonDev deleted the feat/133 branch January 5, 2024 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨Fix 올바르지 않은 동작을 고친 경우 🐧 Infra 서버, 인프라, 프로젝트 설정
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants