-
Year in Review
Async vs Sync vs Block vs Non-Block 비교
Async, Sync, Block, Non-Block 차이점
🤔 Async vs Sync vs Block vs Non-Block 차이 처음 이 4가지의 개념을 이해하는데 정말 너무 고생을 했었다. 그래도 여러 글을 읽고, 선배...
-
Year in Review
http란?
http란?
http가 무엇인지 누군가에게 설명 해주려니 막막한 느낌이 들면서 어떤 규칙(프로토콜)을 지켜야 하는게 http인지 잘 모르고 있구나 라는 생각이 들었다. 그래서 이번 기회에 http가 무엇인지...
-
Year in Review
CORS란?
Simple Origin Policy & Cross Origin Resource Sharing
백엔드 서버와 프론트 서버를 같은 호스트에서 서비스하면서 CORS라는 개념을 알게 되었다. 왜 이게 중요한건지 이유를 알고 싶었는데 정말 잘 설명해준 블로그와 유튜브 영상을 알게...
-
Year in Review
DOM 이란?
DOM 이란?
💡 DOM이란? Document Object Model은 html문서(웹페이지)에 대한 인터페이스로, 스크립트 언어와 프로그래밍 언어로 이 html을 쉽게 사용하고 조작할 수 있게 웹브라우저가 html을 파싱해서 object...
-
Year in Review
browser rendering 과정
browser rendering 과정
💡 브라우저의 rendering 과정 (DOM부터..) HTML 마크업을 처리하고 DOM 트리를 빌드합니다. CSS 마크업을 처리하고 CSSOM 트리를 빌드합니다. DOM 및 CSSOM을 결합하여 렌더링 트리를...
-
Year in Review
html 이란?
html 이란?
💡 html이란? html은 웹브라우저가 해석할 수 있는 markup language를 말한다. hyper text란 “문자를 뛰어넘는”의 의미로 우리가 웹 문서를 읽을때 비순차적인 읽기(우리가 읽고 있는...
-
Year in Review
vim mode
vim mode & operator command
VIM을 접하고 난지 대략 1년 반이라는 시간이 지났다. 처음 회사업무가 IDE를 사용하지 못하는 환경이라 개발 환경을 VIM으로 세팅하여 사용했다. 지금은 어떤 IDE를 사용해도 먼저...
-
Year in Review
Mac karabiner profile switching
Mac karabiner profile switching
최근에는 회사에서도 개인 맥북으로 작업을 하고 있다. 회사 키보드는 맥 전용 키보드가 아니라서 command <-> opt을 바꿔줘야 맥북 키보드와 같은 기능을 한다. 그래서 매번...
-
Year in Review
Kernel panic in Mac with USB-C external displays
Kernel panic in Mac with USB-C external displays
Mac Issue with USB-C external displays 맥을 clam shell mode로 회사에서 사용하고 있는데, 회사에서 잘 사용하다가 집에 또 가져가서 사용하다가 다시 회사에 가지고...
-
Year in Review
leetcode 터미널에서 쓰기
leetcode-cli 사용법
종종 leetcode에서 알고리즘 문제를 푸는데 항상 내 vim 환경에서 문제를 풀면 좋겠다라는 생각을 했었다. leetcode에서도 vim환경을 제공해주지만 custom한 key mapping은 아직 지원을 해주지 않고...
-
Year in Review
VSCode 단축키 설정 팁
VSCode 단축키 설정 팁, OR 조건 추가
VSCode에서 단축키 설정시, When에 2가지 조건을 넣기 위해서는 어떻게 해야할까? VSCode를 사용중 vim normal 모드에서도 auto import suggest가 되도록...
-
Year in Review
redux flow
redux flow
Provider Provider component의 하위 컴포넌트들은 store에 접근이 가능 connect connect([options])(컴포넌트) 위의 표현식과 같은...
-
Year in Review
Could not get BatchedBridge, make sure your bundle is packaged correctly
Could not get BatchedBridge, make sure your bundle is packaged correctly
가끔 react-native를 사용하다가 android에서 다음과 같은 에러를 만난다. 메트로를 재시작해 번들링을 새로 해주면 된다. $ <span...
-
Year in Review
앱 아이콘 만들기
Making App Icon for Android & IOS
앱 아이콘 만들기 https://smok95.tistory.com/303 참고 Android romannurik.github.io/AndroidAssetStudio/icons-launcher.html IOS https://appicon.co/ 위의 링크에서 1024px...
-
Year in Review
Cycle in dependencies between targets ...
Cycle in dependencies between targets ...
❎ 에러 발생 react-native project에서 ios프로젝트를 빌드 하다가 다음과 같은 에러를 만나게 되었다. Cycle in dependencies between targets … 왜 갑자기..?...
-
Year in Review
react-native nested scroll view with horizontal direction
react-native nested scroll view with horizontal direction (with android)
❎ 에러 발생 react-native에서 Scroll이 가능한 뷰를 위해 ScrollView라는 컴포넌트를 기본으로 제공해준다. 하지만 ScrollView안에 ScrollView를 사용해야할 경우가 생기는데, 기본적으로 이 경우 밖에 있는...
-
Year in Review
Task :react-native-firebase_firestore:javaPreCompileDebug FAILED
> Could not find okhttp-2.7.5.jar (com.squareup.okhttp:okhttp:2.7.5).
❎ 에러 발생 react-native project에서 firebase noti를 받기 위한 세팅 설정을 하다가 다음과 같은 에러를 만났다. 잘 빌드가 되어서 테스트까지 모두 했었는데 왜...
-
Year in Review
Error: Style property 'backgroundColor' is not supproted by native animated module
Error: Style property 'backgroundColor' is not supproted by native animated module
❎ 에러 발생 react-native에서 제공하는 Animated를 이용해 배경색을 바꾸는 애니메이션을 적용했는데, frame이 drop이 되어 애니메이션이 버벅이는 현상이 있었다. 그래서...
-
Year in Review
Error Message: You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable
Error Message: You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable
❎ 에러 발생 react-native에서 react-native-maps 패키지를 이용해 지도 기능을 구현하다가 다음과 같은 에러 메시지를 받았다. Error Message: You must enable Billing on...
-
Year in Review
ios module not found error
ios YogaKit module not found error
❎ 에러 발생 ios archive 중 module not found error가 터졌다. 해당 이슈를 검색해보니 ios deployment 타겟 버전이 Podfile에 명시되어 있는 버전과 달라...
-
Year in Review
ios-archive-error
Use of unresolved identifier Error
❎ 에러 발생 ios build는 잘되는데 archive시에만 해당 에러가 터진다. Xcode를 욕하면서 찾아보다가 github issue에서 다음과 같은 글을 보고...
-
Year in Review
react native release build error
Error: Duplicate resources
❎ 에러 발생 아래의 명령어로 react-native js를 bundling 한 다음, $ react-native bundle --<span...
-
Year in Review
Error: Entries must be arrays of the form [key: string, value: string]
Error: Entries must be arrays of the form [key: string, value: string]
❎ 에러 발생 react-native에서 AsyncStorage를 쓰다가 다음과 같은 에러를 만났다. Error: Entries must be arrays of the form [key: string, value: string]...
-
Year in Review
vscode react-native style autocomplete
vscode react-native style autocomplete
VSCode react-native style autocomplete VScode에서 react-native style 자동 완성 기능을 지원해주는 extension을 찾아보다가 다음 extension을 발견했다. https://marketplace.visualstudio.com/items?itemName=jundat95.react-native-snippet <img src="/blog/react-native/vscode-style-autocomplete/img/2021-01-19-09-55-01.png" alt=""...
-
Year in Review
ESLint warning; defined but never used for react-native components
ESLint warning; defined but never used for react-native components
❎ 에러 발생 eslint를 사용하면서 react 관련 컴포넌트들이 사용이 됐음에도 불구하고, 사용되지 않았다는 에러가 생기는데 저 빨간줄을 없애야겠다는 생각이...
-
Year in Review
react-native webview 링크 다루기
react-native webview 링크 다루기
react-native-webview react-native-webview라는 npm 패키지를 설치해서 사용을 하면서 생겼던 문제를 공유하기 위해 블로그에 남긴다. IOS 먼저 iOS의 경우 universial link 등록 과정이 조금...
-
Year in Review
react-native eslint & prettier 설정 (with airbnb-style)
react-native eslint & prettier 설정 (with airbnb-style)
🔥 eslint & prettier 설정하기 eslint에도 code formatting rule이 있어, prettier와 conflict이 나기 때문에 추가적인 설정을 해주어야한다. eslint 와 prettier를 같이 사용하기 위해서는...
-
Year in Review
react-native custom font 설정하기
react-native custom font 설정하기
🔥 react-native font 설정 먼저 react-native-config.js를 다음과 같이 작성한다. module.exports = { project:...
-
Year in Review
Package com.demoapp signatures do not match previously installed version
com.android.ddmlib.InstallException: INSTALL_FAILED_UPDATE_INCOMPATIBLE
❎ 에러 발생 react-native 프로젝트 빌드중에 갑자기 인스톨이 되지 않으면서 다음과 같은 에러 메시지를 받았다. Execution failed for task ‘:app:installDebug’. com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException:...
-
Year in Review
git submodule 사용법
git submodule example
git submodule 명령어 정리 git submodule을 관리할 때, 많이 사용하는 명령어들에 대해 정리해보았다. git submodule init .gitmodules tracked 파일 내용을 로컬...
-
Year in Review
git commit
git commit
git commit을 했을때 git project에는 어떤 파일들이 추가되는지 궁금해져 한번 정리해보려고 한다. 먼저 commit 할 파일들을 만들어서 commit해보자 git project의 아무 폴더에 들어가서 아래의...
-
Year in Review
git reset & git rebase 사용해보기
git reset & git rebase example
git을 사용할 때 가장 많이 사용하는 명령어를 꼽아보라면 reset과 rebase일 것 같다. 각 명령어의 사용법과 어떻게 적용이 되는지에 대해 정리해보았다. git reset git...
-
Year in Review
MobX: Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed
MobX: Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed
MobX: Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed Mobx를 열심히 사용을 하는데 갑자기 시뮬레이터에 Warning이...
-
Year in Review
React FlatList does not react to mobx observable data
React FlatList does not react to mobx observable data
React FlatList does not react to mobx observable data mobx에서 observable array를 FlatList의 data로 연결하고, useEffect에서 특정 트리거 조건에서만 observable array에 추가 엔트리를...
-
Year in Review
프로세스 스레드 비교
process & thread difference
프로세스와 스레드의 차이 linux에서 process와 thread의 차이에 대해 한번 정리해보려고 한다. 🔥 프로세스 프로세스는 linux 커널의 스케줄 대상으로써, 프로그램(binary 파일)이 메모리에 실제로...
-
Year in Review
Support for the experimental syntax ‘classProperties’ isn’t currently enabled
Support for the experimental syntax ‘classProperties’ isn’t currently enabled
❎ 에러 발생 babel로 빌드할때 class를 사용하려면 @babel/plugin-proposal-class-properties를 설정해줘야 한다. 그렇지 않으면 위와 같이 에러가 발생한다. @babel/core 바벨 사용필수...
-
Year in Review
크롬 탭 복사 복제
Chrome tab copy
크롬 탭 복사 복제 (Chrome tab copy) 크롬 탭 복사 복제 알려주는 링크 Mac Cmd + L 누른 후, Alt...
-
Year in Review
webgl 분석
webgl 분석
WebGL이란 WebGL은 크로노스 그룹에서 관리하는 오픈소스 라이브러리이다. 크로노스 그룹은 다양한 플랫폼과 장치에서 사용되는 병렬컴퓨팅, 그래픽스, 비전 및 신경망 분야의 저작 및 가속하는데...
-
Year in Review
rfc (request for comment)
rfc 완벽 분석
가끔 web과 관련된 지식들을 찾다보면 “http/1.1에 대해 설명된 rfc7230 문서를 보면…” 과 같은 블로그 글들을 많이 볼텐데, 항상 궁금했었다. 대략 어떤 인터넷 표준문서인 것...
-
Year in Review
React Rendering & Reconcile 이란?
flatlist key prop
React reconcile React에서 컴포넌트의 state가 바뀌게 되면 re-render가 일어나게 된다. 이때 state나 prop이 바뀌거나 또는 부모가 re-render되면 자식은 re-render 조건에 부합되게 된다....
-
Year in Review
Kubernetes (1)
Kubernetes 배경지식 정리
‘도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문’ 책을 읽으며, 쿠버네티스 용어들과 공부한 내용들을 정리 해보려고 한다. Kubernetes 쿠버네티스는 클러스터를 관리하는 도구이다. 클러스터는 그러면 뭘까?...
-
Year in Review
Github Repository Contribution Stats 🔥
Github Contribution 스탯으로 프로필 꾸미기
Github Repository Contribution Stats 🔥 When I decorate my github readme, I would like to show my contribution list. So I made...
-
Year in Review
vim jump list & change list)
vim jump list & change list
VIM을 쓸 때, 가장 많이 사용하는, 가장 유용한 위치 이동 팁을 소개하려고 한다. 바로 jump list와 change list이다. 🏃 jump list vim에서는 내부...
-
Year in Review
ERROR 1366 (HY000) : incorrect string value : for column
Mysql & Mariadb
❎ 에러 발생 docker image로 mariadb를 사용하면서 한글 데이터를 insert하는 순간 다음과 같은 에러를 만났다. > ERROR <span...
-
Year in Review
node child_process
node child_process (detached)
node의 내장 모듈인 child_process를 공부하다가 spawn과 fork에서 주는 option중에 detached를 보게 되었다. node 공식문서: child_process 윈도우가 아닌...
-
Year in Review
node event loop 동작 과정
node event loop 동작 과정 정리
💡 Node는 single thread event loop Node는 main thread에서 call stack을 처리하고, call stack을 전부 처리하면 event loop(libuv의 구현체) event queue에 적재되어 있는...
-
Year in Review
REST & GRAPHQL
장단점 비교
REST? GraphQL? 서버를 만들면서 항상 REST로 짜오다가 최근에 GRAPHQL을 새로 공부하면서 REST와 어떤 차이가 있는지, 공부를 해보게 되었다. 아래는 그 둘의 차이를 잘...
-
Year in Review
REST 간단 정리
REST Uniform Interface
REST는 로이필딩이 이야기하는 네트워크 소프트웨어 아키텍쳐이다. REST는 다음의 6가지를 만족해야한다. Client-Server 구조 Layered System Cacheable Uniform Interface...
-
Year in Review
node chalk module 사용법
node chalk module example
chalk를 사용하는데 import 후 사용방법대로 사용해봤지만 컬러가 나오지 않았다. stack overflow에서 검색을 하고, 다음과 같은 초기화 문구를 사용하니 컬러를 사용할 수 있었다. <div class="language-js...
-
Year in Review
Error: spawnSync /bin/sh ENOENT
Error: spawnSync /bin/sh ENOENT
❎ 에러 발생 child_process의 spawnSync 함수를 쓰던 중 다음과 같은 에러를 보게 되었다. > Error: spawnSync...
-
Year in Review
Make Ctrl-k in Terminal copy to the system clipboard
Make Ctrl-k in Terminal copy to the system clipboard
Terminal에서 현재 명령어를 복사하고 싶은 경우가 생겼는데 항상 마우스를 이용해 드래그해서 복사 붙여넣기를 사용하고 있었다. 어떻게 단축키로 해결할 수 있을까 생각을 하다가, 터미널 명령어인...
-
Year in Review
Java Exception 종류
checked exception, unchecked exception difference
🚀 Java Exception 종류 Java에서는 exception의 종류가 크게 2가지로 나뉘게 되는데, 바로 checked exception과 unchecked exception이다. <출처: https://www.javamadesoeasy.com/2015/05/exception-handling-exception-hierarchy.html>...
-
Year in Review
Java Nested Class
Java Nested Class 종류
🚀 Nested Class Java에는 중첩 클래스라는게 존재한다. C++에도 존재하지만, 그 종류가 더 다양하다. Java Nested Class는 오라클 docs를 참고했다. https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html 🔥...
-
Year in Review
Java 8, Permanent Area(PermGen)은 어디로 이동했나?
jvm PermGen
Java 8, Permanent Area(PermGen)은 어디로 이동했나? Java 7에서 Java 8로 넘어오면서 jvm hotspot의 PermGen영역은 사라졌다. (jvm의 spec에 method area 영역) string과 static 변수들은...
-
Year in Review
tomcat 서비스 등록 (설치)
tomcat 서비스 등록 (설치)
tomcat을 사용하는데 서버를 재시작 할 때, tomcat도 매번 재시작을 시켜줘야 했다. systemd 서비스로 등록해야서 자동으로 시작되게 해야겠다라고 생각하다가 이번 기회에 서비스로 등록하게 되었다. <h1...
-
Year in Review
spring data jpa
jpa vs spring data jpa
- JPA JPA is a specification that standardizes the way Java Objects are mapped to a relational database system. Being...
-
Year in Review
Mac iterm 설정 1
iterm hotkey window 설정
iterm 세팅할때 hotkey window를 설정해주면 개발할때 편하다. 그런데 hotkey window를 사용할때 alfred clipboard 기능을 이용하는데 clipboard를 열때마다 hotkey window가 뒤에 가만히 있지 않고 hide되어서...
-
Year in Review
Underscore in URLS break markdown link parsing
Underscore in URLS break markdown link parsing
❎ 에러 발생 markdown link 사용법대로 를 잘 쓰고 있다가 []안에 _를 쓸 경우, link가 작동하지 않는 것을 알았다. 바로 구글링.. <h1...
-
Year in Review
Execution failed for task ':app:installDebug'
INSTALL_FAILED_INSUFFICIENT_STORAGE 해결 방법
❎ 에러 발생 react-native 앱 테스트를 안드로이드 에뮬레이터로 사용하고 있었는데 갑작스레 다음과 같은 에러를 만났다. 에뮬레이터에서 용량이 충분하지 않아...
-
Year in Review
RNC_AsyncSQLiteDBStorage tried to override AsyncStorageModule
RNC_AsyncSQLiteDBStorage tried to override AsyncStorageModule
❎ 에러 발생 AsyncStorage 위치가 변경되었다는 워닝이 떠서 다른 @react-native-community/async-storage로 새로 설치했다. 하지만 기존의 async-storage를 지우지 않으면서 packages가 android에...
-
Year in Review
Execution failed for task ':app:mergeExtDexDebug'
Java.lang.OutOfMemoryError
❎ 에러 발생 react-native 앱 테스트를 안드로이드 에뮬레이터로 사용하고 있었는데 갑작스레 다음과 같은 에러를 만났다. <span...
-
Year in Review
Execution failed for task ':app:mergeDexDebug'.
com.android.builder.dexing.DexArchiveMergerException
❎ 에러 발생 react-native 앱 테스트를 안드로이드 에뮬레이터로 사용하고 있었는데 갑작스레 다음과 같은 에러를 만났다. <span...
-
Year in Review
Execution failed for task ':app:packageDebug'
Java heap space
❎ 에러 발생 react-native 앱 테스트를 안드로이드 에뮬레이터로 사용하고 있었는데 갑작스레 다음과 같은 에러를 만났다. <span...
-
Year in Review
Execution failed for task ':app:processDebugResources'.
Execution failed for task ':app:processDebugResources'.
❎ 에러 발생 react-native에서 react-native-image-crop-picker 모듈을 적용하고 빌드를 해보니 다음과 같은 에러를 만났다. * What went <span...
-
Year in Review
글또 10기를 지원하며
삶의 지도 작성
삶의 지도 글또에 지원하며 제 삶을 되돌아보고 인생의 지도를 그려볼 수 있는 소중한 기회를 얻은 것 같습니다. 이렇게 멋진 모임을 오랫동안 운영하고 계시는...
-
Year in Review
Rob Pike가 설명하는 동시성과 병렬성의 차이
Concurrency Is Not Parallelism
동시성과 병렬성의 차이 Rob Pike가 설명하는 동시성과 병렬성에 대한 설명 자료가 있어 가져왔다. Rob Pike의 “Concurrency Is Not Parallelism” 강연에서 동시성과 병렬성에...
-
Year in Review
개발팀의 설계 및 개발 산출물
기록의 중요성
현재 회사에서 개발팀은 애자일하게 일하기 위해 스크럼 프레임워크(스프린트)를 이용하고 있다. 그리고 스프린트는 전반기/후반기로 나누어서 진행을 하고 있고, 후반기에는 배포를 위해 업데이트 테스트까지 포함해 진행을...
-
Year in Review
좋은 리더를 넘어 위대한 리더로
책을 읽고 기록으로
최근에 회사내에서 COO님과 이야기하다가 에어스메디컬에서 제일 팀 운영을 잘 한다는 이야기를 듣고 싶어서 더 열심히 해보려구요! 라는 말을 했는데, COO님이 짐 콜린스의 좋은 리더를...