본문 바로가기

전체 글

(171)
(트러블 슈팅) Next.js 14 에서 TailwindCSS와 Storybook 호환성 이슈 Next.js 14에서 Tailwind와 Storybook을 함께 사용하기 위한 호환성 문제 및 해결 방법(최신 내용으로 업데이트 2024. 8.15)Storybook 최신 버전 8을 tailiwdCSS와 연동하여 사용하는 경우 tailwind가 적용이 안되는 이슈가 있습니다. Storybook 깃 레포의 이슈탭에는 아직도 여전히 처리가 되지 않고 있다. stable release가 3월에 되었지만 최초 버그가 제기된 이후로 여전히 해결이 되지 않고 있어 최신 Storybook에서 사용이 안되고 있습니다. 최근 프로젝트에서 Next.js 14, Tailwind CSS와 Storybook을 결합하여 디자인 시스템을 구축하려는 시도를 했습니다. 그러나 Storybook의 최신 버전(8.x)을 사용했을 때 T..
회사 프로젝트 후기 - (8) Storybook 과 TailwindCSS 디자인 시스템 구축 최근 개발팀의 인원이 증가하고, 버전 관리가 복잡해짐에 따라 프론트엔드 개발에서 공통적인 요소를 사전에 정의하고 활용하는 필요성이 더욱 커졌습니다. 현재 프론트엔드 개발자는 총 5명, 백엔드 개발자는 3명으로 구성되어 있으며, 여러 버전을 동시에 개발해야 하는 상황에서 효율적인 협업과 일관성 유지가 중요한 과제로 대두되었습니다. 이러한 필요성을 해결하기 위해 디자인팀과의 협의를 통해 디자인 시스템을 도입하기로 결정했습니다. 처음에는 디자인 시스템에 디자인 토큰 개념까지 적용해 프로젝트에 사용하고자 했으나, 초기 도입 시점에서는 예상보다 큰 실익을 얻지 못한다고 판단했습니다. 대신 TailwindCSS를 기반으로 한 Storybook을 설정하여 가장 작은 단위의 요소를 공통으로 정의하고, 점진적으로 디자인..
회사 프로젝트 후기 - (7) 구강 카메라 스트림 상태 체크로 사용자 경험 개선 현재 재직 중인 회사는 바이오 형광 이미징 기술을 활용한 구강 카메라를 생산하며, 이를 치과 병·의원 등을 대상으로 판매하는 기업입니다.  개발 중인 웹 기반 구강 건강 관리 플랫폼인 **링크덴스(Linkdens)**는 치아 사진 촬영, 치아 건강 분석, 진료 이력 확인, 환자에게 진료 정보를 전송할 수 있는 클라우드 기반 서비스형 소프트웨어(SaaS)입니다.  (참고자료 : LINKDENS&캠프로 사용법 안내 영상) 링크덴스는 구강 카메라의 미국 시장 진출을 위해 미국판 버전을 준비하고 있습니다. 이 과정에서 개발팀은 기존 제품의 몇 가지 핵심적인 문제점을 개선하고자 했습니다. 특히 카메라 연결이 끊어질 때 발생하는 사용자 경험의 저하 문제는 긴급하게 해결해야 할 과제였습니다. 1. 문제의 본질 구강 ..
[React] 전역 상태 공유 : React Context API 심층 분석 (핵심 요약) React Context API 종합 평가SPA(Single Page Application) 개발에서 props drilling을 피하고 전역 상태를 관리하는 것은 중요한 과제입니다. 다양한 상태 관리 라이브러리들이 존재하는 가운데, 저는 Redux Toolkit, Zustand, Recoil, Reactive Variable 등 여러 상태 관리 도구들을 사용해본 경험을 토대로 Context API가 특히 단순하고 직관적인 상태 공유가 필요한 경우 매우 효과적임을 확인했습니다. Context API는 복잡한 store 기반 상태 관리에서 벗어나, 모듈화된 컴포넌트들 간에 상태를 쉽게 공유할 수 있는 점에서 큰 장점이 있습니다. 특히, 특정 기능을 수행하는 컴포넌트 그룹을 하나의 Contex..
회사 프로젝트 후기 - (6) createSlice, useDispatch로 상태관리 한번 더 최적화 앞선 프로젝트 회고에서 useState를 useReducer로 최적화하는 방법에 대하여 살펴보았습니다. "회사 프로젝트 후기 - (5) useReducer로 상태관리 최적화" 회사 프로젝트 후기 - (5) useReducer로 상태관리 최적화 5월부터 참여하고 있는 프로젝트는 S 보험사에 납품되는 C/S Application의 커스터마이징 작업을 수행하는 프로젝트입니다. 그러나 어제 대상포진 발생으로 인해 긴급 휴가를 내야 했습니다. 오늘은 jobcoding.tistory.com 앞선 글에서 언급된 방법은 몇 가지 문제점을 가지고 있습니다. 첫째로, 리듀서 함수와 액션 생성자 함수를 개별적으로 관리해야 합니다. 이는 코드를 여러 곳에 분산시켜 유지보수를 어렵게 만들 수 있습니다. 둘째로, 액션 함수를 사..
회사 프로젝트 후기 - (5) useReducer로 상태관리 최적화 5월부터 참여하고 있는 프로젝트는 S 보험사에 납품되는 C/S Application의 커스터마이징 작업을 수행하는 프로젝트입니다. 그러나 어제 대상포진 발생으로 인해 긴급 휴가를 내야 했습니다. 오늘은 휴가를 내고 병원에 가서 치료를 받으며, 일보의 후퇴의 마음으로 이번 기회에 '계약서 관리 시스템' 프로젝트 코드를 회고하는 시간을 가지려고 합니다. 저는 지금까지의 저의 블로그를 통해 '계약서 관리 시스템' 의 프론트엔드 개발자로서 사용성 관점에서 UI 개선 작업에 대한 회고를 작성했습니다. 이번에는 코드적인 리뷰를 통해 개선해본 사항들을 정리하고자 합니다. 특히, 이번 주제에서는 useReducer를 활용한 깔끔한 상태 관리 방법에 대해 다루어 보려고 합니다. 이는 계속해서 하게 될 프로젝트의 효율성을..
회사 프로젝트 후기 - (4) 사용성 관점에서 UI_검색 근황 지난 주에는 고객사로부터 추가 개발 요구사항을 접수하여 작업을 진행하고 완료하였습니다. 해당 요구사항에 대한 개발 결과를 문서화하여 요약된 보고서를 작성하고 이를 이해 관계자들과 공유하였습니다. 현재 저희 회사는 상장을 위해 C/S 기반의 자바 솔루션인 캐시카우 영역에 주력을 하고 있어 웹 개발에 집중하는 것이 일시적으로 어려운 상황입니다. 그러나 제가 프론트엔드 개발자로서 기술적으로 기여할 수 있는 부분에 최선을 다하고 있습니다. 평소에 사용성과 비즈니스 가치를 중요시하는 프론트엔드 개발자로서의 자세를 가지고 일하고 있습니다. 아직까지는 특정한 도메인에 종속되지 않고 다양한 웹 프론트엔드 개발 역량을 키우고자 하며, 사용자 인터페이스 개발, 사용자 경험 개선, 웹 성능 최적화, 반응형 디자인, 협..
회사 프로젝트 후기 - (3) 사용성 관점에서 UI_계약서(추가) 지난 2월에 이직하여 웹 서비스 팀에서 "계약서 관리 시스템" 프로젝트에 프론트엔드 개발자로 참여하게 되었습니다. 이 프로젝트는 React와 Node.js를 기반으로 개발되었으며, 서명이 날인된 계약서를 전자적으로 관리하는 시스템입니다. PDF 파일의 계약서를 시스템에 업로드하면 OCR 기술을 이용하여 계약서의 텍스트를 추출하고, 검색 엔진을 추가하여 문서명과 본문 검색이 가능합니다. 또한, 등록된 계약서의 계약일, 계약 기간, 결제일 등과 같은 중요한 일정을 캘린더로 제공합니다. 현재 새롭게 시작된 새로운 프로젝트에 참여하고 있지만, 지난 프로젝트 '계약서 관리 시스템'을 만들기 위해 보낸 그간의 시간들을 정리하고 프로젝트를 회고하는 기간을 개인적으로 가지고 있습니다. 다소간의 주절거림이 있을 수 있지..