최신 글

카테고리 없음

[Frontend] 공통 콘텐츠 모듈 노션으로 정리하기

✨ 소프트웨어 설계에서 기능단위로 분해하고 추상화되어 재사용 및 공유가능한 수준으로 만들어진 단위를 모듈이라고 하고, 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법을 모듈화라고 한다.  문제티니박스 프로젝트 중 진행 기간이 점점 늘어나고, 팀원도 교체되면서 공통 컴포넌트나 함수들이 적절히 사용되지 못하고 있었다. 특히 공통 컴포넌트를 만들어도 문서화가 되지 않아서 한 번 통보 후에 다들 잊어버리기 일수였다.  해결그래서! 새 프로젝트에서는 재사용성을 더 고려하고 조금 더 신중하게 작업해서 문서화 하는 것이 좋겠다고 생각했다.전에 StoryBook에 대해 들은 적이 있어서 해당 기술을 사용하고 싶었으나, 이번엔 React Native라서 사용..

카테고리 없음

[JavaScript] Debouncing

미치 프로젝트 피그마에 올라온 디자인이다.안내 문구를 보면 닉네임 중복 검사 기능이 있다는 걸 알 수 있다. 그런데 중복 검사하는 버튼은? 없다.요즘엔 이렇게 중복 검사, 검색 등 입력하는 값에 따라 즉각 반응하는 UI가 많다(특히 모바일). 그런데 이렇게 하면 언제 사용자가 입력을 끝낼지 모른다!그래서 input 값이 바뀔 때(사용자가 키보드를 누를 때)마다 이벤트 핸들러가 실행되도록 해야 하는데, 그러면 쓸모없는 API 요청이 너무 많이 생기고 서버엔 과부하가 걸릴 수도 있다. 성능, 비용적인 측면에서도 좋지 않은 방법이다.   디바운싱(Debouncing)이걸 해결할 수 있는 방법은 "디바운싱(Debouncing)"을 사용하는 것이다.✨ 디바운싱이란,연이어 호출되는 함수들 중 마지막(또는 처음) 함..

카테고리 없음

[React] .env 분기 처리

엘리스 프로젝트를 하면서 서버 API를 요청할 때 Base URL을 직접 넣지 않고 "/api"로 접근하는 것이 좋다는 조언을 들은 적이 있다.이렇게 하면 도메인을 바꾸더라도 코드 변경 없이 서버로 연결되기 때문에 확장성 있는 코드가 된다. 실제로 티니박스 프로젝트에서 main 브랜치는 실서비스 도메인(teenybox.com)으로 배포하고 dev 브랜치는 개발 도메인(dailytopia2.shop)으로 배포하여 두 개의 사이트를 사용하고 있는데, 이때 Base URL을 /api로 두면서 굳이 각 환경마다 URL을 변경해주지 않아도 돼서 유지보수가 편해졌다.   트러블 슈팅근데 문제는... 이렇게 하다 보니 local 환경에서는 localhost:3000/api로 요청이 보내진다는 점!그러다 보니 주석으로..

카테고리 없음

[JavaScript] 이벤트 전파

프로젝트 중 카드 오른쪽 위 케밥 아이콘을 누르면 메뉴가 보이는 기능을 넣어야 했다.그런데 문제. 카드를 누르면 해당 글 상세 페이지로 넘어가게 되어 있는데 아이콘을 눌러도 페이지가 넘어가는 일이 발생했다.대충 이벤트 전파 관련인줄은 알았지만, 정확히 모르고 있어서 이번 기회를 통해 공부했음  이벤트 전파DOM 요소 노드에서 발생한 이벤트는 DOM 트리를 통해 전파된다. 이를 이벤트 전파라고 한다.표준 DOM 이벤트에서 정의한 이벤트 흐름엔 다음 3가지 단계가 있다.1. 캡처링 단계: 이벤트가 하위 요소로 전파2. 타깃 단계: 이벤트가 실제 타깃 요소에 도달3. 버블링 단계: 이벤트가 상위 요소로 전파  보통 어트리뷰트/프로퍼티 방식으로 등록한 이벤트 핸들러는 타겟 단계와 버블링 단계의 이벤트만 실행된다..

카테고리 없음

[CSS] aspect-ratio 비율 조정하기

기존에는 div나 image의 비율을 고정하려면 직접 계산해서 width, height 값을 지정하거나 calc()를 사용했다.하지만 원하는 비율을 쉽게 고정할 수 있는 방법이 있다. aspect-ratio사용법.box { width: 100px; /* 요소 가로길이 지정 */ aspect-ratio: 16 / 9; /* 가로:세로 비율 지정 */}만약 하나의 값만 지정할 경우, 높이를 1의 비율로 간주한다.div 뿐만 아니라 이미지, 테이블 등 모든 엘리먼트에 종횡비 적용이 가능하다.width, height 중 하나의 값을 반드시 지정해야하며, 그게 기준이 된다.위의 예로 width 값을 지정했기 때문에 16 / 9는 가로(16) : 세로(9) 비율이 된다.만약 width 대신 height : 1..

jin-dooly
자라나라 지니지니