본문 바로가기
반응형

전체 글343

2025-01-13 (월) describe("~") { context("~") { it("~") { val advertiserResponse = List(3) { index -> AdvertiserInfoDTO.Response( "${base.advertiserName}$index", "${base.advertiserId}${index + 1}" ) } every { innerRestClient.get() .uri("...") .. 2025. 1. 13.
2025-01-10 (금) 스코프 함수.run: 객체에서 특정 작업을 실행하고 마지막 표현식의 결과 반환.주로 객체에 대해 임시로 스코프를 확장하여 작업을 수행하거나 체이닝을 간결하게 하기 위해서 사용됨.?. 연산자로 null-safe하게 작업을 수행.inline fun T.run(block: T.() -> R): RT: 호출 객체의 타입.block: 호출 객체를 수신으로 받아 작업을 수행할 람다.R: 람다의 결과 타입으로, .run 함수가 반환됨.함수this로 접근it로 접근반환 값주 용도runOX람다의 결과객체 설정 및 결과 반환letXO람다의 결과결과 반환 및 체이닝alsoOX호출 객체추가 작업 수행 및 체이닝applyOX호출 객체객체 구성 및 반환withOX람다의 결과객체 작업에 집중다수 테스트 객체 생성val email.. 2025. 1. 10.
2025-01-09 (목) 순환 참조(circular dependency) 문제java.lang.ClassCircularityError: java/lang/WeakPairMap$ Pair $Weak주요 원인Mocking 문제: 동적으로 생성된 프록시 객체가 내부적으로 순환 참조를 발생시킬 수 있음.모든 mock 객체를 테스트 클래스 상단에서 일괄적으로 초기화.코틀린 리플렉션이나 클래스 로딩 과정에서의 문제일 수 있음.비활성화```bashDkotlinx.coroutines.debug.enable.creation.stack.trace=falseDkotest.framework.classpath.scanning.autoscan.disable=true```JVM 버전(corretto-17) 또는 설정이 특정 라이브러리와 호환되지 않아 발생.. 2025. 1. 9.
2025-01-08 (수) lateinit var + private set코틀린에서 지원하는 lateinit, lazy 를 통한 지연 생성.해당 프로퍼티가 사용될 때 프로퍼티가 만들어짐.비용, 시간 절약 가능.null 로 초기화해서 초기 null check 를 수행하지 않고 해당 프로퍼티의 내용을 참조할 수 있음.테스트 코드에서 해당 필드에 접근하려면 리플렉션 사용fun setPrivateField(obj: Any, fieldName: String, value: Any) { val property = obj::class.declaredMemberProperties.find { it.name == fieldName } property?.apply { isAccessible = true val fi.. 2025. 1. 8.
2025-01-07 (화) Kotlin Result 클래스작업의 성공 또는 실패를 나타내는 표준화된 방식fun findUserAuthByBusinessAndEmail(businessId: String, email: String): Result { val userAuth = businessUserAuthRepository.findByBusinessIdAndEmail(businessId, email) return if (userAuth != null) { // 성공적인 작업의 결과 Result.success(userAuth) } else { // 실패한 작업의 예외 처리 Result.failure(ServiceException(ErrorCode.BUSINESS_USER_AUTH.. 2025. 1. 7.
2025-01-06 (월) @ModelAttribute컨트롤러 메서드의 파라미터를 바인딩하고, 뷰로 전달할 객체 설정클라이언트 요청 데이터를 객체로 매핑한다.//요청 데이터: /register?name=John&age=30@PostMapping("/register")fun registerUser(@ModelAttribute user: User): String { println("User: $user") return "success"}//바인딩된 객체User(name = "John", age = 30)@JvmStatic정적 메서드처럼 호출 가능하게 만들어주는 어노테이션JUnit5 의 @BeforeAll, @AfterAll 은 정적 메서드로 선언해야 한다.(@BeforeAll / @AfterAll) vs 객체 직접 생성객체를 직접.. 2025. 1. 6.
8회 테코테코 ≣ 목차요약이진 트리: 왼쪽 노드와 오른쪽 노드가 균일하게 있는 경우배열, 연결 리스트를 구현할 수 있다. (메모리 제약 차이)* Tri-Tree 구조계층형 구조파일 시스템, 인덱스 B-Tree 등에 이용된다.이진 탐색 트리: 이진 트리 + 정렬정렬이 잘 되어있으면 탐색이 빠르다.트리 (사이클X) 그래프 (사이클O) - 순환참조 발생트리 (비선형 구조) 배열, 리스트 (선형 구조) 균형 이진 트리, 포화 이진 트리, 완전 이진 트리전위 순회: DFS, 트리 복사, 파일 탐색중위 순회: 오름차순 정렬, 이진 탐색 트리에서 정렬 유지후위 순회: 메모리 해제, 파일 구조 삭제, 후위 표기법 계산레벨 순회: BFS, 자식 노드를 큐에 담으면서 확인, 최단 거리 탐색(그래프에서 자주 사용되긴 함)트리첫 번째 .. 2024. 11. 10.
Tree 전위, 중위, 후위 순회 입력 값1234567 소스코드package algorithm.boj;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) throws IOException { System.setIn(new FileInputStream("/Users/kdelay/study/programmers/src/main/j.. 2024. 11. 7.
알고리즘 정리 및 예제 ≣ 목차동적 계획법 (Dynamic Programming, DP)예제: 피보나치 수열 (Fibonacci Sequence)  • 문제 설명: 피보나치 수열의 n번째 숫자를 구하는 문제입니다. • 접근 방법: DP를 사용해 재귀적으로 구하는 대신, 중복 계산을 피하고, 계산된 값을 배열에 저장해 최적화를 할 수 있습니다.public class FibonacciDP { public static void main(String[] args) { int n = 10; System.out.println(fibonacci(n)); // Output: 55 } public static int fibonacci(int n) { if (n 추가 예제: 최소 동전 개수.. 2024. 10. 22.
728x90
반응형