전체 글 176

HTTP 완벽 가이드 (11) : 클라이언트 식별과 쿠키

draw io 링크https://drive.google.com/file/d/1NZfjJ4QznXf5kasNnzXIFe3CnFZOHWG9/view?usp=sharing 11장.drawio drive.google.com 클라이언트 식별과 쿠키HTTP 특징무상태요청과 응답으로 통신개인화된 서비스를 제공하고 싶은 웹 사이트들개별 인사사용자 맞춤 추천저장된 사용자 정보세션 추적무상태, 독립적으로 일어나는 각 요청 및 응답사용자와 사이트의 상호작용 → 상태를 남김(쇼핑몰 장바구니 기능)사용자 식별 기술사용자 식별 관련 정보를 전달하는 HTTP 헤더클라이언트 IP 주소 추적사용자 로그인 인증Fat URL - URL + 식별자식별 정보 유지 지속 쿠키HTTP 헤더헤더 이름 헤더 타입 설명From요청사용자의 이메일 주소..

HTTP 2025.03.15

HTTP 완벽 가이드 스터디 (10)

HTTP/2.0 draw io 링크https://drive.google.com/file/d/1qzzyfkMrNJtlUs2aZnaH_RNc-OOwuwJ2/view?usp=sharing배경HTTP/1.1 메시지 포맷→ 구현의 단순성과 접근성에 주안점을 두고 최적화된 프로토콜응답을 받아야만 다음 요청을 보낼 수 있음 → 심각한 회전 latency병렬 or 파이프라인 커넥션이 등장했지만 근본적인 성능 개선 해결책이 되지는 못함.Head Of Line Blocking프로토콜 개선 노력HTTP-NG 프로젝트WAKAMicosoft S+M(Speed + Mobility)구글 SPDYHTTP 재정의고속 HTTP 구현SPDY기존의 HTTP에 속도 개선을 위한 여러 기능을 추가함.헤더 압축을 통한 대역폭 절약하나의 TCP ..

HTTP 2025.03.15

HTTP 완벽 가이드 스터디 (9)

draw io 링크https://drive.google.com/file/d/167HQ62wDCphDnZMXvpzEriPhy1KMUWH3/view?usp=drive_link 웹 로봇 : 연속된 웹 트랜잭션들을 자동으로 수행하는 sw 프로그램크롤러, 스파이더, 웜, 봇루프를 피하기 위한 방문한 곳 흔적 추적복잡한 자료구조 필요 → 검색 트리나 해시 테이블대규모 웹 크롤러가 사용하는 방문 url 관리 기법트리와 해시 테이블느슨한 존재 비트맵공간 사용 최소화 → 존재 비트 배열(1과0만 들어있는 배열) 같은 느슨한 자료 구조각 URL은 해시 함수에 의해 고정된 크기의 숫자로 변환된다.배열 안에 대응하는 존재비트(presence bit)를 갖는다.존재 비트가 이미 있다 → 이미 크롤링된 url체크포인트로봇 프로그..

HTTP 2025.03.10

25 RAG

※ Bhavishya Pandit의 25Types of RAG를 읽고 정리한 글입니다.  https://www.linkedin.com/in/bhavishya-pandit/ Standard RAG참고한 글 https://medium.com/@jalajagr/rag-series-part-2-standard-rag-1c5f979b7a92 RAG Series : Part 2: Standard RAGWhat is Standard RAG?medium.com검색 + LLM문서 청킹실시간 사용을 위한 1~2초 답변 목표외부 데이터 소스 활용 -> 답변 질 향상Corrective RAGhttps://cobusgreyling.medium.com/corrective-rag-crag-5e40467099f8생성된 응답의 에러를..

Tech 2025.03.10

HTTP 완벽 가이드 스터디 (8)

통합점: 게이트웨이, 터널, 릴레이 https://drive.google.com/file/d/1p_Ocnox6-Wwz5rXpOvFV9GeuFUolErQ0/view?usp=sharing게이트웨이 : 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스애플리케이션 인터페이스 : 서로 다른 형식의 웹 애플리케이션이 통신하는 데 사용터널 : HTTP 커넥션을 통해서 HTTP가 아닌 트래픽 전송릴레이 : 일종의 단순한 HTTP proxy. 한 번에 한 개의 홉에 데이터를 전달하는 역할게이트웨이리소스와 애플리케이션을 연결하는 역할동적 콘텐츠 생성데이터베이스 질의 서버 측 : 클라이언트와는 HTTP로 통신하고, 서버와는 외래 프로토콜로 통신한다.클라이언트 측 : 클라이언트와는 외래 프로토콜로 통신하고, 서버와는..

