본문 바로가기

전체 글

(348)
[TS] TS Doc Handbook 1회독 - 4 Object Types익명 또는 interface와 type을 사용해서 네이밍을 해서 타입으로 사용할 수 있다. 정리 노트 property modifiersoptional propertiesstrictNullChecks 옵션을 사용하면 옵셔널 속성의 경우 undefined가 될 수 있음을 알려준다. 주의 사항// 아래 코드와 같이 destructuring pattern을 사용한 경우에는// 내부에 따로 type을 작성할 수 없다.// 왜냐하면 이미 js에서 사용되는 문법이니까function draw({ shape: Shape, xPos: number = 100 /*...*/ }) { render(shape); // Cannot find name 'shape'. Did you mean 'Shape'? ..
[TS] TS Doc Handbook 1회독 - 3 More on Functions함수 타입 표현식type Function = (a: string) => void;(매개변수: 타입 default any) => 반환타입 // 호출 시그니처type Function = { description: string; (someArg: number): boolean;};함수 내부 프로퍼티의 경우 함수 타입 표현식으로는 불가능하기에 객체 타입으로 표현한다.// 구성 시그니처type Constructor = { new (s: string): SomeObject;};생성자 함수의 경우 new 키워드를 사용한다. 제네릭 함수// 이 메인function firstElement(arr: Type[]): Type | undefined { return arr[0];}// 타입..
[글 읽기] JS Runtime Deno Deno가 Node.js를 대체할 수 있을까?, 김승빈, 2025.02.28 javascript runtime은 node.js가 대세인 줄 알았지만 위 글을 읽고 새로운 runtime이면서 node.js의 개발자가 문제점을 수정하려고 새로 만들어가는 runtime에 대해 알게 되었습니다. 처음 접해본 내용에 저는 몹시 흥미를 느꼈고, 글을 다 읽고 나서는 지금 당장은 아니더라도 업데이트가 되면 될수록 deno가 사랑받을 수 있겠다는 생각이 들었습니다. 추가적으로 글을 읽고 ranking이 궁금해 찾아보았습니다. Best of JS라는 사이트에서 찾게 되었고, 별 개수로 따졌을 때이지만 상위 2위에 올라있고, 3위인 Bun과 다르게 1위인 node.js와 크게 차이 나지 않는다는 점에서 관심을 더 가지게 ..
[백준] 티어가 어떻게 되는거여? 백준을 풀면 다들 문제가 무슨 티어냐?라는 말을 많이 사용합니다. 그리고 문제를 보면 옆에 티어와 함께 숫자가 나타나 있습니다.백준 문제를 들어가면 위 사진처럼 티어의 색깔과 티어 숫자 그리고 문제의 숫자가 나와있습니다. 티어를 나눠두어 쉬운 문제와 어려운 문제를 구분하고, 처음 문제를 접하거나 공부를 시작할 때 쉬운 문제부터 차근차근 풀어나갈 수 있습니다. 하지만 티어를 모르면 어떤 문제가 어려운지 쉬운지 알 수가 없으니 간단히 알아보겠습니다. 각 티어마다 1~5까지의 숫자가 있고 숫자가 작아질수록 난이도가 올라갑니다. 예를 들어, 티어 1 문제가 티어 5 문제보다 어렵습니다. 루비(Ruby) 티어: 가장 높은 티어입니다. 다이아(Diamond) 티어 플레티넘(Platinum) 티어 골드(Gold) 티..
[백준] 2373번 새로운 경험 플레티넘1 https://www.acmicpc.net/problem/2373 아직 많이 부족한 상황에서 플레티넘1 문제를 보게 되었고, 결과는 실패했습니다. 다음 문제로 넘어가기 전 풀이를 찾아봤습니다. 결과적으로는 게임 이론 중에서 존재하는 스프라그-그런디 정리(Sprague-Grundy theorem)를 활용하면 쉽게 풀 수 있다고 한다. 처음 들어보는 정리였고 쉽지 않은 이론이기에 따로 학습은 하지 않고 이런 게 있구나 하고 알아두고 문제는 나중에 골드를 스무스하게 풀 수 있게 된다면 그때 다시 접근해 보겠습니다. 플레티넘 문제는 처음 접해봤지만, 플레티넘부터는 확실히 기본 이상의 알고리즘에 대한 지식이 있어야 쉽게 접근하는 것 같습니다. 추가적으로 접근하게 된 계기는 문제 번호를 잘못 입력했습니다...ㅎㅎ ..
[Git] remote branch to local in Git 방법1 - pullgit checkout 로컬브랜치git pull origin 로컬브랜치 git pull 명령어는 원격(remote)에 있는 브랜치를 로컬 브랜치에 병합(merge)하는 방법입니다. 해당 방법을 사용하면 원격 브랜치에 있는 커밋 내용을 전부 가져와서 병합하는 과정이 있습니다. 방법2git checkout -b / git checkout -b 명령의 경우 새로운 브랜치를 만들고 해당 브랜치로 이동합니다. 그 뒤에 /까지 붙여서 사용하면 원격에 있는 브랜치를 추적하는 새로운 브랜치를 만듭니다. 두 방법을 사용하면 원격에 있는 브랜치를 로컬로 가져올 수 있습니다. 하지만 둘의 목적을 나눠서 사용하면 더 좋습니다. 방법1의 경우 기존에 원격 브랜치를 추적하는 로컬 브랜치가 있고 해당 브랜..
[TS] TS Doc Handbook 1회독 - 2 좁히기(Narrowing)typeof 키워드를 사용한 타입 가드 TS 내부에서 !!로 true/false 값을 받는 경우 type은 boolean이 아닌 리터럴 타입이 된다.// both of these result in 'true'Boolean("hello"); // type: boolean, value: true!!"world"; // type: true, value: trueTruthiness narrowingnull은 js의 오류로 인해 typeof 키워드를 사용하면 'object'입니다. 그렇기에 narrowing을 하기위해서는 truthy 검사를 사용합니다. 하지만 falsy한 값에는 ''(빈 문자열), 0, null, undefined, 0n, NaN이 있는데 잘못 사용하면 ''(빈 문..
[알고리즘] 에라토스테네스의 체 사용 이유 백준 1644번 문제를 풀다가 여러 소수를 구해야 하는 과정이 있었는데, trial division 방식으로 isPrime 함수를 만들어 문제를 해결했습니다. 그런데 에라토스테네스의 체를 사용하는 방법이 더 효율적이라 왜 그런지 찾아보며 과거에 작성한 글에 대해 보충을 하겠습니다. [알고리즘] 에라토스테네스의 체(소수 판별)소수 판별 알고리즘으로 n까지의 소수를 구하고 싶다면 자기 자신을 제외한 소수의 배수를 지워나가는 방법을 의미합니다.function primeNumberSieve(n) { const area = new Array(n + 1).fill(false); const result = [];nulzi-dev.tistory.com▲과거 작성된 글 에라토스테네스 체는 한 번 동작시키는 것으로 2~n..