abstractabstract 키워드를 사용한 클래스는 추상 클래스라고 하며, 다음과 같은 특징과 목적을 가지고 있습니다.1. 인스턴스화가 불가능추상 클래스는 직접 인스턴스화할 수 없습니다. 즉, new 키워드로 객체를 생성할 수 없습니다. 오직 다른 클래스가 이를 상속하고 구체적인 구현을 제공할 때만 인스턴스를 만들 수 있습니다. abstract class Animal { abstract makeSound(): void; // 추상 메서드 move(): void { console.log("Moving..."); } } const animal = new Animal(); // 오류 발생: 추상 클래스는 인스턴스화할 수 없습니다.2. 추상 메서드 포함 가능추상 클..
전체 글
아무튼개발자되고싶어요...{ "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)을 이용한 것이지만바로 이해가 ..
문제 분석문자열 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에는 커스텀 스킨이 적용이 안되고 있었다.딱 보고 그것도 못알아차리다니 실격이다 실격... 암튼 그래서 그냥 설정에서 모바일웹 자동연결 꺼봤더니 사라졌다... 별 어이없는 일이 다있다
CORS? SOP?1. SOP(동일 출처 정책, Same-Origin Policy)웹 보안 모델의 핵심으로, 다른 출처의 리소스에 대한 접근을 제한브라우저에서 실행되는 JavaScript가 다른 출처의 API나 리소스에 접근하지 못하도록 함동일 출처의 정의: 프로토콜, 호스트, 포트가 모두 같은 경우 참고링크SOP의 목적: 악의적인 스크립트가 민감한 정보에 접근하는 것을 방지하기 위함2. CORS(교차 출처 리소스 공유, Cross-Origin Resource Sharing)SOP의 제한을 일부 해제하기 위한 보안 정책서버측에서 특정 출처에 대한 접근을 허용할 수 있게 해줌동작방식:클라이언트 측 요청: 요청이 발생할 때 브라우저는 요청이 안전한지 확인하기 위해 CORS 확인서버 측 응답: 특정 클라이언트..