https://zed.dev/ Zed - Code at the speed of thought Code at the speed of thought. Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. zed.dev zed는 굉장히 빠르다는 것을 강조한 text editor인데 rust로 코어한 엔진을 작성해서 속도를 빠르게 얻을 수 있었다고합니다. 사용해본 결과 확실히 vscode에 비해 쾌적하고 빠릿빠릿한 성능을 보여주지만 사용성이 떨어지는 측면이 많았습니다. 1. git 변경사항이 있는 파일 갯수, 스테이징된 파일을 볼 gui가 업슴 2. 사용자 정의 snippet이 지원되지않음 3. e..
👱♂️간헐적 회고 나오늘 뭐했냐 최근에는 책을 많이 읽고 있다. 제법 머리가 크면서 관심사도 자연스럽게 변하게 되었는데 현재 내가 가장 관심있게 보는 키워드들은 다음과 같다. 1. 모노레포 2. 마이크로프론트엔드 3. 클린아키텍처 4. 도커 , AWS 등 인프라 5. 앱 개발 환경 6. DDD 이전에는 클린코드, 리팩토링과 같이 한줄 한줄의 코드를 깔끔하고 좋은 구조로 짜기 위한 지식에 관심이 갔다면 지금은 좀 더 큰 그림을 보는 것과 / 엔터프라이즈 레벨의 애플리케이션이 만나는 문제를 해결하기 위한 솔루션들 에 관심이 더 많이 가는 것 같다. 또 그것과 동시에 1인 개발자가 수익을 내려면 앱 개발도 할 줄 아는게 무조건 유리할 거란 생각이 들어서 앱개발도 조금씩 조금씩 찍먹 중이다. 리액트 네이티브를..
아 ~ 어디 "1"부터 원하는 숫자를 다 유니온으로 만들어주는 타입 어디없나~? type NumberToString = R['length'] extends N ? never : `${R['length']}` | NumberToString; type ExcludeNumbers = End extends ExcludeFrom ? never : End; export type NumberString = ExcludeNumbers; 이게 되네.. 타..
제목은 간단했던인데요.. 사실 문제가 발생하고 난 뒤로 한 한달동안 해결을 못하다가 그냥 우아하게 해결하기는 포기하고 무식하게 해결해봤습니다. 문제 상황을 이해하는게 조금 어려웠는데 제 모노레포 프로젝트의 구조는 다음과 같습니다. root에 jest.config.js 와 jest.setup.js가 있는 구조인데 빌드 문제로 인해 각 하위 패키지들도 tsconfig.json을 가지고있습니다. 만약 하위 패키지에 tsconfig.json이 없다면 jest.setup.js를 적절히 탐색해서 타입에러없이 잘 수행하는데.. 그렇다고해서 tsconfig.json을 없애면 빌드 결과물이 터져나갑니다. 결국 jest.setup.js를 임포트하지못하는게 문제이니 조금 덜우아하더라도 import { render, rend..
원래는 react-native cli를 통해 개발해보려고했는데 사내에서 expo를 이용하고 계신 개발자분의 말씀을 들어보니 1,2년전만해도 expo는 네이티브 기능에 제약사항이 있어서 eject 하는 경우가 많았지만 최근에는 많이 개선되어서 expo를 사용하는 것을 더 추천하시더라구요 그래서 저도 expo로 갈아타보았읍니다. 초기 세팅이 조금 혼란해서 좀 헤맸지만 헤맨김에 정리를 좀 해볼게요 https://docs.expo.dev 내용은 위 expo 문서에서 참고하였습니다. 시간이 지남에 따라 아래 포스트는 outdated 될 확률이 있으니 웬만하면 공식문서를 추천드립니다. npx create-expo-app -t 프론트 개발자라면 익숙할 명령어인데 create 뒤가 expo로 바뀔 뿐입니다. 옵션을 통..
클린아키텍처 프론트엔드에 무슨 비즈니스로직이 있어? 라는 관점도 존재하지만 제가 막상 코드를 짜다보면 프론트엔드에도 비즈니스로직이라고 부를만한 것들이 존재하곤 했고 그런 로직들과 UI를 담당하는 로직들이 뒤섞이게 되면 관리를 하는게 지옥이 되는 경험도 했습니다. 자연스럽게 비즈니스로직 정도는 분리하자. 정도로 생각하면서 코드를 짜왔었는데 좀 더 본격적으로 클린아키텍처를 다룬 레포지토리가 있어서 흥미롭게 코딩을 해봤습니다. https://github.com/XionWCFM/xion-study GitHub - XionWCFM/xion-study Contribute to XionWCFM/xion-study development by creating an account on GitHub. github.com 결..
성공팔이 인스타 릴스를 보다보면 흔히 그런 계정들을 만나게 되곤 한다. 개인적으로 "성공팔이"라고 부르는 류의 계정인데 대체로 어린나이에 경제적 자유를 이루었다고 주장하거나 그게 아니라면 "어린나이지만 열심히해서 경제적 자유를 이루겠다. 그래서 나는 이러이러한 일을 하고있다." 와 같은 류의 영상을 올리는 사람들이다. 정말 열심히 사는 사람이라면 "나 열심히 살아요 멋지죠?" 라는 메시지밖에 담기지 않은 영상을 찍는 시간도 없을 것이며 그런 영상을 찍을 시간 자체를 아까워 할 것이라고 생각하지만 (물론 나의 개인적인 생각이다.) 말이 가지고 있는 힘이 존재한다는 생각도 같이 들었다. 그래서 나는 그들의 "나 열심히 살아요 멋지죠?"에는 냉소적이지만 "나는 ~~를 할거야" 와 같이 목표를 되뇌이고 이야기하..
😙 HighOrderComponent란? 고차 컴포넌트란 컴포넌트 로직을 재사용하기 위한 기술입니다. 리액트 문서의 정의에 따르면 고차 컴포넌트는 "컴포넌트를 가져와 새 컴포넌트를 반환하는 함수" 라고 해요 const EnhancedComponent = higherOrderComponent(WrappedComponent); 예제를 보면 다음과 같은데 구조만 보면 꽤나 익숙합니다. React에서 제공하는 forwardRef , memo와 같은 함수들의 사용형태와 같은데 redux의 connect 함수도 생각이 나네요 😇 횡단 관심사(cross cutting concerns) 이러한 고차컴포넌트 패턴은 리액트에서 횡단관심사를 통하여 로직을 바라볼 수 있게 도와줍니다. 이전에는 mixin을 사용하여 구현하였으..