전체 글 썸네일형 리스트형 엑셀 기반 상품 대량 등록/수정 기능 개발기(+ zod 런타임 유효성 검사) 도입 배경영업결과 중 하나로 야채 가게는 싯가를 반영하여 상품 가격을 매일 변경해야 하는 특성이 있다. 기존에는 상품 상세 페이지에 일일이 접근하여 가격을 수정해야 했고, 이는 상당한 시간과 노력이 소요되는 작업이라 판단하였다.예상 사용자들이 엑셀 작업에 익숙하다는 점을 고려했을 때, 엑셀 파일을 통한 대량 수정 기능을 제공한다면 업무 효율을 크게 개선할 수 있고, 청과상 같이 가격 변동이 잦은 업종에 종사하는 영업대상자들에게 세일즈 포인트중 하나로 작용할 수 있다고 판단하였다.사용자 플로우1. 신규 상품 등록시엑셀 양식 다운로드양식에 맞게 상품 데이터 작성엑셀 파일 업로드유효성 검사 후 상품 대량 등록2. 기존 상품 일괄 수정시엑셀 양식 다운로드 (기존 상품 데이터 포함)수정할 정보 변경엑셀 파일 업로.. 더보기 tailwind CSS를 이용한 디자인 파운데이션 구축하기(color palette, typography) 배경현재 팀내에선 qr/nfc오더를 개발하는 과정에 있었는데 현 회사에서 처음 참여하게된 B2C개발이였다.B2B서비스와는 다르게 일관된 디자인적 요소를 제공하는것이 중요하다고 판단하여 디자인 시스템을 전부다 구성할 수 있으면 좋겠지만, 일정상 디자인과 개발을 함께 진행해야 하는 상황에서 가장 기초가되는 파운데이션만큼이라도 가져가자고했다.tailwindCSS를 선택하게된이유tailwindCss는 utility-first CSS framework로, 제공하는 config파일을통해 color palette이나, typography를 쉽게 정의가 가능하고, 일관된 방식으로 css를 작성할 수 있다는점이 좋다고 생각했다.물론 다른 css-in-js방식또한 변수로써 관리를 할 수 있지만, tailwindCSS를 사.. 더보기 webpack module federtaion을 활용한 Micro Frontend도입(사장님앱) 도입배경사장님앱 어플리케이션은 식당 테이블에 놓인 태블릿에 노출되는 메뉴와 분류에 대한 정보를 확인하고 수정하는 기능과 식당에 줄을 서는 대기줄을 관리하는 기능을 사장님에게 제공하는 관리자용 어플리케이션이다. (메뉴관리, 대기관리로 구분지어 명칭)생각해봤을때 두개의 기능은 독립적인 기능으로, 대기관리페이지에 오류가 발생하여도 메뉴관리기능을 사용할 수 있어야하고 그반대도 마찬가지다. 배포관점에서 봤을때도 독립된 두 서비스는 독립적으로 배포가되어야 배포시 발생할 수 있는 문제를 최소화 할 수 있을것이라 판단하였다.목표1. 독립적인 두 애플리케이션은 분리되어 관리되어야한다.2. 독립적인 두 애플리케이션은 배포과정에 있어 서로에게 독립적이여야한다.마이크로 프론트엔드(Micro Frontend) 독립적으로 제공 .. 더보기 iframe을 활용한 Micro Frontend도입(사내 어드민) 도입 배경어드민을 사용하는 입장(서비스개발 조직 외)서비스개발조직에서 서비스마다 어드민을 개발하게 되면 어드민 사용성에서 효율이 떨어짐ex) 특정 업무를 위해 두 개의 어드민 브라우저를 띄워놓아야 하는 상황 발생 -> 한 곳에서 필요한 정보를 모두 보여준다면, 업무효율성이 높아질 것사용자는 각자 업무에 맞는 어드민 콘텐츠만 활용할 것으로 예상ex) 웨이팅서비스 고객응대를 담당하는 조직이 태블릿오더서비스의 어드민페이지를 볼필요는 없다.ex) 테블릿오더서비스의 콘텐츠를 배포하는 과정에서 오류가 발생하여 로그인이 불가능하다면 웨이팅 서비스담당자는 고객응대가 불가능해진다.ex) 어드민 학습 비용이 늘어난다.(어떤 위치에 어떤 콘텐츠가 있는지 인지하는 과정 등등)어드민을 개발하는 입장(서비스개발 조직)특정서비스조.. 더보기 api개발시 프론트엔드 <->백엔드의 독립적인 개발,소통일원화를위한 - api 솔루션 도입기(apidog) 배경지금까지의 개발프레스는 다음과 같다notion으로 백엔드와 프론드가 api명세를 정의개발진행프론트엔드: msw등 자체 mocking 환경 구성백엔드: Postman으로 api개발 후 swagger에 배포개발 url에서 정상동작 확인배포여기서 겪었던 문제점으로개발과정에서 api명세가 수정되었을 때 특정 툴에만 수정사항이 반영됨동일한 작업을 내가아닌 다른 동료가 해야하는 상황이 발생하였을때 명세가 수정되어있지않음결국 개발서버에서 테스트를 할 때까지 모르다가 확인 후 수정하여 다시 배포하는 번거로움이 발생구두로 소통 후 각자의 개발환경에서만 수정하고 개발을 진행하게 됨시간이 지나면서 개개인마다 주로 참고하는 툴들이 달라짐개발팀 내 일관성이 떨어져 불필요한 소통비용이 발생함notion 같은 경우 정해진 양식.. 더보기 AngularJS Git Commit Message Conventions을 활용한 커밋 메시지 작성법( + react) 배경vsCode를 통해 작업을 진행하면서 평소와같이 커밋을 하려는데 메세지 입력이 50자로 제한되어있는것을 확인하게되었다.단순히 커밋을 작은단위로 유지시키기위해 vsCode에서 강제한 것인가? 라는 생각과함께 메세지 구조에대해 궁금증을 갖게되어 찾아보니 the AngularJS commit conventions 라는 문서를 기반으로 많이 작성하는것을 알게되었다. 다음과같은 말을 많이들어봤을텐데좋은 커밋 메세지를 작성하자작은단위로 커밋 메세지를 구성하자1. 커밋 메세지를 잘 작성하자여기서 ‘좋은’이 의미하는 바가 무엇일까?협업과 관련이 있을것같은데 우리는 혼자가 아닌 다른동료들(혹은 미래의나)과 함께 작업을 하기때문에 결국 다른사람이 내가 작성한 커밋 메세지를 보고 어떤 작업을 진행했는지 이해하기쉽게 작성.. 더보기 [troubleShooting] flutter inappwebview - 안드로이드, ios환경에따라 뒤로가기, 스와이프 제어하기 flutter inappwebview환경에서 특정상황(ex. 웹에서 모달이 열였을 때, 홈화면일 때 등등)에서 ios의 뒤로 가기 스와이프를 막는 설정에 대해서 알아보자 우선 최초 버그내용으로는 다음과같았다 "모달을 띄운 후 페이지를 뒤로 갔을 때 모달이 그대로 유지됩니다" 이는 확인해 본 결과 모달을 전역적으로 유지하고 있었기 때문에 발생한 문제였고, 모달을 해당 페이지컴포넌트 내부로 이동하여 페이지가 원마운트될 때 자연스럽게 사라지도록 하여 버그를 해결했었다 근데 문제는 추가 구현사항이었다 1. android: 모달이 열려있을 때 디바이스의 뒤로가기에해당하는 물리버튼을 눌렀을때 모달 닫힘 2. ios: 모달이 열려있을때 스와이프 제스처 막기 처음봤을 땐 둘중 하나의 요구사항을 충족하면 나머지하나는 자.. 더보기 frontend 모노레포 구성하기 모노레포를 설명하기 전에 workspace의 개념에 대해서 알고 가자 yarn에서 잘 정의되어 있는 것 같아 가져와보면 Workspaces are the name of individual packages that are part of the same project and that Yarn will install and link together to simplify cross-references. -> 즉, workspace란 하나의 프로젝트를 구성하는 여러 패키지들 중 하나의 단위를 의미한다고 한다 (패키지 === workspace) 그렇다면 모노레포구조를 왜 사용해야 할까? 1. 각각의 서비스들이 독립적인 레포로 관리되다 보면 유지보수가 힘들어짐 특정 라이브러리 업데이트, 컨벤션 변경과 같은 상황이 발.. 더보기 이전 1 2 3 4 5 다음