profile
Software engineer at Sendbird
태그 목록
전체보기 (67)react native(12)typescript(7)git(6)React(5)JavaScript(3)node.js(2)Picker(2)promise(2)npm(2)axios(2)Time Picker(2)latest(1)private(1)로또 구매(1)android(1)expo module(1)non-blocking i/o(1)task queue(1)x86(1)wireless debugging(1)iOS background debug(1)setImmediate(1)fabric(1)npm tag(1)회고(1)iOS audio(1)expo 3rd party library(1)arch -x86_64(1)worker pool(1)API(1)background play(1)Event Queue(1)PackageManager(1)push(1)private package(1)merge(1)rebase(1)Flatlist(1)커스텀 액션(1)queue(1)typescript conditional function(1)2021(1)타입스크립트 조건부 함수(1)Pull Request(1)yarn3(1)moduleResolve(1)Interceptor(1)Request(1)Response(1)로또(1)yarn-berry(1)connect()(1)get type(1)types(1)unhandled rejection(1)yarn(1)jsi(1)사이드 프로젝트(1)javascript interface(1)중첩된 쿼리(1)blocking i/o(1)npm package(1)ESM(1)Module(1)axios type(1)이직(1)adb wireless(1)process.nextTick()(1)micro task(1)event loop(1)wifi debugging(1)RN(1)nextTick(1)bridge module(1)Worker Thread(1)silent notification(1)flipper(1)타입스크립트(1)react-native-codegen(1)macrotask(1)arm64(1)npm private(1)query(1)setupFiles(1)apple silicon(1)깃허브 액션(1)xcode wireless(1)android maven(1)M1 MacBook(1)CI/CD(1)macro task(1)react-native fabric(1)moduleResolution(1)conditional-typing(1)libuv(1)npm latest(1)gpg(1)post type(1)github action(1)반공변성(1)eslint ignore js(1)iOS(1)has no upstream branch(1)corepack(1)large feature(1)공변성(1)오브젝트 쿼리(1)github actions(1)react-native turbomodule(1)이변성(1)commit(1)squash merge(1)npm latest tag(1)Wheel Picker(1)submodule(1)automations(1)voip notification(1)setInterval(1)setTimeout(1)expo install without eject(1)M:1(1)로또 자동화(1)ListEmptyComponent(1)background(1)eslint split rules(1)VoIP(1)github packages(1)maven injection(1)playlist(1)query-params(1)microtask(1)Native Module(1)type(1)custom environment(1)eslint-typescript ignore js(1)v8(1)package latest(1)turbomodule(1)real-device(1)monorepo(1)중첩된 오브젝트 쿼리(1)Query String(1)wifi debug(1)jest(1)CJS(1)jest config(1)reactnative(1)app(1)expo npm module(1)queueMicrotask(1)Side Project(1)nested object query(1)squash(1)expo npm library(1)signing(1)axios params(1)params(1)eslint various rules(1)gpg sign(1)autoSetupRemote(1)background process(1)remote(1)npm publish(1)interceptor type(1)eslint rules by files(1)wireless debug(1)조건부함수(1)
post-thumbnail

TS 로 커스텀 GitHub Action 만들어 보기 (feat. 로또 구매 자동화)

모든 소스 코드는 오픈소스로, 아래 레포들에 공개되어있습니다. https://github.com/rich-automation/lotto-module https://github.com/rich-automation/lotto-action > >자동화 설정은 다음의 글을 참고해주세요. lotto-action 설정 가이드 작년부터 하려던 사이드 프로젝트를 밍기적 거리다 드디어 올해 4월에 시작했다. 로또를 자동으로 구매하는 프로젝트, 프로젝트를 위해서 rich-automation 이라는 조직을 생성했

2023년 6월 15일
·
0개의 댓글
·
post-thumbnail

JavaScript package 101 - Module

JavaScript(이하 JS) 생태계는 빠르게 발전하고 있고, 그에 따라서 익혀야 할 지식들과 스펙들은 점점 더 늘어나고 있습니다. JS를 사용한다면 필수로 익혀야하는 Package Manager 인 NPM(그리고 패키지)를 둘러싼 지식들에 대해서 글로 적어보려 합니다. >Module: module resolution (bundler, package.json), module system (esm/cjs) Versioning: tilde, caret, semver Package manager: yarn, pnpm, npm, corepack Dependency management: node_modules, hoisting, symlink, pnp Depedencies: dependencies, devDependencies, peerDependencies Module resolution (module resolve) 일반적으로 JS

