전체 글 30

[TIL - 3주차] 서버와 클라이언트간의 웹 통신

서버와 클라이언트간의 웹 통신은 HTTP프로토콜을 기반으로 요청(request)-응답(response) 패턴으로 이루어집니다. 통신 순서1. 클라이언트가 요청 생성(HTTP request)예를 들어 사용자가 도메인 이름(e.g. www.naver.com)을 입력하는 순간, 서버에 HTTP 요청을 보냅니다. 이 요청은 URL, 메서드(GET, POST 등 요청의 유형을 담고있는 정보값), 헤더, 쿠기, 바디 등의 정보를 담고있습니다.서버에 보내는 HTTP요청과는 별개로, 해당 도메인 이름(www.naver.com)이 어느 IP주소인지 알기 위해, DNS(Domain Name System)질의를 통해 이 도메인 이름에 맞는 IP값을 얻어냅니다. 이를 통해 IP값을 얻어내기 전까지는 HTTP request를..

[TIL - 2주차] 서버의 가상화

서버의 가상화란, 물리 서버에 서로 독립된 OS와 애플리케이션을 가동시켜서 가상 서버를 구축하는 기술을 말합니다.원래라면 물리적인 서버 하나 당 하나의 OS만 구축할 수 있지만, 가상화를 통해 물리적인 서버 하나로도 여러 OS를 구축하여 독립적으로 사용할 수 있게됩니다. 용어 정리가상 머신(=게스트 OS): 서버 가상화를 구현했을 때의 가상 서버로, Virtual Machine(VM)이라고도 합니다.물리 머신(=호스트 OS): 서버 가상화를 실현한 물리 서버를 말합니다. 내 PC로 VM Ware등의 하이퍼 바이저를 통해 가상 환경을 만들면, 내 PC가 호스트가 됩니다.가상화 레이어(=하이퍼 바이저): 서버 가상화를 실현하는 소프트웨어로, VM Ware, Virtual Box와 같은 SW들을 말합니다. 서..

[TIL - 2주차] 이중화 기술

이중화(Redundancy): 장비를 여러 대 병렬로 배치하여 장애에 대비하는 기술입니다.부하 분산(Load Balancing): 늘어나는 트래픽의 처리를 더 효과적으로 하는 것입니다.이중화는 장애 대응이 1차적인 목표인 반면, 부하 분산은 트래픽 처리가 1차적인 목표입니다. 본 포스팅에서는 이중화를 중점적으로 살펴보겠습니다. 이중화 - 듀얼 시스템과 듀플렉스 시스템이중화 기술은 보통 두 가지 패턴(듀얼 시스템, 듀플렉스 시스템)으로 나뉩니다. 듀얼 시스템(Dual System, Active-Active): 두 시스템이 동시에 활성화되어 같은 작업을 병렬로 처리하고, 작업의 처리 결과를 서로 검증하는식으로 동작합니다.듀플렉스 시스템(Duplex System, Active-Standby): 두 시스템을 준..

[TIL - 1주차] 파일 디스크립터(File Descriptor)

파일 디스크립터는 파일을 열 때 반환되는 고유한 값으로, 이 값을 통해OS는 파일의 위치나 상태, 열린 모드 등을 추적할 수 있으며,사용자 프로그램은 파일을 읽고 쓰거나 네트워크 통신을 할 수 있습니다. 파일 디스크립터가 사용되는 경우파일을 열 때: 사용자가 파일을 열 때, OS에 시스템 콜(open())을 보내어 파일을 여는데, 이 때 OS는 값(파일 디스크립터)을 반환합니다. 이 때 반환되는 값은 열린 파일을 식별할 수 있는 고유한 정수값입니다. 각각의 프로세스는 자신만의 파일 디스크립터 테이블을 가지고있으며, OS는 각 프로세스의 테이블을 통해 해당 프로세스의 테이블 안에있는 디스크립터들이 가리키는 파일 정보를 추적할 수 있게됩니다. 파일을 읽거나 쓸 때: 파일을 연 후에, 파일 디스크립터를 통해..

[ML] 하이퍼 파라미터 최적화

