전체 글

· 회고
원래는 이 글도 최근 작성했던 회고 템플릿에 맞게 글 제목을 2025년 돌아보기로 하고 글 내용도 월별로 작성하려고 했으나올해는 왜인지 3년 전 회고 방식[2023년을 맞이하면서]처럼 작성하고 싶다.3년 전과 지금의 내 상황이 비슷해서일지도 모르겠다.2025년 이야기전반기올해 들어 즐거운 일요일이라는 모각코 모임을 하나 운영했다.2월 초부터 진행하며 뭐라도 하는 일요일을 보내고 있다.다양한 인사이트를 얻기 위해 일부러 프런트만이 아닌 다양한 개발 직군들을 모았고, 각자 모여서 서로 할 일을 하고 이야기를 나눴다.매주 일요일 오후 2시 ~ 6시에 진행했고, 팀원들이 모임에 매력을 느낄 수 있도록(이탈하지 않도록) 페이지를 구성했다. 모임장으로서는 분위기가 흐트러지지 않도록 가능한 빠지지 않으려 노력했다.당..
· 개발끄적
배경멤버십 서비스를 론칭하기 위해 개발 중이다.멤버십 서비스를 구독하면 한 달 단위의 구독 날짜가 생기는데, 이때 유저에서 보여주는 날짜가 하루 전으로 표시되는 문제가 있었다.api에서 응답하는 날짜의 형식은 ISO 8601으로 내려주고 있다. ex) "2025-10-29T 00:00:00+09:00"문제 상황날짜 데이터의 사용하는 곳은 여러 군데가 있었는데, 흐름은 다음과 같다.백엔드 API → 서버 컴포넌트 (Next.js 서버)백엔드 API → 서버 컴포넌트 → 클라이언트 컴포넌트두 경우 모두 apis.ts에서 받은 응답 데이터를 컴포넌트에서 바로 렌더링 할 수 있도록 변환하는 models.ts 레이어를 거친다.models.ts는 Next.js 서버 환경에서 실행되며, 내부에서 다음과 같이 날짜 데..
ECS는 Container Orchestration을 위한 환경을 제공하는 AWS 서비스이다.k8s처럼 AWS에서 컨테이너 기반 앱들을 자동으로 배포, 관리, 확장, 장애복구를 하고싶다면 AWS ECS를 사용할 수 있다.ECS 구성 요소ECS는 크게 4가지의 키워드가 있다.각 구성요소의 역할이다.구성요소역할비유ClusterECS 전체 환경. 서비스와 태스크들이 배치되는 “인프라 공간”건물Service태스크를 일정 개수로 유지하고, ALB와 연결해 로드밸런싱 관리관리자Task컨테이너 묶음의 실행 단위 (같은 Task Definition 기반으로 여러 개 복제 가능)방Container실제 애플리케이션이 실행되는 프로세스 (이미지 기반)사람계층 구조로 그려보면 이렇다.$ aws ecs list-clusters..
· 개발끄적
사이드 프로젝트를 하면서 suspensive를 적극적으로 써보고 있는데, `mutationOptions`라는걸 발견했다.`mutationOptions`은 tanstack-query에서 useMutation의 파라미터를 미리 선언할 수 있게 제공하는 함수다.tanstack-query의 공식 커뮤니티 라이브러리인 suspensive에서 먼저 도입되고,약 세 달전 tanstack-query에도 병합된 것으로 보인다. GET에서 queryOptions를 사용하는 것처럼 mutation도 같은 스타일로 작성할 수 있어서 좋다.다만 GET은 다양한 query 훅 (useQuery, useSuspenseQuery, useSuspenseQueries...)를 써야 할 때가 많아서 queryOptions가 유용하다는 것..
· 책장
들어가며익스트림 프로그래밍, 줄여서 XP는 컴퓨터공학 전공자라면 소프트웨어 공학 시간에 한 번쯤 흘러가듯이 들어본 키워드일 것이다. 최근 내가 일하는 환경에 3달 전 조직구조를 개편했는데, 그 과정에서 XP의 가치들을 일부 적용했다고 한다. 그런데 나는 XP의 가치나 실천방법을 잘 모르고 있었기에, 임원이 이끄는 대로(또는 그렇게 설계한 대로) 움직일 뿐이었다. 개편 후 2달이 지나고 틈틈이 이 책을 읽으면서 어떤 의도를 가지고 조직 구조를 개편했는지, 또 내가 어떤 자세로 일을 해야 하는지 이해하려고 했다. 또한 조직 구조 개편이라는 피상적인 개념 외에 복잡하게 얽힌 인간관계나 정치, 그리고 비즈니스적 이해관계도 고려하면서 일을 해야 함을 조금씩 느끼고 있다.XP의 목적과 기본 개념애자일 개발 방법론의..
1. 도입글 제목을 보고 가볍게 생각해보면 서버 컴포넌트에서 Zustand 상태를 관리할 수 있다고 생각할 수 있다.하지만 이렇게 하면 데이터 누출과 충돌 문제가 발생할 수 있다.즉 클라이언트에서 사용하던 방식 그대로 서버 컴포넌트에서 store를 사용하면, 서버 메모리가 모든 요청을 공유하게 되어 의도치 않게 데이터가 섞일 수 있다.2. 서버 컴포넌트와 상태의 본질서버 컴포넌트는 요청 단위로 렌더링되므로, 각 요청은 서로 독립적이어야 한다. 상태를 서버 메모리에 유지하면 여러 요청이 같은 상태를 공유하게 되어 사용자 간 데이터가 섞일 수 있다. Zustand는 클라이언트 상태 관리를 위해 설계된 라이브러리이므로, 서버에서 사용할 경우 모든 요청이 같은 메모리를 공유하게 된다. 3. 프론트엔드 개발자가 ..
· 책장
이 책을 읽고 얻고자 하는 것현재 PO가 없는 조직에서 일하고 있다.정확히는 PO가 없는 조직이 잘 돌아가는지에 대한 실험의 실험체로서 일하고 있다.하지만 성공적인 프로덕트를 만들기 위해서는 PO의 역할을 누군가는 해야한다.따라서 우리 조직은 PO의 역할을 직군에 관계없이 이해하고 수행해야한다. 나는 제품 개발로 가는 길목에 아이디에이션을 하며 사업 조직이 겪고있는 문제 상황, 그 상황을 개선할 솔루션을 제안하기 위한 가정과 가설을 정의하고 있다.근데 이게 어렵다.실무진 업무 참관을 하지만 어떤 부분이 힘들어요, 귀찮아요, 이 어드민 기능을 개선해줬으면 좋겠어요. 등의 상황만 보일 뿐이지 얽혀져있는 진짜 문제가 무엇인지는 파악하기 힘들다.또한 그것을 파악하기 위해서 실무진 초대석도 가져봤지만 아직 나는 ..
[추가 정보]Parameter store 환경변수 관리를 쉽게 할 수 있는 툴인 chamber에 이미 같은 기능이 구현되어있다.chamber import를 사용해보자.문제 상황Parameter store는 AWS 콘솔에서 값을 하나씩 업로드하는 방식만 제공한다.프로젝트에서 env를 Parameter store에 보관한다고 할 때, env 양이 많은 경우 번거롭다.심지어 배포 정책에 따라 dev, stag, prod와 같이 여러 환경이 존재한다면 노가다가 더 길어진다.요구 사항.env파일에 적힌 환경변수를 명령어 한번으로 Parameter store에 한번에 업로드 할 수 있다.해결 방안프로젝트 레포의 터미널에서 cli로 업로드를 하면 편할 것 같다.shell 파일을 이용해보자.아래와 같이 실행할 수 있다..
yoxxin
영진 블로그