본문 바로가기
반응형

Blog135

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.
4회 테코테코 ≣ 목차요약Queue내부 동작 방식 (배열 기반) - 선형 QueueInteger.MAX_VALUE 에서 -8 을 빼서 default 사용한다. (메모리 안정성 때문인가??)  선형 Queue 문제점: 메모리 낭비 -> 원형 큐 사용초기 front, rear 값은 모두 -1이다. 1. isFull 을 통해 data[max_size] 와 크기를 비교한다. 꽉찬 경우, false 를 반환한다.2. offer 를 해서 data 에 값을 넣는다. + rear 값을 1 증가 시킨다.3. poll 할 경우 front 값을 1 증가 시킨다. (데이터가 삭제되지 않는다.)4. offer == poll 인 경우 isEmpty 가 true 이다.Queue문제10845번: 큐https://www.acmicpc.net/pro.. 2024. 10. 6.
DDD 스터디 + a ≣ 목차DDD란?도메인을 중심으로(도메인 로직에 초점을 두고) 설계 및 개발을 진행한다.- 도메인  - 비즈니스 도메인 (콘서트 예약하기 시스템)  - 해결하고자 하는 문제 도메인(시스템 내부의 콘서트, 예약, ...)client, server 커뮤니케이션을 위해 유비쿼터스 language 를 정의한다.  - 유비쿼터스 language: 상품, 주문, ... DDD의 핵심- 전략적 설계: 추상화- 전술적 설계: 아키텍처, 비즈니스 구현SQL-DD와 DDD의 차이SQL-DD: 객체가 가져야할 데이터를 중심으로 설계하는 방식  - 코드의 결합도가 높은 단점을 가진다. - DDD 가 러닝 커브가 좀 더 높음- SQL-DD 는 결합도가 높은 편(한 객체에 모든 게 들어있기 때문) DDD 구성요소Bounded C.. 2024. 10. 1.
3회 테코테코 ≣ 목차요약- stack 을 사용할 수 있다.Stack첫 번째 문제https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법- 바구니를 stack 으로 저장하고, 바구니에 동일한 인형이 연속해서 들어올 경우 삭제한다.고민 포인트- 값이 1 이상일 때만 인형을 뽑을 수 있다.- board 의 최대 범위 30, moves 의 최대 범위 1,000이므로, O(N^2) 문제 풀이가 가능하다.최종 코드 및 회고- 직관적으로 인형을 바구니에 담는 건 stack.. 2024. 9. 29.
2주차 정리 ≣ 목차학습 목표API 개발, RDBMS 이용https://github.com/kdelay/Special-Lecture-API GitHub - kdelay/Special-Lecture-API: ✏️ 특강 신청 서비스 API 구현✏️ 특강 신청 서비스 API 구현. Contribute to kdelay/Special-Lecture-API development by creating an account on GitHub.github.comAPI Specs특강 신청 API- POST /lectures/apply- 특정 userId 로 선착순으로 제공되는 특강을 신청하는 API 를 작성한다.- 동일한 신청자는 한 번의 수강 신청만 성공할 수 있다.- 각 강의는 선착순 30명만 신청할 수 있다.- 이미 신청자가 3.. 2024. 9. 28.
1주차 정리 ≣ 목차학습 목표TDD, Testable Code, Test Codehttps://github.com/kdelay/Point-API-TDD GitHub - kdelay/Point-API-TDD: 💠 포인트 충전, 조회 등 관련 API - TDD 작성하기💠 포인트 충전, 조회 등 관련 API - TDD 작성하기. Contribute to kdelay/Point-API-TDD development by creating an account on GitHub.github.comTDD(Test Driven Development)핵심 테스트 코드를 먼저 작성하고, 이를 바탕으로 기능 개발을 진행한다.불필요한 개발 생산성 저하를 방지하기 위해 테스트 스코프를 크게 잡지 않는다.테스트 커버리지 100% 보다, 유의.. 2024. 9. 27.
2회 테코테코 [2024.09.22] 10:00 ~ 12:00≣ 목차요약- stack 자료 구조의 push, pop 메서드를 이용해서 문제를 해결할 수 있다.- deque 자료 구조를 이용해서 stack, queue 를 구현할 수 있다.스택첫 번째 문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법1. 열린 괄호일 경우, stack 에 push 한다.2. 닫힌 괄호일 경우, stack 에 있는 마지막 값을(peek) pop 해서 올바른 괄호로 판단한다... 2024. 9. 22.
728x90
반응형