주요 개념 싱글 쓰레드(Single Thread) 비동기(Asynchronous) JavaScript는 싱글 쓰레드(Single Thread) 언어이다. 한 번에 하나의 작업만 수행이 가능하다는 의미로 받아들일 수 있다. 하지만 우리가 사용하는 웹 페이지에는 여러 컴포넌트들과 기능들이 동시다발적으로 수행되고 있다. 이는 JavaScript는 메인 쓰레드인 이벤트 루프가 싱글 쓰레드이기 때문에 이렇게 불리지만 결국 실행한 후(런타임)에는 NodeJS와 같은 멀티 쓰레드 환경에서 구동되므로 동시다발적으로 여러 동작이 가능하다. 기존의 동기식 요청은 인터프리터 언어이므로 위에서 차례대로 수행된다. 앞에서 연산이 오래 걸리는 작업을 수행하고 뒤에 금방 끝날 수 있는 연산을 계속 미루게 되면 리소스의 낭비가 있어..
주요 개념 자연어 처리 코사인 유사도(Cosine Similarity) 유클리드 거리(Euclidean distance) 코사인 유사도(Cosine Similarity)는 내적 공간의 두 벡터 간 각도의 코사인 값을 이용하여 측정된 벡터 간의 유사한 정도를 의미한다. 각도가 0°일 때의 코사인 값은 1이고 이외 다른 모든 각도의 코사인 값은 1보다 작다. 이 값은 벡터의 크기가 아닌 방향의 유사도를 판단하는 목적으로 사용되며, 두 벡터의 방향이 완전히 같을 경우 1, 90°의 각을 이룰 경우 0, 180°로 완전히 반대 방향인 경우 -1의 값을 갖는다. 이때 벡터의 크기는 값에 아무런 영향을 미치지 않는다. 코사인 유사도는 어떤 개수의 차원에도 적용이 가능하지만 특히 결과값이 [0,1]의 범위로 떨어지는..
주요 개념최대 우도 추정(Maximum Likelihood Estimation)우도 함수(Likelihood Function) 최대 우도(Maximum Likelihood)란 도출된 결과의 각 가설마다 계산된 가능도(우도) 값 중 가장 큰 값을 말한다. 즉 발생할 확률이 가장 큰 가설이라 할 수 있다. 하지만 만약 모수가 알려지지 않은 어떤 \( \theta \)인 확률분포가 있다면 여기서 뽑은 표본들을 이용해 \( \theta \)를 추정할 수 있다. 이를 최대 우도 추정(Maximum Liklihood Estimation, MLE)라고 한다. 우도 또한 정확한 수치가 아닌 추정에 가깝기 때문에 이러한 방식을 적용하기에 적절하다 볼 수 있다. 가장 대표적인 예시인 동전던지기를 예를 들어보자. 만약 10..
주요 개념 원시 타입(Primitive Type) 참조 타입(Reference Type) 깊은 복사(Deep copy) 얕은 복사(Shallow copy) JS에는 원시 타입(Primitive Type)과 참조 타입(Reference Type)이 있다. 1. 원시값 Number String Boolean Null Undefined 2. 객체(참조)값 Object Symbol 원시 타입인 숫자, 문자열, 논리형, 널, 언디파인드 다섯 가지를 제외한 모든 값은 객체(참조) 타입이다. 참조 타입이라고 불리는 이유는 객체의 모든 연산이 실제 값이 아닌 참조값으로 처리되기 때문이다. 이름에서 알 수 있든 원시 타입은 값 자체를 복사하여 사용한다. 그렇기 때문에 어떠한 변수를 복사하고 나서 원본에 해당하는 변수를 ..