[주차의 민족] SDD로 진행해본 MVP개발
·
프로젝트/주차의 민족
우리 팀의 2주 차 목표는 명확했다.AI를 적극적으로 활용해 MVP를 빠르게 만들고, 우리가 세운 가설을 실제 사용자에게 검증해 보는 것이었다.마침 레벨 3 마지막 주 테코톡 발표가 내 차례였다. 어떤 주제를 이야기할지 고민하다가 SDD, 즉 스펙 주도 개발을 선택했다.AI를 활용한 개발이 자연스러워진 지금, 개발자가 무엇을 준비해야 AI가 제대로 일할 수 있는지 이야기해보고 싶었다.다만 마음에 걸리는 점이 하나 있었다. 실제로 적용해보지도 않은 개발 방식을 발표하는 건 어딘가 껄끄러웠다.문서에서 읽은 내용을 정리하는 것과 직접 부딪혀본 경험을 이야기하는 것은 다르기 때문이다.그래서 이번 MVP 개발에 SDD를 직접 적용해보기로 했다. 내가 해온 AI 코딩의 문제 내가 처음 AI에게 코드를 맡긴 것은 우..
[주차의 민족] 프론트엔드 개발환경 세팅
·
프로젝트/주차의 민족
우테코의 꽃, 팀 프로젝트가 시작되었다.내가 합류한 팀 프로젝트의 이름은 ‘주차의 민족’이다.플젝에 관한 글은 추후에 자세히 다룰 예정이다. 첫 주에 맡은 과업은 프론트엔드 개발 환경을 세팅하는 일이었다.React와 TypeScript를 설치하고, 실행 명령어 몇 개를 추가하면 끝나는 일이라고 생각했다.그런데 제약 사항으로 Vite나 Next.js를 사용할 수 없었고, Webpack 기반으로 환경 세팅을 해야 했다. 그리고 이 개발 환경 세팅에 대해서 새로 합류한 팀원에게 보여줄 수 있는 기술 요구사항 문서를 작성해야 한다.단순히 내 컴퓨터에서 화면을 띄우는 것만으로는 부족했다.새로운 팀원이 프로젝트를 내려받아 같은 버전의 패키지를 설치하고, 같은 명령으로 개발 서버를 실행하고, 같은 기준으로 코드를 검..
[TypeScript] 타입 확장
·
프론트엔드/Language
우테코는 정말 이상적인 환경이다.때와 장소를 가리지 않고 누군가가 개발에 대한 대화거리를 던지면 2명이서 시작한 대화에서 점점 거대한 토론의 장이 펼쳐진다.레벨 3을 시작하고 나서 다들 본인 아이디어 검증과 팀빌딩 때문에 코드를 안친 지 오래된 상태였다.그러다 팀빌딩이 어느정도 마무리된 이번 주 금요일, 어김없이 작은 강의실에서 프론트엔드 크루들이 타입스크립트의 타입 확장에 대해 이야기를 나누고 있었다.무슨 대화를 하고 있었을까? `interface A extends B`라면 B는 A의 부모집합이어야 한다.여기서 부모집합은 속성 기준이 아니라 값 기준으로 판단해야 한다.그런데 다음과 같은 상황이라면 어떻게 해야 할까.interface A { age: number; // ... 그 외 수많은 속성} A..
[회고] 레벨 3 시작 - 두 개의 프로토타입을 만들며 배운 가설 검증
·
회고
들어가며 레벨 2가 끝나고 2주간의 방학도 순식간에 지나갔다.그래도 이번 방학은 나름 알차게 보낸 것 같다.TanStack Query 써보기레벨 2 미션에 컴포넌트 합성 적용해보기레벨 2 미션에 합성 컴포넌트 패턴 적용해보기fe-sprint 챌린지완벽하게 내 것으로 만들지는 못했다. 그래도 레벨 2에서는 무섭게만 느껴져 시도하지 못했던 것들을 직접 사용해봤다.한 번이라도 부딪혀보니 막연한 두려움이 줄었다.스스로의 허들을 낮췄다는 점에서 좋은 학습이었다. 그렇게 레벨 3에 들어왔다.드디어 팀 프로젝트를 시작한다고 생각했는데, 웬걸 바로 팀을 정하는 것이 아니었다.약 3주 동안 각자 자신의 아이디어로 프로토타입을 만들고, 가설을 세우고, 실제 사용자를 모아 검증해야 했다.이후 검증한 아이디어를 바탕으로 팀을..
fe-sprint 4일차 (재귀 컴포넌트)
·
프론트엔드/fe-sprint
Day목표1일차 Modal 기본형 (Portal, ESC/배경클릭, open/close)2일차 Modal 합성 패턴(Root/Trigger/Content) + Dropdown3일차 Toast 큐 + setTimeout 자동닫힘4일차 재귀 트리, props drilling 체감 → Context 리팩토링5일차 전체 제네릭 리팩토링6일차전체 회고 및 복기 오늘 목표는 재귀 트리였다.처음엔 재귀 컴포넌트를 어디에 쓰는지 전혀 와닿지 않았다.대표적인 예로 댓글/답글, 폴더 구조가 있는데, 먼저 댓글/답글은 보통 서비스들은 답글 깊이가 한 단계이다.재귀를 쓴다는 것은 깊이를 알 수 없을 때 써야한다는 생각이 있었기에 댓글/답글 예시는 전혀 공감이 되질 않았다.그리고 폴더 구조는 웹 서비스를 만들고자하는 내게 그..
fe-sprint 3일차 (Toast)
·
프론트엔드/fe-sprint
Day목표1일차 Modal 기본형 (Portal, ESC/배경클릭, open/close)2일차 Modal 합성 패턴(Root/Trigger/Content) + Dropdown3일차 Toast 큐 + setTimeout 자동닫힘4일차 재귀 트리, props drilling 체감 → Context 리팩토링5일차 전체 제네릭 리팩토링6일차전체 회고 및 복기 오늘 목표는 Toast였다.여러 개 쌓이고, 일정 시간 지나면 자동으로 사라지고, 언마운트되면 타이머도 같이 정리되는 Toast를 구현해보았다.라이브러리 없이 직접 짜기로 했다.react-toastify 의 존재를 알았지만, 내 목적은 TS기본기와 ContextAPI, Portal 에 익숙해지는 것이기 때문이다. 첫 번째 막힘 - Modal과 Toast의 ..