본문 바로가기

분류 전체보기

(238)
TypeScript [keyword : infer] type Flatten = Type extends Array ? Item : Type; type Flatten2 = Type extends any[] ? Type[number] : Type; let a :Flatten let b :Flatten2 let a2 :Flatten let b2 :Flatten2 reference https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#inferring-within-conditional-types
JavaScript [파일 : package.json vs package.lock.json] package-lock.json이 필요한 이유 전에는 이런것이 있구나 하고 대충만 알고 넘겼는데 이번 기회에 package-lock.json 파일이 왜 생겼는지 찾아 보았습니다. package-lock.json 파일이란? package-lock.json 파일은 npm을 사용해서 node_modules 트리나 package.json 파일을 수정하게 되면 자동으로 생성되는 파일입니다. 이 파일은 파일이 생성되는 시점의 의존성 트리에 대한 정확한 정보를 가지고 있습니다. 예시코드 { "name": "typeclient", "version": "0.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "typeclient", "ver..
프로그래머스 [공부 : 다리를 지나는 트럭] 다리를 지나는 트럭 내가 처음 푼 풀이 Logic 1. 다리위에 트럭들의 총무게가 다음 트럭도 감당할 수 있으면 트럭이 올라가고 2. 1의 조건에 만족하지 않으면 조건에 만족 할때까지 다음 트럭은 기다리고 3. 기다리는 트럭이 전부 다리위로 올라가면 4. 마지막 트럭이 올라간 시간 + 다리에서 내려가는데 걸리는 시간이 모든 트럭이 내려오는 시간 function solution(bridge_length, weight, truck_weights) { // 다리 위의 트럭 정보 let onBridge_Arr = Array(bridge_length).fill(0); // 걸리는 시간 let time = 0; let i = 0; // 트럭이 전부 지나갈때 까지 반복 while (i < truck_weights.l..
코드잇 [node.js: 모듈이란?] 모듈(module)이란? 전체를 이루는 부품 하나하나 JavaScript 파일하나를 모듈이라고 할수 있음 프로그램은 그런 모듈들이 모여서 생성된것 다른 파일에 있는 함수를 사용하려면 모듈을 로드해야함 export() // math-tools.js function add(a,b) { return a + b } export.add = add; require() // main.js const m = require('./math-tools.js') console.log(m.add(1,2)); // 3 require()는 모듈을 로드해서 객체 1개를 리턴합니다. 1. 모듈의 확장자인 .js를 꼭 붙이지 않아도 됨 main.js 모듈에서 math_tool.js 모듈을 로드할 때 const m = require('...
Algorithm[공부 : 교점에 별만들기 ] 교점에 별 만들기 문제 설명 Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다. 예를 들어, 다음과 같은 직선 5개를 2x - y + 4 = 0 -2x - y + 4 = 0 -y + 1 = 0 5x - 8y - 12 = 0 5x + 8y + 12 = 0 좌표 평면 위에 그리면 아래 그림과 같습니다. 이때, 모든 교점의 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4), (1.5, 1.0), (2.1, -0.19), (0, -1.5), (-2.1, -0.19), (-1.5, 1.0)입니다. 이 중 정수로만 표현되는 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4)..
코드잇 [node.js: 시작하기] Node.js란? Node.js는 자바스크립트를 실행할 수 있는 환경이다. (Django같은 프레임워크는 아님) 라이언 달(Ryan Dahl)이라는 사람이 기존의 서버용 프로그램들의 단점을 극복하기 위해 만들었다. Node.js를 배우면 자바스크립트 이외의 언어를 몰라도 하나의 전체 웹 서비스를 만들 수 있다는 장점이 있다. Node.js는 자바스크립트의 실행환경일 뿐, 프로그램의 구조가 미리 고정되어 있어서 특정 부분만 채워넣어주면 되는 Django 같은 프레임워크와는 차이가 있습니다. Django로 개발을 하면 MVT라는 패턴 내에서 개발을 해야하지만, Node.js는 프로그램 내부의 전체 구조를 개발자 본인이 직접 설계해야 합니다. Node.js의 버전 중에는 LTS(Long Term Support..
Algorithm[공부 : 행렬 테두리 회전하기 ] 문제 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이 있는 영역은 회전..
JavaScript [스코프 : 함수스코프 vs 블록스코프] 스코프(scope) 변수에 접근할 수 있는 범위 전역 스코프(global)는 어디에서든 해당 변수에 접근 가능한 걸 의미한다. (전역변수) 지역 스코프(local)의 경우, 한정적인 범위에서 해당 변수에 접근이 가능하다. (지역변수) 지역 스코프에는 함수 스코프와 블록 스코프가 있음 변수에 접근할 수 있는 범위 컨텍스트(context) this 키워드 값이 무엇인지를 나타내는 용어 현재 실행 컨텍스트 내에서 어떤 객체를 참조하고 있는지를 의마한다. 컨텍스트는 객체를 기반으로 한 용어이다. # 함수스코프 자바스크립트는 기본적으로 함수 스코프를 따르는 언어 새로운 함수가 생성될때마다 새로운 스코프 형성 - 함수 안에 선언한 변수는 해당 함수 안에서만 접근할 수 있음 if(ture) { var variable..