전체 글
-
[RN] Task :app:installDebug FAILEDReact Native 2022. 4. 13. 03:37
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:installDebug'. > com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException react-native run-android 를 실행했을 때, 위와 같은 에러가 발생하는 경우가 있다. 이 오류는 실행하고자 하는 에뮬레이터/디바이스에 같은 package name 을 가진 앱이 설치되어 있는 경우 발생한다. 해결 방법은 2가지가 있다. 에뮬레이터/디바이스에 설치된 앱과 다른 package 명을 사용하는 방법 1. android/app/src/ma..
-
[TS] 이펙티브 타입스크립트 : 2장 - 타입스크립트의 타입 시스템 (3)TypeScript 2022. 3. 24. 01:24
아이템 15 : 동적 데이터에 인덱스 시그니처 사용하기 타입스크립트에서는 타입에 '인덱스 시그니처'를 명시하여 유연하게 매핑을 표현할 수 있다. type Person = { [property: string]: string }; const person: Person = { name: 'jiwon'; phone: '010-1234-5678'; }; // OK 인덱스 시그니처 해석 : [property: string]: string → 키의 이름 : 키의 위치만 표시하는 용도 [property: string]: string → 키의 타입 : string, number, symbol 조합이어야 하며, 보통 string 사용 [property: string]: string → 값의 타입 : 어떤 타입이든 가능 인..
-
[TS] 이펙티브 타입스크립트 : 2장 - 타입스크립트의 타입 시스템 (2)TypeScript 2022. 3. 17. 16:11
아이템 11 : 잉여 속성 체크의 한계 인지하기 객체 리터럴을 변수에 할당하거나 함수에 매개변수로 전달할 때 잉여 속성 체크가 수행된다. 잉여 속성 체크는 해당 타입의 속성이 있는지, 그리고 '그 외의 속성은 없는지' 확인하는 과정을 뜻한다. 이는 타입스크립트에서 일반적으로 수행되는 '구조적 할당 가능성 체크'와는 별도로 이루어지는 동작이다. 잉여 속성 체크는 타입이 명시된 변수에 객체 리터럴을 할당할 때 실행된다. 이를 이용하면 객체 리터럴에 알 수 없는 속성을 허용하지 않음으로써, 아래와 같은 문제점을 해결할 수 있다. interface Docs { title: string; } /* 객체를 할당할 경우 나타나는 문제점 1 */ const obj = { title: 'Hello', subTitle: ..
-
[RN] "Waiting For Debugger" 팝업이 뜨는 경우React Native 2022. 2. 28. 20:04
안드로이드 앱 디버깅을 진행하던 중, "Waiting For Debugger" 팝업이 뜨면서 무한대기 상태가 나타났다. 위 현상은 오랜만에 디버깅을 하거나 디버깅 하는 중간 꼬인 부분이 생겼을 때 간헐적으로 발생하는 에러로 파악된다. 이럴 때는 아래와 같은 명령어를 사용하여 클리어 시켜주고 새로 실행하면 정상 작동한다. adb shell am clear-debug-app 안드로이드 스튜디오에서 실행했을 경우, 아래의 방법으로 간단히 해결할 수 있다. Device Manager -> 오류가 발생한 디바이스 우측의 화살표 클릭 -> Cold Boot Now 클릭
-
[TS] 이펙티브 타입스크립트 : 2장 - 타입스크립트의 타입 시스템 (1)TypeScript 2022. 2. 28. 18:52
아이템 6 : 편집기를 사용하여 타입 시스템 탐색하기 편집기에서 타입스크립트 언어 서비스를 적극 활용해야 한다. 언어 서비스에는 코드 자동 완성, 명세(사양, specification) 검사, 검색, 리팩터링이 포함된다. 편집기를 사용하면 어떻게 타입 시스템이 동작하는지, 그리고 타입스크립트가 어떻게 타입을 추론하는지 개념을 잡을 수 있다. 일반적으로 심벌 (변수, 함수) 위에 마우스 커서를 대면 타입스크립트가 그 타입을 어떻게 판단(추론)하고 있는지 확인할 수 있다. 만약 타입이 기대한 것과 다르거나, 튜플 타입이어야 한다면 타입 구문을 명시해야 한다. 타입 오류를 살펴보는 것도 타입 시스템의 성향을 파악하는 데 좋은 방법이다. 언어 서비스는 'Go to Definition' 기능을 제공한다. 이는 라..
-
[TS] 이펙티브 타입스크립트 : 1장 - 타입스크립트 알아보기TypeScript 2022. 2. 3. 19:01
아이템 1 : 타입스크립트와 자바스크립트의 관계 이해하기 타입스크립트는 자바스크립트의 상위집합(superset)이다. 자바스크립트 프로그램에 문법 오류가 없다면, 유효한 타입스크립트 프로그램이라고 할 수 있다. 반면, 자바스크립트 프로그램에 어떤 이슈가 존재한다면 문법 오류가 아니더라도 타입 체커에게 지적당할 가능성이 높다. (문법의 유효성과 동작의 이슈는 독립적인 문제) 모든 자바스크립트 프로그램이 타입스크립트라는 명제는 참이지만, 그 반대는 성립하지 않는다. 타입 스크립트가 타입을 명시하는 추가적인 문법을 가지기 때문이다. function introduce(name: string) { // SyntaxError: Unexpected token : console.log('Hello, My name is..
-
[JS] 이벤트 루프JavaScript 2021. 12. 23. 03:26
이 글은 2021년 상반기 JS 스터디에서 공부한 내용을 바탕으로 작성되었습니다. 잘못된 부분이 있다면 언제든 말씀해주세요 🙇♀️ 이벤트 루프란? 자바스크립트 엔진이 아닌, 구동하는 환경 (브라우저, 노드) 에서 가지고 있는 하나의 장치임. 콜 스택과 태스크 큐 ( = 콜백 큐) 를 감시하며, 콜 스택이 비어있을 경우에 태스크 큐에서 태스크 ( = 콜백 함수) 를 가져와 콜 스택에 넣어 실행시키는 기능을 함. → 자바스크립트는 싱글스레드 언어이기 때문에 한 번에 하나씩 실행되지만, Web API Callback Queue Event Loop 로 인해 멀티스레드처럼 보임. 태스크가 들어오길 기다렸다가 태스크가 들어오면 이를 처리하고, 처리할 태스크가 없는 경우에는 잠드는 형태임. 이벤트 루프는 큐의 다음..
-
[JS] 스코프와 클로저JavaScript 2021. 12. 23. 03:26
이 글은 2021년 상반기 JS 스터디에서 공부한 내용을 바탕으로 작성되었습니다. 잘못된 부분이 있다면 언제든 말씀해주세요 🙇♀️ 💡 자바스크립트(ES6)는 함수 레벨과 블록 레벨의 렉시컬 스코프 규칙을 따른다. 스코프 (Scope) 란? 식별자(변수)의 유효 범위를 뜻함. 식별자(변수)가 어디서 어떻게 선언되었는지에 따라 스코프가 결정됨. 함수 레벨 스코프 var 키워드로 선언된 변수나 함수 선언식 으로 만들어진 함수는 "함수 레벨 스코프"를 가짐. 즉, 함수 내부 전체에서 유효한 식별자가 됨. function foo() { if (true) { var color = 'blue'; } console.log(color); // blue } foo(); ⇒ 만약 위 코드가 블록 레벨 스코프였다면, col..