HTTP 2025.03.06

HTTP 완벽 가이드 스터디 (7)

웹 캐시 : 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치캐시가 주는 혜택불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여줌네트워크 병목을 줄여줌. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있게 됨원 서버에 대한 요청 감소, 서버 부하를 줄일 수 있으며 더 빨리 응답할 수 있게 됨거리로 인한 지연 감소복수의 클라이언트가 한 개의 원 서버에 같은 콘텐츠 중복 요청.같은 바이트 반복 이동 → 불필요한 데이터 전송값비싼 네트워크 대역폭을 잡아먹음 / 전송 느려짐 / 웹 서버 부하 발생캐시 이용 : 첫 번째 응답을 캐시에 저장 → 캐시된 사본을 이어지는 똑같은 요청에 대해 응답으로 사용대역폭 병목캐시는 네트워크 병목을 줄여준다.원격 서버보다 로컬 네트워크 클라이언트에 더 넓..

HTTP 2025.03.06

데보션인의 밤 RAG 발표

ppap 서비스에서 RAG 챗봇을 어떻게 구축했는지 발표해달라는 요청이 와서 급하게 발표자료를 만들고 발표했다. https://youtu.be/YKkzNylP65w?si=iWwrNF-u7BTk0JmRKIPS ACK 2024 추계 논문 발표 영상 작년에 했던 논문 발표와 크게 달라진 부분은 없다. 발표자료만 새로 만들었다.  작년 6월에 나온 평가지표를 기반으로 적정성 19개 항목 중 정량적인 부분을 기반으로 평가 자동화를 시도했다. 원한 건 ai한테 문서를 제공하면 ai가 사람이 하듯이 개인정보처리방침을 평가해서 그 결과를 제공하는 형태였다. 처음 멘토님이 제시한 프로젝트의 개요는 단순히 파이썬을 활용한다는 것 뿐이어서, ai 모델을 만들어야 할 것 같다는 생각을 했다. 근데 인공지능 개발 경험이 없는 ..

PPAP 2025.03.05

[리뷰] GPT API를 활용한 인공지능 앱 개발(2판)

한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다.  올해에도 도서 리뷰를 진행하게 되었다. 도서 제목은 GPT API를 활용한 인공지능 앱 개발이다.   실제로 작년 한 해동안 졸업 프로젝트로 GPT API를 활용한 LangChain AI 챗봇 서비스를 만들었었다. 원래 AI는 너무 어렵고 괴롭고 수학 못하는 사람들은 절대 못할것같았다.  100n km 두께의 장벽이 나와 AI 둘 사이에 자리하고 있다 느꼈는데, 그걸 깨준게 바로 Chat GPT의 등장이었다. 물론 ML과 DL을 우습게 봐서는 안된다. 성능 측면에선 오히려 LLM API를 사용하는 것보다 직접 공들여 모델을 만드는 게 나을 수도 있다. 그렇지만 대학생의 자본과 시간과 능력으로는 그런 부분들이 굉장히 어렵게 느껴진다. ..

카테고리 없음 2025.02.26

리스트 자르기

정수 n : 반복될 횟수slicer : 정수 3개가 담긴 리스트 -> [ a, b, c ]num_list : 슬라이싱 해야 할 정수 리스트.slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다.n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c 간격으로n으로 뭘 입력받는지에 따라서 리스트 슬라이싱의 범위가 정해진다. switch-case 문을 사용해야겠다는 생각이 드는데, kotlin에서는 when을 사용해서 간결하게 표현할 수 ..

코딩테스트 2025.02.11

가까운 1 찾기

원소가 0, 1뿐인 정수 배열 arr과 인덱스 값 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 반환하는 solution 함수를 완성해야 한다. idx보다 큰 인덱스의 값이 1인 경우가 없으면 -1을 반환해야 한다. 입출력 예[0, 0, 0, 1]13[1, 0, 0, 1, 0, 0]4-1[1, 1, 1, 1, 0]33 두 번째 예시 같은 경우, idx=4가 주어지는데 그 이후 인덱스 5의 값이 0이고, 인덱스 4의 값도 0이라 -1을 반환해야 한다.세번째 예시는 인덱스 3의 값이 1이지만 그 이후 인덱스 4는 0이고 이보다 더 큰 인덱스가 더 이상 존재하지 않는다. 이 경우 3을 리턴한다. 근데 문제에서는 idx보다 '크면서' 조건을 만족하는 인덱스를 리턴해야 하는데, i..

코딩테스트 2025.02.10