전체 글 55

ngrok

개발환경- Apple M2 Pro- macOS Sonomangrok 설치brew로 설치합니다brew install ngrok/ngrok/ngrokngrok 사용을 위해 authtoken을 설정해줍니다ngrok config add-authtoken 간단 배포8080포트로 웹애플리케이션을 띄운상태에서 아래와같이 명령해줍니다ngrok http http://localhost:8080무료 계정인 경우 사용이 제한되며 정말 간단히 찍어볼때 사용합니다ngrok pricingngrok configngrok 주요 기능은 secured 리버스 프록시입니다.full configuration은 상당히 많고 현재는 간단히 ngrok을 service로 로컬 API에 secured url을 생성하는 기능으로 사용중입니다예시ngro..

MySQL PK 전략

현재 제 경험내에서는 PK 전략은 두가지로 나뉩니다UUID를 PK로 사용정수형 PK를 사용 + Unique Identifier 컬럼 추가1안으로 대부분 처리했고 중간에 데이터 성격에 따라 2안을 사용한 경우도 있습니다PK 설정시 고민했던 포인트MSA 환경- UID PK: UID가 많이 편했습니다. 데이터 마이그레이션할때 ID 충돌에 대한 걱정은 없었습니다- 정수형 PK: 정수형 PK의 경우에는 id가 unique하지 않기 때문에 id에 해당하는 데이터가 있는 경우, 그 데이터가 마이그레이션 할 데이터와 다른경우.. 머리가 아픕니다 새로운 id를 매핑해주고 기존 데이터들도 새로운 id를 매핑해주는 작업이 정말 귀찮고 어렵습니다정렬- UID PK: 제가 사용한 UID는 순서보장이 안되므로 순서대로 정렬하고 ..

DB 2024.07.29

Java/Spring -> Kotlin/Spring 변환 - 3

환경IDE: intellijSpringBootVersion: 2.7.18Gradle: 8.5Java: 17 해당 포스팅은인프런 "코틀린 문법부터 실무까지 (자바 to 코틀린 실무)" 을 따라하면서 Java/Spring 프로젝트를 Kotlin/Spring 프로젝트로점진적인으로 변환하는 내용을 담고 있습니다다루는 내용JUnit5 -> KotestKotest에서는 10가지의 다양한 스타일의 테스트 레이아웃을 제공합니다테스트 레이아웃도 테스트 작성시 고민하는 요소인데 그런것도 레이아웃으로 제공해줍니다참고: https://kotest.io/docs/framework/testing-styles.html enum-when처럼 테스트 레이아웃도 짜잘하지만 개발자들 입장에서는 쓸데없는 고민하지 않게되는 행복코딩으로 거듭..

Java/Spring -> Kotlin/Spring 변환 - 2

환경IDE: intellijSpringBootVersion: 2.7.18Gradle: 8.5Java: 17해당 포스팅은인프런 "코틀린 문법부터 실무까지 (자바 to 코틀린 실무)" 을 따라하면서 Java/Spring 프로젝트를 Kotlin/Spring 프로젝트로점진적인으로 변환하는 내용을 담고 있습니다다루는 내용Mockito -> MockKMockK@MockK:@Mock 대응더 엄격한 테스트 환경을 제공합니다. 모든 동작을 명시적으로 정의해야 합니다.모든 상호작용을 정확히 제어하고 싶을 때 사용합니다.@RelaxedMockK:더 유연한 테스트 환경을 제공합니다. 필요한 동작만 정의할 수 있습니다.일부 동작만 모킹하고 나머지는 무시하고 싶을 때 유용합니다.@InjtectMockKs:@InjectMocks ..

Java/Spring -> Kotlin/Spring 변환 - 1

환경IDE: intellijSpringBootVersion: 2.7.18Gradle: 8.5Java: 17해당 포스팅은인프런 "코틀린 문법부터 실무까지 (자바 to 코틀린 실무)" 을 따라하면서 Java/Spring 프로젝트를 Kotlin/Spring 프로젝트로점진적인으로 변환하는 내용을 담고 있습니다 다루는 내용- 빌드 툴 변경- util 클래스 변경- dto 클래스 변경- entity 클래스 변경- service, controller 변경빌드 툴 변경gradle update 필요gradle -> 8.5build.gradle 파일 변환build.gradle -> build.gradle.kts 로 변환groovy를 kotlin으로 변환할때아래 방법으로 변환도 가능합니다https://github.com/b..

API 설계 원칙

1. Mutation 경우 Input Payload가 명시적으로 설계되어야 한다.- 사용자 정의 데이터가 사용자 입력에 따라 자유로운경우(JSON) 해당 데이터는 검증도 하지 않아야한다. 즉, 저장하고 그대로 내려준다- 그외에 JSON형태지만 틀이 정해져있는 경우에는 검증을 해야한다- Input Payload 기반으로 추후에 서비스 로직에서 해당 데이터를 사용한다면 클라이언트가 계산후 결과를 Input에 받도록 설계해야한다 2. 이전 버전과의 호환성(Backward compatibility)을 보장해야합니다.- 기존 API의 요구사항이 변경이 되었을때 기존 API에서 반환하는 데이터타입이나 필드를 제거하지 않고 새로운 필드를 추가합니다 기존 필드는 deprecated 처리합니다 3. API 개발시 통합테..