리스코프 치환 원칙(LSP)은 왜 자주 오해될까: 상속보다 계약을 먼저 봐야 하는 이유
리스코프 치환 원칙(LSP)을 상속 문법이 아니라 계약과 치환 가능성 관점에서 다시 설명합니다. 상속이 자연스러운지 판단하는 실전 질문과 구체적인 위반 사례까지 함께 정리합니다.
리스코프 치환 원칙(LSP)을 상속 문법이 아니라 계약과 치환 가능성 관점에서 다시 설명합니다. 상속이 자연스러운지 판단하는 실전 질문과 구체적인 위반 사례까지 함께 정리합니다.
누적합과 차분 배열이 각각 언제 필요한지, 구간 합과 구간 업데이트 문제를 어떤 기준으로 나눠 생각해야 하는지, 그리고 difference array를 누적해 실제 배열로 복원하는 흐름까지 쉬운 예시로 설명합니다.
코틀린에서는 named argument와 default parameter 덕분에 Builder가 덜 자주 필요합니다. 하지만 단계적 조립, 검증, 중첩 구조, Java 호환성까지 고려하면 Builder와 DSL 스타일이 여전히 유효한 순간이 있습니다.
SCHD vs VYM 비교를 데이터로 정리했습니다. total return, 최대 낙폭, 회복 속도, 구성 차이, 현금흐름 체감, 심리 비용까지 함께 봅니다.
원형 배열 문제를 쉽게 푸는 법을 정리합니다. modulo 인덱싱, 배열 두 배 확장, 시작점 고정, wrap-around window를 예시로 설명하고 시계·회전·원형 구간 문제의 접근 순서와 실수 포인트까지 함께 짚습니다.
SavedStateHandle을 모든 상태 저장 도구처럼 쓰면 구조가 무거워지고, 반대로 전혀 쓰지 않으면 process death 대응이 약해집니다. 이 글에서는 navigation args, 검색 조건, 탭 선택 같은 최소 복원 상태를 기준으로 언제 SavedStateHandle이 필요한지 정리합니다.