전체 글40 웹과 HTTP 2.2 웹과 HTTP2.2.1 HTTP 개요HTTP(HyperText Transfer Protocol) 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하여 통신한다. HTTP는 메시지의 구조 및 클라이언트와 서버가 메시지를 어떻게 교환하는지에 대해 정의하고 있다. HTTP는 TCP를 전송 프로토콜로 사용한다. HTTP 클라이언트는 먼저 서버에 TCP 연결을 시작한다. 일단 연결이 이루어지면, 브라우저와 서버 프로세스는 그들의 소켓 인터페이스를 통해 TCP로 접속한다. HTTP는 TCP를 사용하기 때문에, 신뢰적인 데이터 전송 서비스를 제공한다. HTTP 서버는 클라이언트에 대한 정보를 유지하지 않는다. HTTP는 비상태 프로토콜(stateless protocol)이다.2.2.2 비지속 .. 2024. 1. 15. 네트워크 애플리케이션의 원리 2.1 네트워크 애플리케이션의 원리 2.1.1 네트워크 애플리케이션 구조 클라이언트-서버 구조(client-server architecture)에서는 항상 동작하고 있는 호스트를 서버(server)라고 부르는데, 서버와의 서비스는 클라이언트(client)라는 다른 호스트들로부터 서비스 요청을 받는다. 클라이언트-서버 구조에서는 클라이언트 서로가 직접적으로 통신하지 않는다. 클라이언트-서버 구조에서는 서버가 고정 IP 주소라는 잘 알려진 주소를 갖는다. 서버는 항상 동작하고 있으므로 클라이언트는 서버 주소로 패킷을 보내서 언제든지 서버에 연결할 수 있다. P2P 구조에서는 항상 켜져 있는 인프라스트럭처 서버에 최소로 의존한다.(혹은 전혀 의존하지 않음). 대신에 애플리케이션은 피어(peer)라는 간헐적으로.. 2024. 1. 10. 프로토콜 계층과 서비스 모델 1.5 프로토콜 계층과 서비스 모델계층 구조계층 구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의 할 수 있게 해준다. 시스템이 계층 구조를 가질 때, 그 계층이 제공하는 서비스의 구현을 변경하는 것은 매우 쉽다. 한 계층이 상위 계층에 같은 서비스를 제공하고 하위 계층의 서비스를 이용하는 한, 어떤 한 계층의 구현이 변하더라도 시스템의 나머지 부분은 변하지 않는다.프로토콜 계층화네트워크 프로토콜의 설계 구조를 제공하기 위해, 네트워크 설계자는 프로토콜을 계층(layer)으로 조직한다. 한 계층이 상위 계층에 제공하는 서비스(service)에 관심을 갖고, 이것을 계층의 서비스 모델(service model)이라고 한다. 각 계층은 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를.. 2024. 1. 7. 컴퓨터와 네트워크 인터넷 1.1 인터넷이란 무엇인가? 구성요소로 본 인터넷 전통적인 데스크톱 PC, 리눅스 워크스테이션 또는 비전통적인 사물인터넷을 호스트(host) 혹은 종단 시스템(end system) 이라고 부른다. 통신 링크(communication link), 패킷 스위치(packet switch) 종단 시스템은 통신링크와 패킷스위치의 네트워크로 연결된다. 라우터(router)와 링크 계층 스위치(link-layer-switch) 최종 목적지 방향으로 패킷을 전달한다. ISP(Internet Service Provider) 종단 시스템은 ISP를 통해 인터넷에 접속한다. 서비스 측면에서 본 인터넷 애플리케이션에 서비스를 제공하는 인프라 스트럭처 게임, 스트리밍, 지도 서비스, 모바일 애플리케이션은 서로 데이터를 교환하는.. 2024. 1. 5. 빌더 패턴(Builder Pattern) 빌더 패턴(Effective Java)이펙티브 자바를 읽던중 생성자에 "매개변수가 많다면 빌더를 고려하라"는 글을 보고 최근 프로젝트에서 lombok의 @Builder 어노테이션을 사용해 빌더 패턴을 사용한 기억이 났습니다. 빌더 패턴을 사용하더라도 왜 사용하는지 알고 써야 할것같아서 정리해봅니다.인터넷을 찾아보니 GoF의 빌더 패턴과는 다른 접근방법 같지만 저는 이펙티브 자바의 빌더 패턴을 설명하겠습니다.이 책에서는 빌더 패턴을 설명하기 전에 점층적 생성자 패턴과 자바 빈즈 패턴에 대해 소개하고있습니다.점층적 생성자 패턴(telescoping constructor pattern)선택적 매개변수가 많을 때 보통 개발자들은 점층적 사용자 패턴(telescoping constructor pattern)을 사.. 2021. 10. 2. 정규표현식 전방탐색과 후방탐색 정규표현식 전방탐색과 후방탐색 프로그래머스 문제를 풀던 중 전화번호 뒷 4자리를 제외한 나머지를 *로 치환하는 문제를 접하게 되었습니다. 예전에 정규표현식 책에서 본 전방탐색을 이용해서 풀면 되겠다는 생각을 했지만 문법이 기억나지 않아서 전방탐색을 찾아본 후 문제를 풀 수 있었습니다. 전방탐색과 후방탐색에 대해 알아본 것을 간단하게 정리하겠습니다.(언어는 자바를 사용했습니다.) 전방탐색 패턴에 일치하는 텍스트 자체는 소비하지 않고, 일치하는 텍스트의 앞 부분을 탐색합니다. 패턴의 구문은 ?= 를 사용합니다. String addr1 = "http://www.example.example"; String addr2 = "https://www.example.example"; String addr3 = "mail.. 2021. 9. 15. 이전 1 2 3 4 5 6 7 다음