Archive
전체 글 34편
2026
- 개발
[병렬 컴퓨팅 + 금융공학] 몬테카를로 시뮬레이션 병렬화: ForkJoinPool과 GPU 가속 비교
배리어 옵션 가격 산출에 ForkJoinPool 멀티코어 병렬화와 CuPy GPU 가속을 각각 적용하고 성능 결과를 비교한 경험을 코드와 함께 정리합니다.
읽기 - 개발
[JVM 최적화 + 금융공학] GC 튜닝과 알고리즘 주문 실행의 지연 제어
G1GC Mixed GC로 인한 200ms 지연 스파이크가 주문 타임아웃을 유발한 장애를 분석하고, G1GC·ZGC·Shenandoah의 중단 시간 보장 방식을 비교합니다.
읽기 - 개발
[API 설계 + 금융공학] FIX 프로토콜과 REST 비교: 저지연 주문 시스템 API 설계 기준
브로커 연동 주문 시스템을 REST에서 FIX 4.4 프로토콜로 전환해 왕복 지연을 8ms에서 3.2ms로 줄인 경험을 바탕으로 두 방식의 설계 철학과 트레이드오프를 분석합니다.
읽기 - 개발
[소프트웨어 테스트 + 금융공학] 프로퍼티 기반 테스트로 검증하는 알고리즘 거래 전략의 불변 조건
예제 기반 단위 테스트가 놓친 알고리즘 거래 전략의 포지션 한도 위반을 Hypothesis 프로퍼티 기반 테스트로 탐지한 경험과 적용 방법을 정리합니다.
읽기 - 개발
[성능 최적화 + 금융공학] 분산 캐시 무효화 전략과 옵션 Greeks 계산 최적화
옵션 포트폴리오 Greeks 계산 API의 지연 문제를 분산 캐시로 해결하면서 겪은 캐시 무효화 전략의 선택과 트레이드오프를 코드와 함께 분석합니다.
읽기 - 개발
[설계 패턴 + 금융 시스템] 이벤트 소싱과 CQRS로 구현하는 주문 관리 시스템
CRUD 기반 주문 관리 시스템의 감사 추적 한계를 이벤트 소싱과 CQRS 패턴으로 극복하는 설계 방법을 Java 코드와 함께 설명합니다.
읽기 - 개발
[분산 시스템 + 금융공학] 리더-팔로워 복제와 금융 시장 데이터의 일관성 보장
Raft 리더-팔로워 복제 알고리즘을 금융 거래소 호가 데이터 배포 시스템에 적용하는 설계 원칙과 장애 복구 전략을 코드와 함께 정리합니다.
읽기 - 금융
금융공학과 소프트웨어 공학 융합: 인터뷰 준비 가이드
Black-Scholes 공식과 몬테카를로 시뮬레이션을 Python으로 직접 구현하며 배우는 퀀트 개발자 인터뷰 준비 가이드. 코드 예시·성능 최적화·면접 팁 포함.
읽기 - 코딩 인터뷰
[코딩 면접] 아마존 인터뷰 준비 - Search Suggestion System
검색 자동완성 시스템은 Trie 자료구조로 접두사 매칭을 O(N)에 처리하는 것이 핵심입니다. 정렬 기반 풀이에서 시간 복잡도 벽에 부딪혀 Trie로 갈아타며 통과했던 1인칭 시행착오와 Python/Java 자바 코드를 함께 정리했습니다.
읽기 - 개발
[Java] Selenium 셀리니움 - HTML 원소 위치 찾기
Selenium WebDriver로 HTML 원소를 찾을 때는 By.id부터 시작해서 By.cssSelector로 좁히는 흐름이 안전합니다. nested findElement 때문에 응답이 느려졌던 1인칭 사례와 CSS selector로 합치는 개선 코드까지 정리한 실전 가이드입니다.
읽기 - 개발
스트림 스트리밍 (Stream or Streaming)
스트리밍(Streaming)은 데이터셋을 Cardinality(유한/무한)와 Constitution(Table/Stream) 두 축으로 분리해 정의할 때 비로소 모호함이 사라집니다. 배치와 너무 다르게만 여겨지던 제가 잘못 짜다 두 차원 표로 정리하게 된 경험을 풀어낸 글입니다.
읽기 - 시스템 디자인
Apache Samza 아파치 삼자 용어
제가 최근 면접에서 Apache Samza를 다루는 질문을 받았을 때, Streams와 Partitions의 차이를 정확히 설명하지 못해 겪은 어려움을 바탕으로 주요 용어를 정리하고 실무 예시와 코드를 제공합니다.
읽기 - 시스템 디자인
Apache Samza 사용 사례 - TripAdvisor
제가 면접에서 TripAdvisor가 Apache Samza를 도입한 사례를 분석했을 때, 실시간 스트림 처리의 장점을 정확히 설명하지 못해 겪은 어려움을 바탕으로 사례를 살펴보고 구현 예시와 코드를 제공합니다.
읽기 - 시스템 디자인
Apache Samza 아파치 삼자 사용사례 - Slack
Slack이 하루 수십억 건의 로그를 배치 없이 near real-time으로 처리하기 위해 Apache Samza를 도입한 과정을 정리합니다. Router-Processor-Converter 3단 파이프라인과 A/B 테스트 실시간 측정 사례를 다룹니다.
읽기 - 시스템 디자인
[소프트웨어 개발자 면접] 시스템 디자인 - 로드 밸런서 (Load Balancer)
로드 밸런서 도입 후 sticky session 남용으로 오히려 부하가 쏠린 경험, HAProxy 단독 구성이 단일 장애점이 된 사례, 면접에서 L7을 이유 없이 선택했다가 지적받은 경험을 정리합니다.
읽기 - 코딩 인터뷰
[기술 면접 코딩 인터뷰 준비] 무작위세트(RandomizedSet) 자료구조 구현 알고리즘
LeetCode 380번 RandomizedSet 구현 문제입니다. HashSet 단독으로 시작했다가 getRandom O(1) 조건에서 막혔고, swap-and-pop 트릭으로 해결했습니다. remove의 val==lastVal 엣지케이스까지 정리합니다.
읽기 - 시스템 디자인
[소프트웨어 개발자 면접] 시스템 디자인 - 인덱스 Index
쿼리 5초를 수십ms로 줄인 인덱스 경험과, 인덱스를 남발했다가 쓰기 성능이 폭락한 실패 경험을 정리합니다. 트레이드오프, 과도한 인덱스 감사 방법, 빅데이터 환경 적용까지 다룹니다.
읽기 - 시스템 디자인
[소프트웨어 개발자 면접] 시스템 디자인 - 프록시 Proxies
면접에서 리버스 프록시와 로드 밸런서를 같은 것이라 답했다가 집중 추궁을 받은 경험을 정리합니다. Layer 4/7 차이, collapsed forwarding, 단일 장애점 문제까지 다룹니다.
읽기 - 코딩 인터뷰
[기술 면접 코딩 인터뷰 준비] 연결 리스트 - 두 숫자 더하기 알고리즘(Add Two Numbers)
역순으로 저장된 두 연결 리스트의 자릿수를 더해 결과를 다시 연결 리스트로 반환하는 문제를 다룹니다. carry 누락, 길이 불일치, 정순 반환 변형까지 정면으로 짚습니다.
읽기 - 시스템 디자인
[소프트웨어 개발자 면접] 시스템 디자인 - 큐 대기열 Queue
대규모 분산 시스템에서 응답성과 내결함성을 동시에 끌어올리는 큐를 다룹니다. 멱등 소비자·순서 보장·백프레셔·데드레터 큐를 실전 면접 각도에서 정리합니다.
읽기 - 시스템 디자인
[소프트웨어 개발자 면접] 시스템 디자인 - CAP 이론 정리
면접에서 'CA 시스템을 설계하겠습니다'라고 답했다가 면접관에게 조용히 교정당한 경험이 있습니다. 분산 환경에서 파티션 내성이 왜 선택 불가인지, 일관성과 가용성 트레이드오프를 어떻게 설명해야 면접관을 납득시킬 수 있는지 실수와 함께 정리합니다.
읽기 - 코딩 인터뷰
[코딩 인터뷰 준비] 2의 제곱 찾기 알고리즘 - Power of Two
재귀로 시작했다가 면접관에게 O(1) 비트 연산을 배운 경험을 정리합니다. n > 0 조건을 빠뜨리거나 n & (n+1) 로 잘못 쓰는 실수, 언어별 정수 범위 함정까지 실제 사례 기반으로 다룹니다.
읽기 - 코딩 인터뷰
[코딩 인터뷰 준비] Edit distance - 편집 거리 알고리즘
너무나 유명한 고전 알고리즘입니다. 편집 거리는 문자열 유사도를 수량화하는 방법으로, 자연어 처리와 생물정보학에서 폭넓게 사용되고 있습니다. 코딩 인터뷰 단골 주제이기도 합니다.
읽기 - 코딩 인터뷰
[코딩 인터뷰 준비] 이진 트리 알고리즘 - Invert Binary Tree
이진 트리 반전은 이름만 들으면 어려워 보이지만, 막상 풀면 몇 줄 안 되는 깔끔한 재귀 알고리즘입니다. 실제 면접에서 저도 처음엔 자식 교체 순서에서 한참을 헤맸던 기억이 있어, 그 경험을 정리해 봤습니다.
읽기 - 시스템 디자인
Apache Samza LinkedIn 알림 시스템 최적화 (ATC 사례) - LinkedIn은 왜 이메일 알림에 Apache Samza를 썼을까?
LinkedIn ATC 사례를 직접 분석하며 면접에서 '왜 Hadoop 배치가 아니라 Samza였는가'를 정확히 답하지 못해 겪은 경험을 공유합니다. 로컬 상태 RocksDB 설계와 Kafka Streams·Flink와의 차이를 실패에서 배운 시각으로 정리합니다.
읽기 - 코딩 인터뷰
[LeetCode 1143] LCS 최장 공통 부분 수열, 재귀로 풀다 TLE 맞고 배운 다이나믹 프로그래밍
LCS 재귀에서 TLE 맞고, 글자 다를 때 +1 실수 직접 해보고, dp[n-1][m-1] 함정 두 번 밟은 경험을 바탕으로 정리한 DP 실전 가이드입니다.
읽기 - 코딩 인터뷰
[면접 코딩] O(N²)인 줄 모르고 제출했다가 혼난 문자열 압축, String Compression 완벽 분석
CTCI/LeetCode 문자열 압축 문제를 Java로 풀면서 String의 불변성이 왜 O(N²)을 만드는지, StringBuilder로 어떻게 O(N)을 달성하는지 초보자도 이해할 수 있게 설명합니다.
읽기 - 코딩 인터뷰
[기술 면접 코딩 인터뷰 준비] 순환 문자열 찾기 알고리즘 - String rotation
모든 순환 경우를 직접 만들어 비교하다 O(N²)을 지적받았고, 빈 문자열 엣지 케이스를 빠뜨려 Wrong Answer를 맞은 경험에서 배운 A+A 트릭의 진짜 의미를 정리합니다.
읽기 - 코딩 인터뷰
다이나믹 프로그래밍 - 여러 번 주사위 굴려서 정해진 숫자 맞추기
처음엔 Coin Change 2 복붙하면 된다고 생각했는데, Wrong Answer를 3번 받고 나서야 '정확히 n개를 전부 써야 한다'는 결정적 차이를 깨달았습니다. 모듈로를 마지막에만 적용해 오버플로가 났던 경험, base case를 0으로 초기화해 결과가 전부 0이 되었던 삽질까지 함께 정리합니다.
읽기 - 코딩 인터뷰
[코딩 인터뷰 준비] 겹치는 시간 간격 찾기 알고리즘 - Interval List intersections
두 개의 구간 배열을 비교해 겹치는 구간을 찾아 반환하는 투 포인터 알고리즘을 상세히 설명하고, 시간·공간 복잡도와 구현 포인트를 제공합니다.
읽기 - 코딩 인터뷰
[기술 면접 준비] 문자열 원 편집 거리 검사 - One Edit Distance
동일 문자열을 true로 반환하는 실수, NullPointerException을 면접관 앞에서 보여준 경험, '정확히 1번'과 '최대 1번'을 혼동한 함정까지 직접 겪은 이야기로 정리합니다.
읽기 - 코딩 인터뷰
[코딩 면접] 아마존 인터뷰 준비 - Number of Islands
방문 표시를 빠뜨려 무한 루프 빠지고, 경계 체크 순서 바꿔 ArrayIndexOutOfBoundsException 맞은 실제 경험으로 정리하는 DFS 섬 개수 풀이입니다.
읽기 - 코딩 인터뷰
[개발자 면접 준비] 파티션 라벨 - Partition Labels
마지막 등장 위치를 미리 계산하지 않아 O(N²)이 된 실수, 파티션 크기를 end-start로 계산해 1을 빼먹은 함정, 다음 시작점을 잘못 설정한 경험을 정리합니다.
읽기
2020
- 코딩 인터뷰
[코딩 인터뷰] 회문 순열 판별하기 - Is Palindrome Permutation? (경험 기반 풀이)
O(N!)로 모든 순열을 생성하다 TLE 맞은 실수, 공백·대소문자 처리 빠뜨려 틀린 경험, 비트마스크 최적화로 면접관을 놀라게 한 과정을 정리합니다.
읽기