호우동의 개발일지

Today :

article thumbnail
[Network] 웹 캐싱(Web Caching)과 조건부 GET

웹 캐싱 웹 캐시(web cache) 기점 웹 서버(origin Web server)를 대신하여 HTTP 요구를 충족시키는 네트워크 개체 프록시 서버(proxy server)라고도 함 웹 캐시는 자체의 저장 디스크를 가지고 있음 → 최근 호출된 객체의 사본을 저장 및 보존 브라우저 웹 캐싱 과정 브라우저는 사용자의 모든 HTTP 요구가 웹 캐시에 가장 먼저 보내지도록 구성될 수 있음 일단 브라우저가 설정되면, 객체에 대한 각각의 브라우저 요청은 웹 캐시에 가장 먼저 보내짐 특정 객체를 요구할 때 발생하는 과정 브라우저는 웹 캐시와 TCP 연결을 설정하고, 웹 캐시에 있는 객체에 대한 HTTP 요청 보냄 웹 캐시는 객체의 사본이 자기에게 저장되어 있는지 확인 저장되어 있는 경우 → 웹 캐시는 클라이언트 브..

article thumbnail
[Network] 쿠키(Cookie)를 이용한 클라이언트-서버 상호작용

더보기 쿠키를 사용하는 이유 HTTP 서버는 상태를 유지하지 않는다. 때때로 웹사이트가 사용자를 확인해야 할 때가 존재 → 해당 이유로 HTTP는 쿠키(cookie)를 사용 대부분의 주요 상용 웹사이트는 쿠키를 사용하고 있음 쿠키기술의 4가지 요소와 쿠키 동작 방식 쿠키가 가지는 4가지 요소 HTTP 응답 메시지 쿠키 헤더 라인 HTTP 요청 메시지 쿠키 헤더 라인 사용자의 브라우저에 사용자 종단 시스템과 관리를 지속시키는 쿠키 파일 웹 사이트의 백엔드 데이터베이스 쿠키의 동작 과정 가정 해당 사용자는 PC 인터넷 익스플로러를 통해 항상 웹 접속을 한다. PC로 인터넷 익스플로러를 통해 특정 웹사이트(A)를 접속했다. 해당 사용자는 과거에 웹사이트(B)를 방문한 적이 있다. 과정 웹 서버 A에 요청이 들..

article thumbnail
[Network] HTTP 메시지 포맷 구조 요약 정리

HTTP 메시지 포맷 HTTP 명세서(RFC)는 HTTP 메시지 포맷을 정의한다. 브라우저, 웹 서버, 네트워크 캐시 서버에 의해 삽입될 수 있는 헤더라인 정의 두 가지 HTTP 메시지가 존재 → 응답 메시지와 요청 메시지 HTTP 요청 메시지 예시를 통한 요청 메시지 분석 GET /somedir/page.html HTTP/1.1 // 요청 라인(request line) // ---- 헤더 라인(header line) Host : www.someschool.edu // 객체가 존재하는 호스트를 명시 Connection : close // 브라우저는 서버에게 지속 연결 사용을 원하지 않는다. User-agent : Mozilla/5.0 // Mozilla/5.0 = 파이어 폭스 브라우저 Accept-lan..

[OS] 시스템 모델과 교착상태(DeadLock) vs 라이브락(LiveLock)

교착 상태(DeadLock) 교착 상태(Dead Lock) : 대기 중인 스레드들이 다시는 그 상태를 변경할 수 없는 경우 한 스레드 집합 내의 모든 스레드가 그 집합 내의 다른 스레드에 의해 발생될 수 있는 이벤트를 기다린다면, 이는 교착 상태임 요청한 자원들이 다른 스레드에 의해 점유되어 있고, 그들도 다 대기 상태에 있기 때문 한 스레드가 자원을 요청했을 때, 그 시각에 요청한 자원을 사용할 수 없는 상황 → 해당 스레드는 대기 상태로 들어간다. 교착 상태가 없는 프로그램을 설계하는 것은 전적으로 프로그래머의 책임 시스템 모델(System model) 시스템은 경쟁 스레드들 사이에 분배되어야 할 유한한 수의 자원들로 구성됨 시스템 자원은 다수의 유형 혹은 클래스로 분할된다. 자원 유형 예시 : CP..

article thumbnail
[Network] HTTP와 TCP의 이해, TCP 연결 방식 정리

