About
Book
Github
개발기
About
Book
Github
개발기
k-최근접 이웃 (k-NN) 알고리즘
v1 개정 2025.07.04
AI
#
KNN
2025.06.08
· Updated 2025.07.04
0. 들어가며
k-최근접 이웃 알고리즘
(k-Nearest Neighbors; k-NN)은 가장 간단한 기계 학습 알고리즘 중 하나입니다.
Loading comments...
0
0
0. 들어가며
관련 포스트
자바스크립트에서 NaN은 대체 뭐하는 녀석일까?
1. 들어가며 자바스크립트의 NaN은 ‘Not-a-Number’라는 의미입니다. 즉 ‘숫자가 아님’이란 뜻인데, 막상 typeof NaN을 찍어보면 number 가 출력됩니다. 이 혼란스러운 결과로 인해 개발자들 사이에서는 이를 비꼬는 밈들이 생겨났습니다. 자바스크립트에서는 왜 이런 어처구니없는 결과가 나올까요? 2. 자바스크립트에서 “숫자”는 무엇인가? NaN에 대해서 알아보기 위해 앞서, 일단 자바스크립트에서 “숫자”가 정확히 어떻게 정의되어 있는지 알아봅시다. ECMAScript 사양에 따르면 숫자는 단 하나의 Number Type 으로 표현됩니다. int, long, float, double과 같이 정수/실수, 크기 등에 따라 숫자 타입이 구분되어 있는 다른 언어와는 다르죠. 또한, 자바스크립트
프론트엔드
-
JavaScript
#
자바스크립트
2025.05.12
· Updated 2025.05.17
Detail
데드락
교착 상태(Deadlock) 일련의 프로세스가 서로가 이미 가지고 있는 자원을 기다리면서 block되어 있는 상태 데드락 발생의 네 가지 조건 상호배제: 매 순간 하나의 프로세스만 자원을 사용할 수 있음 비선점: 프로세스가 자원을 강제로 빼앗기지 않고 스스로 내어놓음 점유 대기 : 자원을 가진 프로세스가 다른 자원을 기다릴 때 보유한 자원을 내놓지 않고 계속 가짐 순환 대기 : 자원을 기다리는 프로세스 간에 사이클이 형성되어야 함 자원 할당 그래프 사이클이 생기면 Deadlock 근데 자원 안의 instance의 개수가 중요한데, instance의 개수가 여러 개면 데드락이 발생하는지 따져봐야함 데드락의 처리 방법 Deadlock Prevention 데드락을 미연에 방지하는 방법 중 Prevention은 가
Computer Science
-
OS
#
OS
2024.12.31
· Updated 2025.01.01
Detail
CPU 스케줄링
CPU 스케줄링은 CPU와 I/O 버스트의 개념을 다루며, 다양한 스케줄링 알고리즘(FCFS, SJF, Priority Scheduling, Round Robin 등)을 통해 프로세스의 효율적인 실행을 목표로 한다. 각 알고리즘은 대기 시간, 응답 시간, 처리량 등을 최적화하는 방식으로 작동하며, 멀티레벨 큐와 피드백 큐를 통해 프로세스의 우선순위를 조정할 수 있다.
Computer Science
-
OS
#
OS
2024.12.25
· Updated 2024.12.31
Detail
입출력 시스템
디스크 구조 디스크는 대용량 데이터를 영구적으로 저장하는 대표적인 저장 장치입니다. 이차 메모리라고도 합니다. 디스크의 물리적 구조 HDD는 여러 개의 자기 디스크 플래터로 구성되며, 각 플래터는 양면에 데이터를 저장할 수 있습니다. 플래터는 고속으로 회전하며, 데이터를 읽고 쓰기 위해 디스크 헤드(head)가 움직입니다. 디스 크의 주요 구성 요소 플래터(Platter) 트랙(Track) 섹터(Sector) 실린더(Cylinder) 디스크 헤드(Head) 암(Arm) 스핀들(Spindle) 디스크의 논리적 구조 운영 체제는 디스크의 물리적 구조를 기반으로 데이터를 저장하고 관리합니다. 디스크의 논리적 구조는 블록 단위로 데이터를 관리하며, 블록은 디스크의 섹터와 관계됩니다. 블록(Block) 파일 시스템(F
Computer Science
-
OS
#
OS
2025.01.08
· Updated 2025.01.08
Detail
자바스크립트 호이스팅 톺아보기
0. 들어가며 0.1. 자바스크립트 호이스팅이란 무엇일까? 위 그림은 산업 또는 건설 현장에서 사용되는 호이스트(Hoist)입니다. 주로 엄청나게 무거운 사물을 들어올릴 때 사용되죠. 또한, hoist라는 단어는 ‘끌어올리다’라는 의미를 가지고 있습니다. 자바스크립트만의 독특한 특징 중 하나로 호이스팅 (Hoisting)을 꼽을 수 있습니다. 호이스팅이란 변수나 함수 선언문이 코드의 상단으로 끌어 올려진 것처럼 동작하는 현상 을 말합니다. 호이스팅의 감을 잡기 위해, 일반적인 언어와 자바스크립트에서 동일한 코드를 실행했을 때의 차이를 먼저 살펴보겠습니다. 0.1.1. 일반적인 프로그래밍 언어에서는? 일반적인 언어에서는 선언하지 않은 변수를 사용하면 즉시 오류가 발생 합니다. 예를 들어, 다음과 같은 자
프론트엔드
-
JavaScript
#
자바스크립트
2025.02.02
· Updated 2025.04.20
Detail
Traveling Salesman Problem (외판원 문제)
외판원 문제란? 외판원 문제(Traveling Salesman Problem; TSP)는 컴퓨터 과학 및 수학 분야에서 잘 알려진 조합 최적화 문제입니다. 이 문제의 핵심은 주어진 각 도시(노드)를 정확히 한 번만 방문하고 시작 도시로 돌아가는 가능한 최단 경로를 찾는 것 입니다. 이때, A도시에서 B도시로 가는 거리(d)는 가중치가 존재합니다. 문제의 경우에 따라서 시작점으로 돌아가지 않을 수도 있는데, 이 제약 조건이 없다고 해도 계산 복잡도는 변하지 않습니다. 어쨌든 TSP는 대표적인 NP-난해(NP-hard) 문제로 모든 문제에 대해서 다항식 시간에 해결할 수 있는 알려진 알고리즘은 없습니다. 대신 작은 N의 경우(일반적으로 N ≤ 16) 에는 분기한정법(Branch and Bound; B&B
알고리즘
#
TSP
#
해밀턴 경로
#
그래프
2025.01.20
· Updated 2025.02.03
Detail
© Churnobyl 성철민
Contact: tjdcjfals@gmail.com