Blog
2023
- LeetCode 230: BST에서 k번째로 작은 값 찾기
중위 순회로 방문 횟수를 세어 k번째 노드의 값을 저장하는 풀이입니다.
- LeetCode 530: BST 중위 순회로 가장 작은 차이 찾기
이진 탐색 트리를 오름차순으로 방문하며 이웃한 값의 차이를 비교하는 풀이입니다.
- LeetCode 162: 이분 탐색으로 Peak Element 찾기
중간 값과 오른쪽 값을 비교해 봉우리가 있는 구간을 좁히는 풀이입니다.
- LeetCode 1: HashMap으로 Two Sum의 두 인덱스 찾기
앞서 본 값과 인덱스를 저장해 합이 target이 되는 두 원소를 찾는 풀이입니다.
- LeetCode 155: 이전 최솟값을 함께 저장하는 Min Stack
스택에서 최솟값이 빠질 때 이전 최솟값을 복원하도록 구현한 기록입니다.
- LeetCode 125: 문자열을 뒤집어 팰린드롬 확인하기
영문과 숫자만 남긴 문자열을 뒤집어 원래 문자열과 비교한 풀이입니다.
- LeetCode 80: 정렬된 배열의 중복을 두 개까지 남기기
연속된 중복 횟수를 세어 같은 값을 최대 두 개만 남기는 풀이입니다.
- LeetCode 26: 정렬된 배열에서 중복을 하나씩만 남기기
마지막으로 남긴 값과 현재 값을 비교해 중복을 제거하는 풀이입니다.
- LeetCode 27: 같은 배열 안에서 특정 값 제거하기
남길 값만 배열 앞쪽으로 옮겨 유효한 길이를 반환하는 Remove Element 풀이입니다.
- LeetCode 88: 정렬된 배열을 뒤에서부터 합치기
배열을 합친 뒤 정렬하는 풀이에서 뒤쪽부터 비교해 채우는 풀이로 바꾼 기록입니다.
- MockMvc에서 HttpOnly 쿠키의 토큰 값을 확인했던 방법
Set-Cookie 헤더 전체와 토큰 값의 비교가 실패한 뒤 포함 여부를 검사했던 테스트 기록입니다.
- Spring Boot prod 프로필이 켜졌는데 DB 설정이 맞지 않았던 기록
prod 프로필 활성화 뒤 발생한 DDL 오류와 개발 설정을 분리해 해결했던 과정을 정리했습니다.
- IntelliJ 빌드 중 TypeRepr ClassCastException을 만났을 때
IntelliJ의 모듈 빌드 오류를 Rebuild Project로 해결했던 짧은 기록입니다.
- WebFlux에서 이미지 응답과 파일 없음 404 처리하기
클래스패스의 이미지를 읽고 확장자별 Content-Type과 파일이 없을 때의 응답을 처리한 기록입니다.
- Homebrew로 Docker Desktop을 재설치했던 기록
Docker가 이미 설치됐다는 경고 뒤 잔여 파일을 정리하고 재설치한 macOS 작업 기록입니다.
- 카카오맵 토이 프로젝트 2: WebClient로 날씨 수집 자동화하기
기상청 초단기예보를 조회하고 필요한 값을 저장한 뒤 매시간 수집하도록 예약한 기록입니다.
- Java Stream: 람다식과 메서드 참조로 목록 처리하기
정렬 비교자를 람다식으로 바꾸고 Stream의 필터링과 변환을 연습한 Java 예제입니다.
- 카카오맵 토이 프로젝트 1: 장소 저장과 WebMvcTest
카카오맵에 표시할 장소를 저장하고 MockMvc로 등록·조회·수정·삭제 요청을 테스트한 기록입니다.
- Spring Boot 3.1로 바꾼 뒤 Querydsl Q 타입 컴파일 오류
Spring Boot 버전을 올린 뒤 Querydsl 의존성에 jakarta 분류자를 붙였던 수정 기록입니다.
- 트랜잭션 기초: 커밋, 롤백, 격리 수준과 자동 커밋
송금 예제로 트랜잭션의 ACID와 DB 세션, 자동·수동 커밋을 정리했습니다.