AI 도구의 발전 속도는 매우 빠르다. 매주 새로운 AI 도구들이 생겨나고 있고, 클로드(Claude) 같은 에이전트는 하루에도 여러 차례 업데이트된다. 이런 변화 속에서 많은 현업 개발자들이 따라가기에 벅차다고 느낀다. 모두가 AI를 이야기하니 뒤처질 것 같은 FOMO를 느끼기도 하고, AI가 마법처럼 모든 일을 해결해줄 것이라 기대했다가 오히려 불필요한 작업이 늘어나는 경험을 한 사람도 있을 것이다.필자는 현업 개발자로서 급변하는 트렌드를 맹목적으로 좇기보다, 본질적인 원리를 깊게 이해하는 데 집중하려 한다. 이 글에서는 AI 에이전트를 실무에서 어떻게 활용할 수 있는지, 필자의 경험을 바탕으로 스킬(Skill), 규칙(Rules), 커맨드(Commands), 서브 에이전트(Sub-Agents)의 차..
전체 글
안녕하세요. 사진과 철학에 관심이 많은 웹 프론트엔드 개발자 오원종입니다. 시간이 지나도 꾸준히 읽힐 수 있는 글을 쓰고 싶습니다. 재미있는 일만 하면서 살고 있는 사람입니다.원문: What is a Design Engineer?디자인 엔지니어는 디자인과 프런트엔드 개발 사이를 연결하며, 훌륭하게 느껴지고 완벽하게 작동하는 인터페이스를 만듭니다. 디자인 엔지니어가 무엇을 하는지, 디자이너 및 개발자와 어떻게 다른지, 그리고 Vercel, Stripe, Linear 같은 회사들이 왜 이들을 채용하는지 알아보세요.디자인 엔지니어는 소프트웨어가 단순히 '작동'하는 것을 넘어, 실제로 좋게 느껴지도록 만드는 사람들입니다.이 역할은 최근 큰 주목을 받고 있습니다. Vercel, Stripe, Linear, Cursor가 모두 적극적으로 채용하고 있습니다. 디자인 엔지니어링 전용 구인 게시판이 생겨났습니다. 그리고 기술 트위터를 자주 본다면, 이에 대한 담론을 본 적이 있을 것입니다.그..
원문: Lessons From 9 More Years of Tricky Bugs2002년부터 저는 제가 마주친 모든 까다로운 버그를 추적해왔습니다. 9년 전, 그때까지의 버그에서 얻은 교훈을 담아 블로그 글을 작성했습니다. 그 이후로 기록해온 버그들을 이번에 전부 다시 돌아봤습니다. 첫 번째 회고에서 정리했던 교훈들을 실제로 잘 실천해왔는지 확인하고 싶었고, 그사이 어떤 유형의 버그들을 마주쳤는지도 살펴보고 싶었습니다. 이전과 마찬가지로 교훈을 코딩, 테스팅, 디버깅의 카테고리로 나눠 정리했습니다.코딩1. 빈 케이스. 다섯 개의 버그가 빈 줄, 빈 파일, 공백, 또는 값이 0인 경우와 관련이 있었습니다. 예를 들어, 공백 한 칸(0이 아닌)이 있는 줄은 비어있는 것으로 건너뛰어야 했지만 그렇지 않았습니다..
이번 글은 내가 지난 두 달여간 교회 수련회에서 사용할 웹 어플리케이션을 만들었던 개발기이며 그 과정에서 배웠던 점들과 느꼈던 점들을 적어 보려고 한다. 지난 25년 12월 나는 한 교회 친구의 콜링을 받고, 교회 수련회에서 사용할 웹 어플리케이션을 개발하게 되었다.12월 초에 콜링을 받았고 수련회는 1월 23일이어서 기획과 개발을 다 7주 정도의 시간 안에 해야 하는 상황이었다.다행히 내가 혼자서 해야 하는건 아니었고 기획자 2명과 개발자 2명과 같이 총 5명이 팀으로 개발을 할 수 있는 팀이 있었다. 프로젝트 구조 : 웹 FE + BE 모노레포프로젝트 구조는 프론트엔드와 백엔드를 하나의 레포로 관리했다. 개발을 할 때는 프론트엔드 서버와 백엔드 서버를 각각 띄워서 작업했다. 사용했던 기술스택은 다음과..
원문: Building a Toast Component저는 2023년에 토스트 라이브러리인 Sonner를 만들었습니다. 현재 주간 npm 다운로드가 800만 회를 넘어섰고, Cursor, X, Vercel 같은 회사에서 사용되고 있습니다. 또한 shadcn/ui의 기본 토스트 컴포넌트이기도 합니다.Sonner를 만들 당시, 토스트 "시장"은 이미 포화 상태였습니다. 그렇다면 무엇이 Sonner를 돋보이게 했을까요? 왜 사람들은 검증된 대안 대신 Sonner를 선택했을까요?이름부터 시작해봅시다.네이밍제 생각에 기능에 기반해서 이름을 짓는 건 너무 평범합니다. react-toast, react-snackbar, react-notifications 같은 이름은 모두 지루하고 일반적으로 느껴집니다. 더 독특하고..
최근에 인프런에서 프론트엔드 테스트에 대한 강의를 들으면서 생각한 내용을 주절주절 적어보려고 한다.프론트엔드에서 테스트가 필요한지? 에 대해서는 과거에는 논쟁이 있었던 것으로 기억한다. 누군가는 필요하다, 누군가는 필요하지 않다.내가 이전에 다니던 회사는 프론트엔드 테스트 코드가 없었고, 지금 회사는 있다. 하지만 테스트 코드가 있다고 크게 더 나은 점이 있는지는 잘 모르겠다. 가끔씩 프론트엔드 측에서 코드만 수정했을 때 테스트를 수정해 주지 않아서 테스트 CI가 깨지는 일이 몇 번 있었는데 오히려 번거롭다는 생각이 들 때도 있었던 것 같다.그런데 이번에 강의를 들으면서 프론트엔드에서도 테스트 코드가 필요하다 는 생각이 강하게 들었다. 어떠한 이유들로 테스트 코드의 필요성에 대해 느끼게 되었는지 이번 글..
벌써 2025년의 마지막 달이 지나가고, 한 해가 끝나가는 시점이 왔다. 늘 했던 것처럼 올해도 연간 회고를 작성해 보고자 한다.나는 2018년부터 매년 한 해가 끝나는 시점에 연말 회고를 쓰고 있다. 특별한 일이 없다면 앞으로도 계속 이렇게 연말 회고는 써 볼 생각이다 ㅎㅎAdios 2024Adios 2023Adios 2022 Part 1. / Part 2.Adios 2021Adios 2020Adios 2019Adios 2018올해는 다음의 9가지의 키워드를 중심으로 한 해를 정리해 보고자 한다.회사관계러닝(마라톤&트레일러닝)교회재테크독서라이프스타일모임자기 계발1. 회사오버데어나는 작년에 오버데어라는 게임 플랫폼을 만드는 크래프톤의 독립 스튜디오로 이직했다. 올 한 해 이 회사를 계속 다니면서, 게임 ..
원문 : https://blog.val.town/gardening-dependenciesVal Town은 엄청나게 많은 의존성을 가진 리액트 애플리케이션입니다. 복잡하고 항상 의존성 업그레이드를 처리해야 합니다. 이 웹을 과도하게 복잡하게 만드는 중대한 죄를 저지르고 있습니다. 이 글을 쓰는 시점에서 node_modules 디렉토리가 863MB입니다. 휴!그런데 정말 그럴까요? 우리가 기술 부채를 이곳저곳에서 쌓아가며 마음대로 의존성을 설치하고 있는 걸까요? 저는 그렇지 않다고 말하고 싶습니다.사실 우리가 만들려는 것에는 본질적인 복잡성이 있습니다. 직접 타입스크립트 트랜스파일러를 만들거나 CodeMirror 설치를 피하고 코드 편집에 textarea를 사용하지는 않을 것입니다. 저는 매주 조금씩 시간을..
