all category

typescript

혹시 이런 타입 없었나 생각해보신 적 없으신가요?

아 ~ 어디 "1"부터 원하는 숫자를 다 유니온으로 만들어주는 타입 어디없나~? type NumberToString = R['length'] extends N ? never : `${R['length']}` | NumberToString; type ExcludeNumbers = End extends ExcludeFrom ? never : End; export type NumberString = ExcludeNumbers; 이게 되네.. 타..

testcode

간단했던 모노레포 toBeInDocument 이슈 해결

제목은 간단했던인데요.. 사실 문제가 발생하고 난 뒤로 한 한달동안 해결을 못하다가 그냥 우아하게 해결하기는 포기하고 무식하게 해결해봤습니다. 문제 상황을 이해하는게 조금 어려웠는데 제 모노레포 프로젝트의 구조는 다음과 같습니다. root에 jest.config.js 와 jest.setup.js가 있는 구조인데 빌드 문제로 인해 각 하위 패키지들도 tsconfig.json을 가지고있습니다. 만약 하위 패키지에 tsconfig.json이 없다면 jest.setup.js를 적절히 탐색해서 타입에러없이 잘 수행하는데.. 그렇다고해서 tsconfig.json을 없애면 빌드 결과물이 터져나갑니다. 결국 jest.setup.js를 임포트하지못하는게 문제이니 조금 덜우아하더라도 import { render, rend..

frontend

react-native expo router 시작해보기

원래는 react-native cli를 통해 개발해보려고했는데 사내에서 expo를 이용하고 계신 개발자분의 말씀을 들어보니 1,2년전만해도 expo는 네이티브 기능에 제약사항이 있어서 eject 하는 경우가 많았지만 최근에는 많이 개선되어서 expo를 사용하는 것을 더 추천하시더라구요 그래서 저도 expo로 갈아타보았읍니다. 초기 세팅이 조금 혼란해서 좀 헤맸지만 헤맨김에 정리를 좀 해볼게요 https://docs.expo.dev 내용은 위 expo 문서에서 참고하였습니다. 시간이 지남에 따라 아래 포스트는 outdated 될 확률이 있으니 웬만하면 공식문서를 추천드립니다. npx create-expo-app -t 프론트 개발자라면 익숙할 명령어인데 create 뒤가 expo로 바뀔 뿐입니다. 옵션을 통..

frontend

프론트엔드 클린아키텍처

클린아키텍처 프론트엔드에 무슨 비즈니스로직이 있어? 라는 관점도 존재하지만 제가 막상 코드를 짜다보면 프론트엔드에도 비즈니스로직이라고 부를만한 것들이 존재하곤 했고 그런 로직들과 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 결..

talk

좋은 삶의 태도를 유지하기

성공팔이 인스타 릴스를 보다보면 흔히 그런 계정들을 만나게 되곤 한다. 개인적으로 "성공팔이"라고 부르는 류의 계정인데 대체로 어린나이에 경제적 자유를 이루었다고 주장하거나 그게 아니라면 "어린나이지만 열심히해서 경제적 자유를 이루겠다. 그래서 나는 이러이러한 일을 하고있다." 와 같은 류의 영상을 올리는 사람들이다. 정말 열심히 사는 사람이라면 "나 열심히 살아요 멋지죠?" 라는 메시지밖에 담기지 않은 영상을 찍는 시간도 없을 것이며 그런 영상을 찍을 시간 자체를 아까워 할 것이라고 생각하지만 (물론 나의 개인적인 생각이다.) 말이 가지고 있는 힘이 존재한다는 생각도 같이 들었다. 그래서 나는 그들의 "나 열심히 살아요 멋지죠?"에는 냉소적이지만 "나는 ~~를 할거야" 와 같이 목표를 되뇌이고 이야기하..

best

High Order Component 를 아시나요?

😙 HighOrderComponent란? 고차 컴포넌트란 컴포넌트 로직을 재사용하기 위한 기술입니다. 리액트 문서의 정의에 따르면 고차 컴포넌트는 "컴포넌트를 가져와 새 컴포넌트를 반환하는 함수" 라고 해요 const EnhancedComponent = higherOrderComponent(WrappedComponent); 예제를 보면 다음과 같은데 구조만 보면 꽤나 익숙합니다. React에서 제공하는 forwardRef , memo와 같은 함수들의 사용형태와 같은데 redux의 connect 함수도 생각이 나네요 😇 횡단 관심사(cross cutting concerns) 이러한 고차컴포넌트 패턴은 리액트에서 횡단관심사를 통하여 로직을 바라볼 수 있게 도와줍니다. 이전에는 mixin을 사용하여 구현하였으..

년간회고

1년차 주니어 개발자의 2023 회고

커리어리를 보다보니 벌써 2023년에 대한 회고 글들이 몇몇 올라와있더라구요 남들 다하니까 하는 심리도 한스푼 있지만 연말이 많이 바쁠 예정이라 미리 적는게 좋을 것 같습니다. 최근 회사 동료분에게 블로그를 오픈해드렸는데 회고글을 제일 먼저 읽어보시더라구요 사실 저도 다른 사람 블로그 들어가면 회고 먼저 읽어보고 기술글을 읽습니다. 사람 심리가 다 똑같은 것 같네요 개발을 하기전에는 회고라는 개념 자체가 없었는데 또 여기서는 회고라는 말을 참 많이 쓰는 것 같습니다. 회사에서도 한 스프린트를 마무리하면 꼭 회고를 하기도하고요 그냥 일기 쓰는 마음으로 , 혹은 그냥 시켜서 하기는 했지만 어떤 동기로든 기록을 남겨두는 건 좋은 것 같습니다. 2023년의 나는.. 제게 2023년은 개발을 제대로 시작한 첫해라..

frontend

라이브러리 퍼블리시 시 원본 코드도 첨부해야할까?

아무 생각없이.. 그냥 아무생각없이 빌드 결과물이 모이는 dist 폴더와 실제 작업이 들어가는 src 폴더를 함께 배포하고 있었는데 문득 그런 의심이 들었습니다. 어차피 사용자는 빌드된 결과물만 사용할텐데 나는 왜 자연스럽게 src 폴더도 같이 배포하고있지? 라는 의문이 들었고 여러가지 평소에 써오던 라이브러리를 참고하여 본 결과 (zod, zustand, jotai , ) 대부분의 라이브러리들이 빌드 결과물만을 내보내고 있다는 사실을 깨닫게되었습니다. src 폴더를 내보내는 경우에는 사용자가 내부구현을 살펴볼 수 있게하기 위함이나 / 사용자가 라이브러리를 확장할 수 있게끔 하고 싶을 때 유용하다는 내용들을 찾을 수 있었는데 사실 라이브러리를 사용하는 사람의 관점이나 만드는 사람의 관점이나 사용자가 라이..

냠냠맨
'분류 전체보기' 카테고리의 글 목록 (3 Page)