as const는 TypeScript에서 리터럴 타입 추론을 위해 사용하는 구문입니다. 이를 통해 객체, 배열, 문자열 등의 값을 "읽기 전용"으로 설정하고, 그 값을 리터럴 타입으로 좁힐 수 있습니다.1. as const의 역할as const는 TypeScript에서 다음과 같은 역할을 합니다:리터럴 타입 추론:기본적으로 TypeScript는 값을 더 일반적인 타입으로 추론합니다.as const를 사용하면 값을 리터럴 타입으로 추론하도록 강제합니다.읽기 전용(readonly)로 설정:as const를 사용하면 객체나 배열의 모든 속성을 읽기 전용(readonly)으로 설정합니다.2. 예제a) 기본 값 추론과의 차이const value = "hello"; // TypeScript는 value를 strin..
abstractabstract 키워드를 사용한 클래스는 추상 클래스라고 하며, 다음과 같은 특징과 목적을 가지고 있습니다.1. 인스턴스화가 불가능추상 클래스는 직접 인스턴스화할 수 없습니다. 즉, new 키워드로 객체를 생성할 수 없습니다. 오직 다른 클래스가 이를 상속하고 구체적인 구현을 제공할 때만 인스턴스를 만들 수 있습니다. abstract class Animal { abstract makeSound(): void; // 추상 메서드 move(): void { console.log("Moving..."); } } const animal = new Animal(); // 오류 발생: 추상 클래스는 인스턴스화할 수 없습니다.2. 추상 메서드 포함 가능추상 클..
sudo lsof -i :5432sudo kill -9
{ "workbench.iconTheme": "material-icon-theme", "workbench.colorTheme": "Default Dark Modern", "editor.linkedEditing": true, "cSpell.diagnosticLevel": "Hint", "workbench.colorCustomizations": { "[Default Dark Modern]": { "activityBarBadge.background": "#2979FF", "activityBar.activeBorder": "#2979FF", "list.activeSelectionForeground": "#2979F..
Math.sin, cos, tan이전에 작성했던 Three.js 코드 중에 이해가 안되고 넘어간 부분이 있어 정리합니다.문제의 코드는 다음과 같습니다.// 오브젝트02 서서히 올라갔다 내려갔다octaAnimation() { if (this.objGroup && this.objGroup.getObjectByName('object02')) { const to = this.objGroup.getObjectByName('object02'); if (to) { to.rotation.y += 0.001; to.position.y = -9 + Math.sin(Date.now() / 1000) * 1; } }}그냥 매우 간단한 수학(Math.sin)을 이용한 것이지만바로 이해가 ..
*임시방편임 pnpm install 시 pnpm-lock.yaml 이 자꾸 바뀔때 pnpm i --frozen-lockfile --no-verify-store-integrity
문제 분석문자열 s에서 각 문자에 대해 문자 t와의 최소 거리를 구하는 문제입니다. 문자열의 길이는 최대 100으로 제한되므로, O(n^2)의 알고리즘도 사용할 수 있습니다. 다만, 더 효율적인 방법을 찾을 수 있다면 좋습니다.풀이법 1: 이중 루프 사용const arr = str.split('');let answer = [];for (let i = 0; i 풀이 설명각 문자에 대해 t의 위치를 기준으로 모든 거리 차이를 구합니다.Math.abs(j - i)를 사용해 각 t와의 거리를 배열 distance에 저장합니다.distance 배열에서 최소값을 찾아 answer 배열에 추가합니다.시간 복잡도바깥쪽 루프(for i)는 n번 실행되고, 내부 루프(for j)도 n번 실행되므로, 총 시간복잡도는 O(n..
Docker는 컨테이너 기술을 활용하여 애플리케이션과 그 종속성을 격리된 환경에서 실행할 수 있도록 해주는 오픈 소스 플랫폼입니다. 이를 통해 개발, 테스트, 배포 과정에서 일관된 환경을 제공하고, “한 번 빌드하면 어디서든 실행 가능”한 형태를 구현할 수 있습니다. 1. Docker의 기본 개념컨테이너(Container): 애플리케이션과 그에 필요한 라이브러리, 종속성을 모두 하나의 패키지로 묶어 격리된 환경에서 실행할 수 있는 단위를 의미합니다. 가상머신과 유사하지만, 컨테이너는 운영체제 수준에서 격리되므로 가상머신보다 더 가볍고 효율적입니다.이미지(Image): 컨테이너를 실행하기 위한 모든 요소(코드, 런타임, 라이브러리 등)를 포함한 읽기 전용 템플릿입니다. 이미지는 컨테이너를 생성하는 기반이 ..
CD/CDCI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment) 또는 지속적 전달(Continuous Delivery)을 의미하며, 소프트웨어 개발 및 배포 프로세스를 자동화하여 코드 품질을 유지하고 더 빠르게 배포할 수 있도록 도와주는 핵심 개념입니다. 실무에서 CI/CD는 보통 버전 관리 시스템(GitHub, GitLab 등)과 연계하여 사용됩니다. 1. CI(Continuous Integration)정의: 개발자들이 각자 작업한 코드를 주기적으로 중앙 저장소에 병합하는 과정. 이때 코드를 병합할 때마다 자동으로 테스트와 빌드가 실행됩니다.목표: 코드가 항상 최신 상태로 유지되고, 각자 개발한 코드가 제대로 동작하는지를 지속적으로 확..
블로그 그냥 만들어도되고 이전해도 되고 한데쓰던거 귀찮아서 그냥 쓰고 있었다. 그런데 자꾸 광고를 누르고 간다는 사람들이 있어서웬 광고 하고 있었는데 알고보니 모바일웹에서 티스토리 자체 배너광고가 돌고 있었다. 스킨 업로드로 간단히 display: none 해봤는데/m에는 커스텀 스킨이 적용이 안되고 있었다.딱 보고 그것도 못알아차리다니 실격이다 실격... 암튼 그래서 그냥 설정에서 모바일웹 자동연결 꺼봤더니 사라졌다... 별 어이없는 일이 다있다