2023년 5월 16일
·
0개의 댓글
·

[RN-CheatSheet] Unhandled promise rejection 트래킹하기

try/catch 혹은 .catch() 로 핸들링 하지 않은 프로미스 요청에서 에러가 발생하는 경우, Unhandled promise rejection 워닝이나 미처 놓치게 되는 오류가 있을수도 있다. 만약 SDK를 사용하고 있고, 로거가 켜져있다면 특히나 더 거슬리는 요인이 되기도 한다. 특정 unhandled 에러만 걸러내거나 로그를 찾아서 봐야하는 경우, 아래와 같은 방식으로 override 가 가능하다.

2022년 10월 12일
·
0개의 댓글
·

TS 공변성,반공변성,이변성

공변성 > A 가 B 의 서브 그룹일때 > T 도 T 의 서브 그룹이다. > 받은 값들을 사용하지 않는 경우, 구분할 필요가 없는 케이스. 반공변성 > A 가 B 의 서브 그룹일때 > T 가 T 가 슈퍼 그룹이다. > 받은 값들을 사용해야 하는 경우, 구분할 필요가 있는 케이스. 이변성 > 공변성+반공변성, 서브그룹/슈퍼그룹 둘 다 OK 이변성에 대한 예시는 좀 극단적인 것 같긴하다. 문제가 있다면 댓글 부탁드립니다. ref. https://seob.dev/posts/공변성이란-무엇인가

2022년 2월 19일
·
0개의 댓글
·

Axios 인터셉터 타입스크립트에서 제대로 쓰기

Axios 에는 interceptors 라는 기능이 있다. 이를 통해서 request / response 에 선행,후행 처리를 커스텀하게 할 수 있다. 그취만.. 타입 스크립트에서는 interceptor 를 통해서 한번 포맷팅을 변경했지만 client.get 의 타입은 그대로 response.data 형태로 남아있는걸 겪을 수 있다. https://github.com/axios/axios/issues/1510 이슈를 통해서 활발한 논의가 진행됐었고 https://github.com/axios/axios/pull/1605 를 통해서 커스텀한 타입을 추가할 수 있게 수정되었다. (뒤쪽 제네릭의 기본값을 AxiosResponse 로 감싼 형태로 처리하고, 해당 제네릭을 return 값으로 처리했다.) 흠.. 계속해서 사용하기에 적합한 방식은 아닌 것 같다는 생각이 들었다. typescript 는 타입선언을 여러가지 방법으로 지원하는데 이 중

2021년 7월 29일
·
6개의 댓글
·

Typescript 조건부 함수 사용하기

Problem Union 타입을 분리하여 함수에서 사용할 경우, 파라메터 추론이 정상적으로 동작하지 않는다. Solution 1 이럴때는 그냥 분리하지말고, 유니온을 그대로 사용하면 Exhaustive check 에 의해서 아규먼트, 파라메터 둘 다 정상적으로 추론된다. (단 디스트럭쳐링 등을 사용하여 유니온 데이터 원형으로부터 분리되는 순간 깨진다.) Solution 2 분리를 하고싶다면, 타입 캐스팅과 Exhaustive check 을 섞는 방법도 있다.

2021년 7월 28일
·
0개의 댓글
·

[Typescript] Enum을 활용한 메소드 조건부 타이핑

type SomeType => type 선언부의 Generic 을 "A" 타입으로 사용하겠다. type SomeType = T extends "A" ? string : never; => SomeType 에 받은 Generic 이, "A" 라는 조건을 만족하면 string type, 아니라면 에러를 반환하겠다. 이 두가지와 Enum 을 활용해서 아래와 같이 Enum에 따라서 타입 추론이 되는 함수를 만들어 활용할 수 있다. 케이스가 좀 더 필요하다면 아래의 글도 참조하시라 https://velog.io/@bang9dev/Typescript-generic-with-function-logic

2020년 8월 4일
·
1개의 댓글
·