[TypeScript] HTML 조작 및 주의점
·
TypeScript/기초
strictNullCheck { "compilerOptions": { "target": "ES5", "module": "commonjs", "strictNullChecks": true } } 변수 조작을 하기 전에 null인지 확인하는 작업은 중요하다. 특히 html 조작을 할 때 셀렉터로 찾으면 null인 경우가 꽤 발생하니 많은 도움이 된다. 그러므로 tsconfig.json에 strictNullChecks 옵션을 켠다면 null이 들어왔는지 아닌지 확인할 수 있다. HTML 찾고 변경하기 let title = document.querySelector("#title"); title.innerHtml = "Hello"; // 에러 querySelector로 조회하고 innerHtml로 변경하는 방식은 ..
[TypeScript] 함수와 method에 type alias 지정하기
·
TypeScript/기초
1. 함수에 type alias? 함수에는 들어갈 파라미터와 return에 타입을 지정할 수 있다. 여기서 함수의 타입에도 type alisa로 저장해서 쓸 수 있다. function add(x: number, y: number): number { return x + y } x와 y를 더해서 return 해주는 함수를 하나 만들었다. type NumOut = (x:number, y: number) => number; 따로 NumOut이라는 type으로 빼서 사용할 수 있다. 이때, 선언할 때는 화살표 함수 방식으로만 선언이 가능하다. type NumOut = (x:number, y: number) => number; let add :NumOut = function(x,y) { return x + y; }..
[TypeScript] Literal Type
·
TypeScript/기초
1. Literal Type ? 자바스크립트로 개발을 하다가 특정 변수는 1의 값만 가지게 하고 싶을 때가 있다. 그럴 경우 보통은 const 키워드를 사용해 const num = 1; 처럼 선언해서 사용한다. 그런데, 1 또는 0을 가질 수 있게 제한하고 싶은 경우에는 어떻게 해야할까? 그럴 때 바로 Literal Type을 이용해서 선언하면 된다. 사용하면 미리 정해둔 데이터만 변수가 가질 수 있게 만들어준다. 2. Literal Type 사용법 TypeScript로 타입을 지정할 때 string, number 같은 타입만 선언할 수 있는 것이 아니다. 일반 글자같은 것도 타입이 될 수 있다. let seo: "개발자"; let kim: "백수"; " 개발자 " 와 " 백수 " 같은 타입도 만들 수 ..
[알고리즘] 행렬 테두리 회전하기
·
알고리즘
문제 설명 rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음과 같습니다. x1 행 y1 열부터 x2 행 y2 열까지의 영역에 해당하는 직사각형에서 테두리에 있는 숫자들을 한 칸씩 시계방향으로 회전합니다. 다음은 6 x 6 크기 행렬의 예시입니다. 이 행렬에 (2, 2, 5, 4) 회전을 적용하면, 아래 그림과 같이 2행 2열부터 5행 4열까지 영역의 테두리가 시계방향으로 회전합니다. 이때, 중앙의 15와 21이 있는 영역은..
[개발환경] React Native 개발환경 구성 - Window
·
개발환경
1. 초코렛티 설치 윈도우에서 초코렛티는 패키지를 설치하고 관리할 수 있는 패키지 매니저다. Install을 클릭해 설치 페이지로 이동한다. 초코렛티는 powershell, 즉 powershell의 관리자 권한으로 설치를 해야 한다. 명령어를 복사하고 powershell를 관리자 모드로 킨다. 설치를 하고 cmd에서 choco -v 명령어를 실행했을 때 버전이 나오면 정상적으로 설치가 완료된 것이다. 2. node 설치 node 설치 부분은 이미 React 개발 환경에서 진행 하였기 때문에 참고하세요. https://bum-developer.tistory.com/entry/%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-React-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%..
[React Native] AMD CPU에서 android emulator 설치 시 4294967201 오류
·
React Native/버그
0. 발단 평화로운 어느날... Android Emulator 설치를 하려고 하는데 4294967201 이라는 무시무시한 에러가 발생하였다 ... 1. 문제 원인 AMD CPU에서는 Emulator를 설치하기 위해서 추가 작업을 진행해야했다. 2. 해결 1. Window 가상화 옵션 끄기 제어판 => 프로그램 => Windows 기능 켜기/끄기에서 Hyper-V와 Windows 하이퍼 바이저 플랫폼 부분을 모두 체크 해제한다. 2. AMD Bios 가상화 설정 컴퓨터를 재부팅 시킬때 f2 혹은 f12를 눌러 Bios 설정화면으로 이동한다. Advanced Frequency Settings를 눌러 안으로 들어간다. CPU Core Settings를 눌른다. SVM Mode를 Enabled로 설정하고 부팅한다.
[알고리즘] 짝지어 제거하기
·
알고리즘
문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..
[JavaScript] 제너레이터와 이터레이터
·
JavaScript
1. 제너레이터 함수? ES6에 도입된 제너레이터(Generator) 함수는 이터러블을 생성하는 함수이다. 이전에 사용한 이터레이션 프로토콜을 준수해서 사용자 생성 방식보다 간단하게 이터러블을 구현할 수 있다. 또, 제너레이터 함수는 비동기 처리에 유용하게 사용된다. function* gen() { yield 1; yield 2; yield 3; } const genlter = gen(); console.log(genIter.next()); // {value:1, done: false} console.log(genIter.next()); // {value:2, done: false} console.log(genIter.next()); // {value:3, done: false} console.log(g..