keepmhwn's blog
2026년 6월 3일
LLM은 긴 대화를 어떻게 기억할까?
LLM 챗봇이 긴 대화 속 맥락을 기억하는 방법 — Sliding Window, 요약, Retrieval Memory, Query Rewriting까지
LLM공부
2026년 1월 2일
고객이 원하는 것을 그대로 구현해야 할까?
제품을 개발할 때 가장 중요한 것은 고객이 겪는 문제를 해결하는 것이다. 그러기 위해서는 고객의 이야기를 충분히 들어야 합니다. 하지만 고객이 말한 요구사항을 그대로 구현하는 것 역시 위험하다.
경험생각정리
2025년 8월 12일
타입을 정의할 때 생각하는 것들
타입은 단순히 자동완성을 위한 문법이 아니라 시스템이 무엇을 허용하고 무엇을 허용하지 않을지를 설계하는 도구입니다. 이 글에서는 타입을 정의할 때 스스로에게 던지는 네 가지 질문—무엇을 보호하는가, 어디까지 엄격해야 하는가, 외부/내부 타입을 분리해야 하는가, 변경 시 수정할 곳을 알려주는가—을 코드 예시와 함께 정리합니다.
타입스크립트생각정리
2025년 6월 15일
타입으로 의도를 표현하기
TypeScript를 사용하는 가장 큰 이유는 컴파일 단계에서 타입 오류를 발견하기 위해서입니다. 하지만 타입의 역할은 단순히 오류를 방지하는 것에서 끝나지 않습니다.
타입스크립트
2025년 2월 8일
함수 파라미터가 반변성(Contravariance)인 이유
최근에 타입스크립트를 사용하면서 지금껏 생각하지 못한 개념을 알게 됐습니다. 일반 변수와 함수의 파라미터에 대한 타입의 상속관계에 차이가 있다는 것입니다. 이번 글에서는 가변성(Variance)을 통해 두 개의 타입에 대한 상속관계를 알아보고 변수와 다르게 함수의 파라미터의 가변성이 다른 이유를 정리하려고 합니다.
타입스크립트
2024년 7월 12일
개발자의 성장에 방해가 되는 것들
프론트엔드 개발을 시작한 지 거의 3년이 되어가는 시점에서 얼마나 성장했는지 되돌아봤습니다. 그런데 잘할 수 있는 것이 한 가지도 떠오르는 것이 없었고 성장의 결과물이 보이지 않았습니다. 그래서 어떤 점이 개발자로서의 성장에 방해가 되었는지 생각한 것을 정리하려고 합니다.
생각정리자기계발
2024년 1월 24일
리팩토링, 어디서부터 시작해야 할까?
최근에 새로운 프로젝트에 참여하면서 리팩토링을 진행했었습니다. 그런데 초기에 계획했던 시간보다 더 많은 시간이 소요되었습니다. 그래서 리팩토링을 한 이후에 시간이 지체된 원인을 분석했고, 리팩토링이 오래 걸렸던 원인 3가지를 발견하였습니다. 이번 글을 통해 원인을 바탕으로 리팩토링을 준비하는 3가지 방법을 공유하려고 합니다.
리팩토링경험
2023년 8월 28일
Chrome의 백그라운드 타이머 제한이 MQTT 연결을 끊었던 이유
Chrome의 Intensive Wake Up Throttling 정책이 백그라운드 탭의 MQTT Keep Alive 타이머를 지연시켜 연결이 끊어지는 문제를 분석하고, Keep Alive 조정과 visibilitychange 이벤트를 활용한 해결 과정을 공유합니다.
문제해결ChromeMQTT
2023년 4월 4일
1년 동안 코드 리뷰를 하면서 느낀점
2022년 1월부터 현재 회사의 프론트엔드 팀에 합류하여 1년이 조금 넘는 기간 동안 코드 리뷰를 하면서 느낀 점을 공유하려고 합니다. 이 글은 개인적으로 코드 리뷰를 하면서 느낀 장점과 장점을 얻기위한 올바른 코드 리뷰 방법을 정리한 것입니다.
경험생각정리