웹의 등장과 특성 1990년대 초, 새로운 애플리케이션인 월드와이드웹이 등장 가장 큰 장점 → 웹이 온디맨드 방식 온디맨드(On Demand) : 사용자의 요구가 있었을 때 그 요구에 따라 서비스를 제공하는 것 cf ) 라디오 / TV → 콘텐츠 제공자의 주파수를 사용자가 맞춰야 함 이외의 장점 개인이 웹 상에 어떠한 정보를 사용 가능하게 하는 것이 매우 쉬움 → 모든 사람이 매우 낮은 비용으로 발행자가 될 수 있음 하이퍼링크와 검색 엔진은 정보를 얻는데 많은 도움을 준다. 웹과 관련된 프로토콜은 모바일 인터넷 애플리케이션을 위한 플랫폼을 제공 HTTP의 구현 2가지 프로그램으로 구현됨 (클라이언트 프로그램, 서버 프로그램 ) 클라이언트 프로그램 → 각기 다른 종단 시스템에서 수행 클라이언트 프로그램과 ..

article thumbnail
[Java/C++] 프로그래머스 Level 2 - 프렌즈4블록
Algorithm/Programmers 2023. 7. 14. 12:38

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/17679 카카오 블라인드 코딩테스트 2018년도 문제. 코딩테스트 리뷰를 보니까 난이도 상 문제였다. 문제 핵심 및 풀이 해당 문제는 제한사항에서 완전탐색으로 가능하다는 것을 인지해야 한다. 핵심적인 구현은 2가지가 있다. 1. 2x2에 연결되어 있는 다른 2x2 블록이 같이 터질 수 있도록 하는 것. 2. 블록이 터진 후 비어있는 공간에 위에 있는 블록들이 떨어지는 것. 2x2 블록들이 연쇄적으로 사라지게 하기 일단 2x2 조건을 만족하는 블록들을 찾아내는 것은 쉽다. 무조건 2x2 고정이기 때문에 현재 좌표를 (i, j)라고 한다면 ( i , j ) == ( i , j+1 ) == ( ..

article thumbnail
[Network] 인터넷 프로토콜과 애플리케이션 계층 프로토콜

인터넷 전송 프로토콜이 제공하는 서비스 인터넷 애플리케이션 지원 유형 인터넷은 애플리케이션에게 2개의 전송 프로토콜을 제공 → TCP와 UDP 여기서 인터넷은 일반적인 TCP/IP 네트워크를 뜻함 TCP와 UDP는 서로 다른 서비스 모델을 제공한다. TCP 서비스 TCP 서비스 모델은 연결지향적 서비스와 신뢰적인 데이터 전송 서비스를 제공한다. 연결지향형 서비스 - 과정 메시지 전송 전에, TCP는 클라이언트와 서버가 서로 제어 정보를 교환하게 한다. → 핸드셰이킹 과정: 클라이언트와 서버에 패킷이 곧 도달한다는 것을 알려주는 역할 핸드셰이킹 과정 이후, TCP 연결이 두 프로세스의 소켓 사이에 존재한다고 칭함 해당 연결은 메시지를 동시에 보낼 수 있기 때문에 전이중(full-duple) 연결 애플리케이..

[Network] 트랜스포트 프로토콜이 제공하는 4가지 서비스 정리

애플리케이션이 이용 가능한 트랜스포트 서비스 소켓은 애플리케이션 프로세스와 트랜스포트 프로토콜 간의 인터페이스 전송 과정 송신 측 애플리케이션은 소켓을 통해 메시지를 전송 소켓의 반대편에서 트랜스포트 프로토콜은 네트워크를 통해 해당 메시지를 수신 프로세스의 소켓으로 이동시켜야 함 트랜스포트 프로토콜 대부분의 네트워크는 하나 이상의 프랜스포트 프로토콜을 제공 애플리케이션 개발할 때, 트랜스포트 프로토콜 중 하나를 선택해야 함. 애플리케이션 요구에 가장 적합한 서비스를 제공하는 프로토콜 선택 하나를 선택해야만 하고, 각 전송 모드는 다른 서비스를 제공 트랜스포트 계층 프로토콜이 제공하는 서비스 신뢰적 데이터 전송, 처리율, 시간, 보안 신뢰적 데이터 전송(data integrity) 프로토콜이 보장된 데이터..