최근 프로젝트 전체를 JavaScript에서 TypeScript로 변환하는 작업을 하면서 우연히 발견하게 된 아티클인데 좋은 지적인 것 같아서 정리해보았다. 1. strict 모드를 사용하지 않는 것 tsconfig.json에 strict 모드를 활성화 시키자. 2. Fallback으로 || 옵셔널 오퍼레이션을 사용하는 것 => ??을 사용하던지 더 나은 방법은 파라미터 레벨에서 fallback을 써주는 것이다. 3. any 타입을 사용하는 것 unknown타입을 대신해서 쓰자. any는 타입체크를 비활성화시킨다. 즉, 버그를 확인하기 어려워진다. 4. val as SomeType 강제로 특정 타입이라고 컴파일러에 알려주는 방식. function isArrayOfProducts (obj: unknown)..
가끔 라이브러리 자체에 버그가 있어서 바로 고쳐야하거나, 라이브러리만으로는 지원이되지 않는 기능이 들어가야하는 경우가 있다. 이때까지 오픈소스를 변경해서 사용하기 위해서는 Github에서 folk하고 수정 한 뒤 가져오는 방식밖에 없는줄 알았는데, 훨씬 단순한 방법이 있었다. patch-package라는 노드 모듈을 설치해서 사용하는 방식인데 1. 먼저 patch-package, postinstall-postinstall를 설치한다. yarn add patch-package postinstall-postinstall postinstall-postinstall이건 패키지 설치시 뿐만 아니라 패키지를 삭제할 때도 postinstall 스크립트를 실행해주는 라이브러리이다. 2. package.json 에서 p..
호스팅 서버에 ssh 방식으로 git 연동하기 Ubuntu14.04 LTS 호스팅 서버를 쓰고 있었는데, 본래 https로 시작되는 git URL로 연결을 요청하다 어느날 서버를 업데이트하려고 git pull을 하니 gnutls_handshake() failed: Handshake failed 과 같은 에러가 떴다. 찾아보니 해당 서버에서 발생하는 문제중 하나이며 빠른 해결방법은 https 방식이 아니라 ssh 방식으로 git 연동을 하는 것이라고 한다. ssh 연동 방법 해당 서버에 ssh 키를 생성한다. id_rsa.pub 파일에 생성된 public key를 Bitbucket, Github, Gitlab 같이 레파지토리 저장소에 추가한다. 각 플랫폼의 ssh 설정 페이지 Bitbucket - http..
필요한 것 서버리스 플랫폼 (Firebase Cloud Functions, AWS Lambda 등) 클라우드 스토리지 (Firebase Storage, AWS S3 등) Puppeteer Handlebars (HTML 템플릿 언어) 방법 각 서버리스 플랫폼에서 제공하는 프로젝트 초기화 방식으로 node.js 기반의 서버를 생성한다. puppeteer와 handlebars를 npm으로 설치 템플릿으로 사용할 HTML 파일을 클라우드 스토리지에 올려둔다. 함수 내부 플로우 클라우드 스토리지에서 파일을 다운받는다. API body로 템플릿에 필요한 파라미터를 가져온다. 추가 계산/분석 로직이 필요하면 작업한다. handlebars를 이용해 컴파일하고 결과물을 임시로 만든 html 파일에 저장한다. (node...
Commit 한 메시지를 바꾸고 싶으면? git commit --amend -m "new message" git log --oneline => 변경된 메시지가 보임 같은 커밋에 몇 가지 파일을 더 추가하고 싶은면? git add -A git commit --amend -m "new message" staging에 add했는데 원하지 않을때? (이부분은 git command에서 알려줌) "Use git reset HEAD ... to unstage" 메시지 rm git status push전에 커밋을 지우고 싶을 때? (꼭 푸시전에, 안그러면 다른 사람들은 영향을 받음) git reset Reset --hard, --soft, --mixed 차이? git reset --soft HEAD~1 헤드를 바로 뒤..

1. 설치 Mac의 기본 셸은 bash 이지만 zsh도 기본 설치되어 있다. zsh로 기본 설정을 바꾸려면 다음과 같이 입력하면 된다. chsh -s $(which zsh) 2. Oh My Zsh zsh 설정을 관리하는 커뮤니티 기반 프레임워크이며 많은 함수, 헬퍼, 플러그인, 테마들을 가지고 있다. 설치를 하려면 curl이나 wget을 이용한다. # curl sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # wget sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" 2-1. ..
빠른 테스트를 할 때, 또는 필요한 파일을 다운로드할 때 알아두면 POSTMAN보다 유용한 curl 사용법 // GET response curl url // GET raw response curl -i url // download (image, html ...) curl -OL url // specify the file name curl -o image-name.png url // request with Authorization curl -H "Authorization: my-secret-token" url /** POST, PUT **/ // post request, send JSON curl -X POST -d '{"answer": 42}' url // default content-ty..

맥에는 기본적으로 설치되어 있는 유틸리티 중 imagemagick이란 게 있다. (리눅스나, 윈도우, 모바일 OS 등에서도 실행을 할 수 있다고 한다.) 홈페이지 설명에 따르면 비트맵 이미지를 변환하거나 합치고 편집/생성 등을 할수 있고 다양한 포맷 (PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, SVG 까지) 지원한다. 지원 기능은 다음과 같다 - resize - flip (좌우, 상하 변경) - mirror (플립과 차이가 뭐지?) - rotate (방향변경) - distort (기울이기) - shear (자르기?) - transform - adjust colors - 다양한 효과 적용 - 텍스트 그리기 - 라인 그리기 - 폴리곤 - 타원..
안드로이드 빌드 시, 라이브러리에서 버전이 맞지 않는 모듈을 import 해서 발생되는 이슈 첫 번째 방법 File > Invalidate Cache & Restart를 하면 되고, 필요한 모듈이 있다면 수동으로 각 모듈의 gradle 파일에 의존성 추가해서 다시 sync를 해준다. Sync 후에도 import가 제대로 되지 않으면 .idea 폴더를 삭제 후 다시 빌드해보자. 두 번째 방법 안드로이드 스튜디오 메뉴 Refactor > Migrate 세 번째 방법 에러가 나는 모듈을 확인해 import 가 제대로 되지 않은 모듈을 주석처리 또는 삭제한 뒤 해당 모듈을 다시 import 시켜준다.
안드로이드 개발환경에서는 빌드, 실행이 잘 되다가 앱 배포를 위해 Release버전으로 빌드할 때 자주 발생하는 에러이다. 만약 이 에러를 처음 발견한 경우 안드로이드의 build.gradle에 multiDex 설정이 제대로 되어 있는지 확인할 필요가 있다. app/build.gradle 에서 두 가지를 우선 추가해준 뒤 defaultConfig { ... // 추가 multiDexEnabled true } dependencies { ... // 추가 implementation 'com.android.support:multidex:1.0.3' } MainApplication.java에서 MultiDexApplication를 상속시켜준다. ... // MultiDexApplication 임포트 import..
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 공존이 필요해요
- 쉽게 말하는법
- 소름돋는필력
- git ssh 연동
- 시간 관리
- 소프트웨어 공학
- MVP
- React Native
- 애드 캣멀
- multiDex issue
- Android
- go
- 이미지 일괄 변경
- 아키텍처
- node.js
- 최은영작가님
- 그리고 상상력
- 구독료 계산기
- 스크럼
- git 실수
- 좋은 습관이란
- egghead
- iterms
- 안드로이드
- 이미지 여백주기
- 창의성을 지휘하라
- gradle
- release build issue
- retrofit
- patch-packages
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함