본문 바로가기
반응형

Blog/TIL74

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.
[240907] 이진법 🔶 이진법≣ 목차/ 오늘의 TIL /- 이진법은 Integer.toBinaryString() 메서드를 통해 값을 구할 수 있다. - queue 풀이import java.util.*;class Solution { public int[] solution(String s) { //초기 값 세팅 Queue queue = new LinkedList(); for (char c : s.toCharArray()) { queue.add(c - '0'); } int zeroCnt = 0, answer = 0; while (queue.size() != 1) { //queue 에 0이 없을 .. 2024. 9. 7.
[240906] 우선 순위 큐 (PriorityQueue) 🔶 우선 순위 큐≣ 목차/ 오늘의 TIL /메모범위가 벗어나서 인덱스 접근이 어렵다면 새로운 +n 배열을 만들어서 접근해볼 것https://school.programmers.co.kr/learn/courses/30/lessons/42587- 우선 순위 큐에서 Collections.reverseOrder() 를 통해 내림차순으로 정렬할 수 있다.import java.util.*;class Solution { public int solution(int[] priorities, int location) { //우선 순위 큐 PriorityQueue queue = new PriorityQueue(Collections.reverseOrder()); .. 2024. 9. 6.
[240905] 코딩 테스트 풀이 🔶 stream≣ 목차/ 오늘의 TIL /처음에는 먼저 시간 내에 문제를 빨리 푸는 게 목적이었고, stream 을 사용해서 리팩토링을 해보았다.import java.util.*;import java.util.stream.*;public int[] solution(String[] name, int[] yearning, String[][] photo) { Map map = new HashMap(); for (int i = 0; i answer = new ArrayList(); for (int i = 0; i  리팩토링ide 환경 없이 코딩 테스트를 풀 수 있도록 준비하고 있는데... 꽤나 쉽지 않다 😅- iter 를 통해 새로운 데이터를 만들 때 IntStream 을 이용해서 범위 구.. 2024. 9. 5.
[240626] JS 문법 🔶JS≣ 목차/ 오늘의 TIL /TILjs 배열 선언하고 값 추가하기let arr = new Array(15);for (let i = 0; i var, let, const 차이점var함수 스코프: 함수 내에서만 유효하다.변수 호이스팅: 선언이 맨 위로 끌어올려지는 것처럼 동작한다. 따라서 변수를 선언하기 전에 사용할 수 있다.재선언 가능: 같은 스코프 내에서 동일한 이름의 변수를 여러 번 선언할 수 있다.let블록 스코프: 블록 내에서만 유효하다.변수 호이스팅 없음재선언 불가const블록 스코프변수 호이스팅 없음재선언 불가값 변경 불가랜덤 값 생성// 1부터 100 사이의 랜덤 값 생성let randomValue = Math.floor(Math.random() * 100) + 1; //floor -> .. 2024. 6. 26.
[240621] 동시성 테스트, BT 🔶동시성 테스트🔶CompletableFuture🔶트리🔶이진탐색트리 BST≣ 목차/ 오늘의 TIL /비동기비동기(asynchronous)는 한 가지 작업이 끝날 때까지 다른 작업을 기다리지 않고 동시에 여러 작업을 처리할 수 있는 방식을 의미합니다. 주로 다음과 같은 상황에서 사용됩니다:  1. 성능 향상: 특히 네트워크 호출이나 파일 입출력 등의 작업에서는 대기 시간이 발생할 수 있습니다. 이 때 비동기 방식을 사용하면 대기 시간 동안 다른 작업을 수행하여 전체 시스템의 성능을 향상시킬 수 있습니다. 2. 응답성 향상: 사용자 인터페이스에서 비동기 방식을 사용하면 UI가 멈추지 않고 여러 작업을 동시에 처리할 수 있어 사용자 경험을 개선할 수 있습니다. 3. 자원 활용: 멀티코어 프로세서 시스템에.. 2024. 6. 21.
[240620] ArgumentMatchers 🔶ArgumentMatchers≣ 목차/ 오늘의 TIL /ArgumentMatchersMockito의 클래스이다.매개변수로 전달되는 값을 테스트하기 위해 사용된다.argThat임의의 매개변수를 받아서 사용자 정의 조건을 만족하는지 확인하는 ArgumentMatcher를 생성한다.모든 타입의 매개변수에 대해 사용될 수 있다.when(yourService.yourMethod(argThat(value -> value >= 0))).thenReturn(expectedValue); longThatlong 타입의 매개변수에 특화된 ArgumentMatcher를 생성한다.when(yourService.yourMethod(longThat(value -> value >= 0))).thenReturn(expectedVa.. 2024. 6. 20.
728x90
반응형