728x90
반응형
📌 TIL (Today I Learned)
🚀 오늘의 핵심 정리
- Kotest AbstractProjectConfig는 프로젝트 전역 테스트 설정을 담당
- extensions()을 활용해 커스텀 확장 기능을 등록할 수 있음
- GitLab에서 authored와 committed가 다르게 표시되는 이유는 rebase, cherry-pick, amend 때문
- Kotlin에서 if와 let의 성능 차이는 거의 없지만, 일반적인 조건문(if)이 더 직관적
- Git에서 cherry-pick을 하면 author는 유지되지만 committer는 변경됨
🔹 1. Kotest의 AbstractProjectConfig
- Kotest에서 전역 설정을 정의하는 추상 클래스
- 테스트 실행 방식(병렬 실행, 실행 순서, 확장 기능 등)을 제어할 수 있음
- beforeProject() 및 afterProject()를 활용하여 테스트 환경을 설정할 수 있음
object TestConfig : AbstractProjectConfig() {
override val parallelism = 2 // 병렬 실행 개수
override val testCaseOrder = TestCaseOrder.Random // 랜덤 실행
override suspend fun beforeProject() { /* 테스트 환경 초기화 */ }
override suspend fun afterProject() { /* 테스트 후 정리 작업 */ }
}
🔹 2. Kotest 확장 기능 등록 (extensions())
- AbstractProjectConfig에서 extensions()를 오버라이드하여 커스텀 확장 기능 추가 가능
- 예를 들어, 테스트가 끝난 후 실행되는 로직을 정의한 AfterTestListenerConfig를 등록할 수 있음
object TestConfig : AbstractProjectConfig() {
override fun extensions() = listOf(AfterTestListener)
}
🔹 3. GitLab에서 authored와 committed 차이
- GitLab에서 "A authored ... and B committed ..."처럼 표시되는 이유:
- Author (작성자) → 최초로 코드를 작성하고 커밋한 사람
- Committer (커밋한 사람) → 최종적으로 GitLab에 반영한 사람
- git rebase, git cherry-pick, git commit --amend 등을 수행하면 Committer가 변경될 수 있음
✅ 예시: git cherry-pick 후 로그 확인
git checkout main
git cherry-pick <commit-hash>
git push origin main
git log --pretty=fuller
commit abc1234
Author: A <a@email.com>
Commit: B <b@email.com>
→ Author는 A, Committer는 B로 기록됨 (GitLab에서도 동일하게 표시됨)
🔹 4. Kotlin 코드 스타일 및 최적화
- if 문과 let 비교: 성능 차이는 거의 없지만, 불필요한 let 사용은 피하는 것이 좋음
- 더 Kotlin스럽게 작성하는 방법:
- takeIf를 활용하면 더 간결한 코드 작성 가능 (request.flag.takeIf { it }?.let {})
- 하지만 일반적인 조건문(if)이 더 직관적이고 성능 면에서 유리할 때도 있음
✅ 예제 (가독성 좋은 코드 스타일)
if (request.flag) {
service.execute()
}
✅ (대체 가능하지만 권장되지 않음)
request.flag.takeIf { it }?.let {
service.execute()
}
🔹 5. Git 커밋 시 author와 committer가 달라지는 경우
작업 유형 author committer
일반 커밋 (git commit) | A | A |
git rebase 후 푸시 | A | B |
git cherry-pick 사용 | A | B |
git commit --amend 사용 | A | B |
git merge 수행 | A | B |
👉 오늘도 한 걸음 성장했다! 🚀
728x90
반응형
'Blog > TIL' 카테고리의 다른 글
2024-02-24 (월) (0) | 2025.02.24 |
---|---|
2025-02-21 (금) (0) | 2025.02.21 |
2025-02-19 (수) (0) | 2025.02.19 |
2025-02-18 (화) (0) | 2025.02.18 |
2025-02-17 (월) (0) | 2025.02.17 |
댓글