전체 글15 커맨드패턴으로 만들어보는 undo/redo 들어가며.figma나 canva 같은 화이트보드형 서비스에서 필수적인 undo, redo 기능이 있습니다. 언뜻 생각하면 간단할 것 같지만, 막상 구현하려고 하면 생각보다 복잡한 상황을 마주하게 됩니다. 저 역시 eapy:canvas에서 undo, redo를 구현하면서 복잡해지는 코드로 인해 골치가 아팠던 경험이 있습니다. undo/redo 기능을 구현하는 방식은 요구사항과 제약 조건 등 프로젝트가 처한 상황에 따라 다를 것입니다. 안타깝게도 (대부분의 경우가 이렇겠지만), 저에겐 구현 시간이 많이 주어지지 않은 것이 큰 제약 조건이었습니다. 최초 mvp 배포가 얼마 남지 않은 상황에서, 핵심 기능 개발에 열중해야 했기에 처음에는 간단하게 일종의 메멘토 패턴과 유사한 상태 스냅샷 저장 방식으로 구현하였습.. 2025. 8. 26. 끝나가는 '도구'의 시대: K-AI 서밋 2025가 던진 AI의 최종 진화, AGI 들어가며지난 3년간 생성형 AI 스타트업에 몸담으며, 흔히 이야기하는 실리콘밸리와 우리나라의 기술적 격차를 여실히 체감할 수 있었다. 격변의 AI 시대 속에서, 한국의 좌표와 그 미래는 어떻게 되는 것일까. 이미 개발자에게 큰 임팩트를 미치며 개발 환경을 변화시켰던 AI는 어디까지 발전할 것이며, 우리는 무엇을 대비해야 하는가? 이 끊이지 않는 질문의 실마리를 찾고자 나는 K-AI 커뮤니티 서밋 2025로 향했다. 그리고 이 컨퍼런스는 내게 하나의 명확한 사실을 각인시켰다. AI는 더 이상 인간의 명령을 수행하는 '유능한 비서'에 머무는 것이 아니라, 때로는 우리를 가르치고 새로운 사업의 물꼬를 트는 '지적 동업자'로 그 위상을 바꾸고 있다는 것을. 특히 범용 인공지능(AGI)의 개념과 등장은, 대학교 .. 2025. 8. 11. 글또 10기를 마치며 하는 회고 글또를 시작하기 전.잠시 시간을 되돌려, 작년 10월 9일에 썼던 나의 글을 다시 읽어보았다. 글또 10기에 참여하게 된 이유와 어떤 방식으로 활동할지에 대한 다짐이 담긴 글이었다. 그때 내가 적었던 참여 이유를 다시 정리하자면, 단순한 개념 정리에 그치지 않고 좀 더 의미 있는 기술 블로그를 만들고 싶었고, 일회성에 그치지 않는 꾸준한 글쓰기 습관을 만들고 싶었다. 여기에 더해, 다른 개발자들과 건강하게 교류할 수 있다면 더할 나위 없겠다고 생각했었다. 주된 목적이 글쓰기였기에 기술 블로그에 글을 올리는 데 더 집중했었다. 네트워킹은 그저 "기회가 되면 조금 해볼까?" 정도로만 생각했기에, 돌이켜보면 더 많은 교류를 하지 못한 점이 아쉽기는 해도 그것이 후회로 남지는 않았다. 애초에 그게 주된 목표는 .. 2025. 3. 30. 콘스트처럼? 콘스트 단언! as const 들어가며.업무를 하다 보면, 종종 상수를 다루어야 하는 경우가 생깁니다. typescript를 사용하는 경우, as const를 이용하여 상수를 표현하고는 하는데요. 이는 강제된 규칙이 아니기 때문에, as const 없이 상수를 다루는 경우도 있습니다. 단순히 상수명을 대문자로만 구성하고, 대문자로만 구성된 건 상수를 뜻한다고 코드 컨벤션을 정의할 수 있기 때문이죠. 그런데, 정말로 대문자로만 상수를 표현하는 것으로 충분할까요? 저는 상수를 다룰 때 typescript를 사용한다면, as const를 사용하기를 권장합니다. 왜 권장하냐고요? 그건.. 아래에서 자세히 알아보도록 하죠. as const가 뭔가요?as const는 TypeScript에서 값을 '깊은 수준의 읽기 전용(deeply reado.. 2025. 3. 16. Biome에 대해 아세요? 들어가며개발자라면 살아가면서 무수히 많은 프로젝트를 하게 됩니다. 다른 말로 하면, 수없이 많은 개발 환경을 세팅해 본다는 뜻이죠. 신기하게도, 거의 모든 프로젝트의 개발 환경 세팅은 조금씩 다릅니다. 팀의 개발 문화, 프로젝트의 성격, 규모 등 여러 요소에 따라 세팅해야 할 디테일이 달라지기 때문입니다. 이 글을 보고 계신 개발자분들은 개발 환경을 세팅할 때 얼마나 많은 고통을 겪고 계신가요? 또 Lint 설정이야..?대부분의 프런트엔드 개발자들은 lint 설정을 위해 ESLint와 Prettier 조합을 선택합니다. 업계의 표준처럼 여겨지는 이 조합으로 개발 환경을 세팅하는 일은 얼핏 보기에는 그리 어려워 보이지 않습니다. "단순히 설치하고 설정만 적용하면 되는 거 아닌가?"라고 생각할 수도 있죠. .. 2025. 2. 28. 익숙한 듯 익숙하지 않은 쿠키(Cookie)의 보안에 대해 알아보자 쿠키 보안, 얼마나 알고 계신가요?웹 개발을 하면서 쿠키를 사용한 경험은 많지만, 보안에 대해 깊이 고민해 본 적이 있으신가요? 사실 저는 단순히 값을 저장하고 읽는 용도로만 사용했지만, 사이드 프로젝트를 통해 직접 로그인 기능을 구현하면서 쿠키의 보안 문제를 고려해야 한다는 것을 깨닫게 되었습니다.로그인 처리 시 access token을 어디에 저장해야 할지 고민하면서, "클라이언트에서 대충 저장해도 괜찮지 않을까?"라는 생각이 들었지만, 보안 관점에서는 그렇지 않았습니다. 특히, 서버에서 httpOnly 속성을 설정하여 쿠키를 관리하는 방식에 대한 피드백을 받고 나서, 이 속성이 정확히 무엇이고, 왜 필요한지 더 깊이 파고들게 되었습니다. httpOnly란?httpOnly 속성은 서버에서 쿠키를 설정.. 2025. 2. 3. 이전 1 2 3 다음