본문 바로가기

All203

패키지 개발 시 CSS 번들링 적용 방법: vite와 exports field를 곁들인 들어가면서 React 기반 컴포넌트를 개발하고, Vite를 이용한 번들링하는 환경에서 별도의 패키지를 만들었다. 이 글에서는 TodoList 컴포넌트 패키지를 예시로 들어 설명한다.  하나의 패키지에서 개발된 컴포넌트처럼 해당 패키지가 다음과 같이 사용할 수 있도록 구성하는 것이 목표였다.import { Todolist } from "@test/todolist" 그러나 기대했던 바와 달리, 해당 컴포넌트를 import한 부분에서 CSS가 제대로 적용되지 않았다. dist 폴더를 확인해보았을 때, index.css가 정상적으로 빌드되어 있었고패키지를 별도로 실행했을 때, 네트워크 탭에서 index.css가 로드되고 제대로 CSS가 적용되는 것도 확인할 수 있었다.  이를 해결하기 위한 실험해 본 여러가지 .. 2025. 3. 11.
[Typescript] 상황별 tsconfig.json 설정하기 들어가면서Typescript를 사용하는 프로젝트에서 가장 중요한 부분 중 하나는 tsconfig.json 설정이다. 새로운 프로젝트를 0부터 시작하거나, 기존 템플릿(Scaffolded Project)에서 시작하는 경우에 tsconfig.json을 세세히 다루지 않는 경우가 많다. 하지만 프로젝트가 커질수록, 프로젝트 성격에 맞게 tsconfig.json을 구성하는 것이 중요하다.  이번 글에서는 각 패키지나 프로젝트의 특성에 맞게 tsconfig.json을 작성한 예시와 경험에 따라 설정을 정리해보고자 한다.1. 상황별 tsconfig.json 구분하기먼저, 상황별 tsconfig.json부터 살펴보자. Typescript 프로젝트를 설정할 때, 어떤 환경에서 실행될 것인지에 따라 tsconfig.js.. 2025. 3. 2.
[기록결산] 대범하게 살았는가 '대범하게'라는 워딩 자체에서부터 어느 정도 어그로를 끌만한 제목인 것 같아 민망하지만이 글은 전혀 거창할 것 없는 미루고 미룬 기록의 편린이다. 연말이 다가오면서 스스로 올해 ‘대범하게’ 살았는가에 대해 반추해보았을 때 계속 그렇지 않다라는 결론을 내렸다. 살면서 기억남을 대범한 일을 몇 번이나 하겠냐만. 깊이 애정하는 친구들과 마지막 24년 모임에서 각자 편지를 써주는 시간을 가지고, 편지를 주고 받았다. 한 친구의 편지 안에는 인간 cdb과 대범이를 분리할 필요가 있다는 말이 담겨있었다. 이리저리 힘들어하던 나를 위로해주는 깊은 뜻이 담긴걸 나는 안다. 그런데 이 문장으로 위로도 되었지만 조금 명쾌해졌다. 자의타의로 '대범'으로 살았던 2024년은 온전히 ‘나’로써 살았으니 ‘대범하게’ 살았다고 볼.. 2025. 1. 31.
오픈소스에 기여하며 얻은 보람과 사람 - OSSCA Yorkie 목차0. 오픈소스에 기여하게 된 계기1. 이런 걸로도 오픈소스에 기여할 수 있다고?2. 기여는 개발자의 불편한 부분에서부터 시작된다.3. 유저로서 고쳐지길 원하는 부분을 기여하다. 4. 기여를 통해 제대로 알게 된 개념들5. 기여를 하여 얻은 것은 바로 보람과 사람 0. 오픈소스에 기여하게 된 계기필자의 첫 오픈소스 기여에 대해 회고하는 마음으로 작성해본다. 개발자라면 한 번쯤은 오픈소스에 기여해보고 싶은 마음이 있을 것이다. 오픈소스를 통해 개발 생태계 자체가 건강하게 발전한 점에서 ‘나도 기여해보고 싶다!’라는 생각을 가지고 있었고 마침 오픈소스 컨트리뷰션 아카데미(OSSCA)가 진행된다는 얘기를 들었다. OSSCA 참여 프로젝트는 Apache Zeppelin, ArgoCD, Node.js 등등이 있.. 2024. 12. 22.
[Vite] Vite는 어떤 역할을 하고 있는가 [Vite] Vite는 어떤 역할을 하고 있는가Vite를 사용하면서 잘 알지 못하고 사용하는 것 같아 한 번 정리하고자 글을 작성한다.공식 홈페이지에 따르면 ‘Next Generation Frontend Tooling’ 이라고 소개한다.Vite는 웹 개발에서 개발 서버와 번들링을 모두 처리하는 현대적인 빌드 도구로 설계되었다. Vite의 기능 1 : 개발 서버 & HMR(Hot Module Replacement)프론트엔드 개발자로서 Vite의 가장 체감되는 기능은 단연코 개발 서버 지원 및 HMR 이다. Vite의 핵심적인 기능인 "개발 서버"의 서버 시작 시간을 어떻게 개선했는지에 대한 공식 문서의 설명을 정리해보았다. Vite는 애플리케이션의 모듈을 Dependencies와 Source code 두 .. 2024. 10. 27.
[기록결산][글또] 회고를 곁들인 다짐글 글또 10기를 시작하며 글또는 '글쓰는 개발자 모임'으로 마지막 10기에 참여하게 되었다.글또를 시작하며 회고를 곁들인 다짐글을 써본다. 나의 첫 번째 글또이자 마지막 글또이기에 조금 더 애살있게 활동하고자 한다.  먼저 크게 큰 범주로 이루고자 하는 다짐은 딱 두 가지이다.  첫 번째는 글또 10기를 하면서 배운 것들을 내 문장으로 적는게 목표이다.  개발자로서 일을 하면서 마주했던 어려움들이 결국엔 나의 기술적 자양분이 되었다.일을 진행하면서 알게 된 지식들이 많지만 따로 기록하지 않으면 모두 내 것이 되진 않아 따로 찾아보는 경우가 종종 있다. 깊게 고민한 흔적을 잘 정리해보는 경험을 하고 싶다. 어쩌면 당연한 것인지만 기술적으로 배운 것들을 설명하지 못한다면 알고 있는게 아닐 것이다.예를 들어, .. 2024. 10. 13.
[DX] husky 적용 - 하나의 레포에 frontend와 backend 코드가 함께 있는 경우 들어가면서오픈소스에 처음 기여를 하면서 PR을 올렸는데 CI가 통과하지 못해 fail이 떠버렸다. 무슨 실수라도 한거 아닌가 하여 떨리는 마음으로 확인해보니 lint와 format을 적용하지 않고 올려서 문제가 되었다. 나중에 다른 PR도 확인해보니 다들 npm run format을 한 번씩 다시 한게 보여 commit 혹은 push 실행 전에 lint와 format을 자동으로 적용하도록 husky를 적용해야겠다고 생각했다. 그 과정에서 알게 된 것을 정리하였다.git hooks과 huskygit hooks 란?git hooks는 git에서 발생하는 특정 이벤트(ex.commit, push)에 자동으로 실행되는 스크립트이다. git hooks를 사용하면 특정 이벤트가 발생할 때 자동으로 사용자가 지정한 .. 2024. 9. 1.
[기록결산] 내 것으로 만들기 [기록결산] 내 것으로 만들기기록은 중요하다. 하지만, 기록을 잘 정리했는지 혹은 기록으로 인한 지식이 내 것이 되었는지는 더 중요하다. 인간은 망각의 동물로 그 때 당시엔 이해됐던 것들이 지금은 전혀 기억나지 않는 경우도 종종 발생한다. 아래 글은 불가 7개월 전에 작성한 글에서 태도에 대한 부분말고는 기억이 잘 나지 않아 몹시 당황스럽다. (월별기록결산은 실패 ^^) [기록결산] 애쓴 것은 언젠가 정산된다.[기록결산] 애쓴 것은 언젠가 정산된다.생애 첫 연말정산을 끝내고, 1월도 막바지라는 생각에 '기록결산'이란걸 해보려고 한다. 딱 드는 생각은 뭐다? 월말결산을 월마다 해야한다는 뜻이지요 ..bo5mi.tistory.com그래서 내 것으로 만든 것들을 잘 정리해보았다.  pnpm은 performan.. 2024. 8. 11.
[TS|TIP] 회전된 사각형을 내접하는 사각형(BoundingBox) 구하기 회전된 사각형을 내접하는 사각형(BoundingBox) 구하기해당 아이디어를 기억해놓기 위한 기록이다. 아래는 순서대로 BoundingBox를 구하기 위한 함수들이다.가능한 한 함수가 하나의 기능을 하도록 구현하였다.  1. 각도를 라디안(radians)으로 변환하는 함수const toRadians = (angle: number): number => { return (angle * Math.PI) / 180;}; 2. 회전한 사각형의 경계 계산에 사용되는 코사인, 사인 값을 구하는 함수const getCosSin = (radians: number): { cos: number; sin: number } => { return { cos: Math.abs(Math.cos(radians).. 2024. 7. 24.