하이퍼 파라미터를 최적화하고자 할 때, 가장 쉽게 떠올릴 수 있는 방법은 Grid Search, Random Search 정도가 있을 것입니다.하지만 위 두 가지 방법은 탐색해야할 하이퍼 파라미터의 양이 늘어남에 따라 점점 비용이 많이 들게되고, 효율 또한 좋지 않습니다. Beyesian OptimizationBeyesian Optimization(베이지안 최적화)는 Grid Search, Random Search에 비해 효율적으로 최선의 답에 근접한 하이퍼 파라미터 조합을 찾을 수 있도록 해줍니다. Grid Search나 Random Search는 '근거 없이' 하이퍼 파라미터 조합을 찍고, 그 중 가장 최적의 하이퍼 파라미터 조합을 뱉어내는 방식이라면, 베이지안 최적화는 '근거 있게' 하이퍼 파라미터..

AI 2025.06.27

[NLP] 문서 검색에서의 Negative Sampling과 In-Batch Negative

Negative Sampling문서 검색 Task에서 Negative Sampling이란, 관련없는 문서에 '대해 관련이 없는 문서'라는 것을 학습시키는 것입니다.Positive Sample이 특정 쿼리와 관련성이 있음과 더불어, 관련성이 없는 문서(Negative Sample)에 대해서도 추가적으로 학습시켜 모델의 성능을 더 이끌어낼 수 있게 됩니다. In-Batch NegativeIn-Batch Negative는 메모리 절약 및 효율적인 학습을 위해 사용하는 Negative Sampling기법 중 하나입니다.배치 내의 문서들을 통해 음의 샘플을 '자동으로' 생성합니다. 즉 배치 내에서 Positive Sample이 아닌 다른 Sample은 모두 (자동으로)Negative Sample로 취급합니다.자..

AI 2025.06.19

[AI] Neural Network에서 Activation이 필요한 이유

Neural Network에서 Activation이 필요한 이유를 단순하게 말하면, 모델이 더 복잡한 표현에 대해서도 학습할 수 있고, Decision Boundary를 만들어낼 수 있기 위함이며, Activation이 없이 Layer를 아무리 쌓는다고 해도 결국 단일한 Linear Layer이기 때문이라고 할 수 있습니다. 이에 대해 좀 더 구체적으로 알아보겠습니다. Affine Transformation(아핀 변환)모델의 출력값은 y_hat = Wx + b로 나타낼 수 있으며, 이는 Affine Transformation의 일반적인 형태입니다. Affine Transformation은 선형 변환 W과 평행 이동 b의 결합으로, 공간을 회전, 확대, 축소 또는 평행 이동시킵니다.이 과정은 입력 벡터가 ..

AI 2025.05.31

[Word2Vec] Word에 대한 Embedding 만들기

Word2Vec에서 단어는 Dense Vector(=Distributed Vector)로 표현되며, 이는 여러 차원의 값들이 0이 아닌 값으로 채워져 있는 벡터입니다. 이러한 벡터를 사용하면 코사인 유사도, 유클리드 거리, 내적 등을 통해 단어 간 의미적 유사성을 표현할 수 있습니다.그중 Word2Vec은 Word를 Dense한 Vector로 표현하는 대표적인 방법으로, CBOW방식과 Skip gram방식으로 나뉩니다.CBOW와 Skip-Gram방식이 각각 어떤 방식인지는 아래 포스팅에 다루어두었습니다.https://dailyreord.tistory.com/48 [NLP] Embedding이란? & Text데이터의 Embedding(Word, Sentence)Ref : https://wikidocs.ne..

AI 2025.03.19

[인프런 워밍업클럽(자구알)] 연결리스트, 스택, 큐

(실습은 파이썬으로 진행하였습니다.)연결리스트 왜 쓰나요?배열은 인덱스를 기반으로 값을 참조할 때 시간복잡도가 낮다는 장점(O(1))이 있습니다. 그러나 시작할 때 얼만큼의 메모리 공간이 필요한지 미리 설정해두고, 그만큼만 써야한다는 단점과 더불어, 배열 중간에 값을 삭제하거나 추가할 경우 한칸씩 밀거나 당겨야하므로 값의 삭제나 추가 시 번거로워진다는 단점이 있습니다. 이를 해소하는것이 연결리스트입니다. 파이썬, JS의 리스트와 일반적인 배열이 다른 점파이썬의 리스트나, JS의 배열은 C언어 등 일반적인 배열과 다릅니다. 일반적인 배열의 경우 정적인(static) 배열로, 크기가 고정되어있으며 같은 타입의 데이터만 저장할 수 있습니다. 또한 메모리가 연속적이어서 배열의 첫 번째 주소만을 이용하여 다른 인..

Develop 2025.03.17