8

[Go/Golang] Echo 프레임워크에서 Swagger 사용하기

Echo 프레임워크에서 Swagger 사용하기 Echo Echo 프레임워크는 Golang 웹 프레임워크 프로젝트 중 하나입니다. Gin이라는 유명한 프레임워크도 있지만, 저는 Echo를 처음으로 접해서 지금까지 Echo로 사용해오고 있습니다. 아직 Gin을 이용해보진 못해서 둘을 자세히 비교할 수는 없겠지만, 표면적으로는 최근 들어, Echo가 Gin에 비해 더 많이 검색되고 있고, Gin 보다 짧은 Release Cycle을 가져가고 있다는 점이 눈에 띕니다. 참고 Swaggo 한편, Swagger는 API의 문서화를 자동으로 처리해주는 프로젝트입니다. 기존의 docs 등을 이용한 API 문서 관리 기술은 API가 변하게 되면 변한 API에 맞춰 문서화를 다시 진행해야 하는 번거로움이 있었다면, 이런 ..

IT/Go 2021.03.09

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.3 DNS Records and Messages

180111_CN_2_4_3 2.4.3 DNS Records and Messages 분산된 DNS 데이터베이스를 수행하는 DNS servers는 "Resource Records (RRs)" 를 저장한다. RR에는 hostname과 IP address를 이어주는 mapping도 포함하고 있다. 각각의 DNS reply message는 하나 이상의 resource records를 싣고 간다.Resource Records는 다음 4개의 필드를 4-tuple로 포함한다. (Name, Value, Type, TTL) • TTL은 RR의 수명 (Time to Live)으로 cache에서 해당 resource가 언제 지워져야 하는지 나타낸다. 일단 이 예제에서는 TTL은 무시하기로 한다. Name과 Value fie..

IT/Network 2018.01.11

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.2 Overview of How DNS Works

2.4.2 Overview of How DNS Works 가령 사용자의 host에서 동작하는 웹 브라우저나 메일 앱이 hostname을 IP address로 변환할 필요가 있다고 가정하자. 이 애플리케이션은 변환되어야 하는 hostname을 담아 client side의 DNS를 호출할 것이다. 호출된 사용자의 host에 위치한 DNS는 네트워크로 query message를 보낼 것이다. 모든 DNS query와 reply message는 port 53을 통해 UDP datagram이 되어 전송된다. 수 ms에서 sec의 시간이 흐른 잠시 후, 사용자의 host에 위치한 DNS는 가장 바람직한 mapping을 DNS reply message를 통해 받는다. 그리고 해당 mapping을 자신을 호출한 애플리..

IT/Network 2018.01.10

[Network] Application Layer (애플리케이션 계층) - 2.4 DNS 정리 2.4.1 Services Provided by DNS

2.4 DNS - The Internet's Directory Service2.4.1 Services Provided by DNShost를 알아내는 데는 두 가지 방법이 있다.hostnameIP address사람들은 기억하기 쉬운 hostname 식별자를 더 선호한다. 반면, 라우터는 IP address의 고정된 길이와 계층적인 구조를 선호한다.이런 요구를 만족시키기 위해서 우리는 hostname을 IP address로 변환해주는 directory service가 필요하다. Domain Name System (DNS)의 주요 작업이 바로 이것이다.DNS는DNS Server의 계층 구조에 구현된 "분산 데이터베이스" 이다.이 "분산 데이터베이스"에 host가 query를 보낼 수 있게 해주는 "Applic..

IT/Network 2018.01.09

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리 2.2.5 Web Caching (웹 캐싱)

2.2.5 Web CachingProxy server라고도 불리는 Web cache는 원본 Web server를 대신해서 HTTP request를 처리하는 network entity이다. Web cache는 그 자체로 디스크 저장 공간을 가지고 있으며, 최근에 요청된 객체들의 복사본을 저장하고 있다. 일화를 예로 들어 보면 다음과 같다. 1) 브라우저가 TCP 연결을 Web cache와 만들고, Web cache로 HTTP Request Message를 보내 객체를 요청한다. 2) Web cache는 그 객체를 보관하고 있는지 확인하고, 존재하면, HTTP Response Message에 담아 클라이언트 브라우저로 전송한다. 3) 만약 존재하지 않는다면, Web cache는 원본 서버와 TCP 연결을 생..

IT/Network 2018.01.08

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리 2.2.4 Cookie (쿠키)

2.2.4 User-Server Interaction: CookiesHTTP Server는 Stateless (상태가 없다)이다. 이는 동시에 수천의 TCP 연결을 처리할 수 있는 웹 서버를 디자인하는 것을 쉽게 해준다. 그러나 종종 웹 사이트가 사용자를 인지하고 있을 필요가 있다. • 서버가 사용자의 접근 권한을 제어해야 할 때. • 서버가 사용자에 따른 맞춤 서비스를 제공해야 할 때. 이러한 목적으로 HTTP는 "Cookies"를 사용한다. [RFC 6265]Cookie는 4 개의 요소로 구성된다. 1) HTTP Response Message의 'cookie header line' 2) HTTP Request Message의 'cookie header line' 3) 유저의 end system과 유저..

IT/Network 2018.01.07

[Network] Application Layer (애플리케이션 계층) - 2.2 웹 애플리케이션 정리

2.2 The Web and HTTP웹이 사용자들에게 주는 가장 큰 호감은 On-demand 방식으로 동작하는 점이다.2.2.1 Overview of HTTPHyperText Transfer Protocol (HTTP) 는 웹 애플리케이션 계층 프로토콜이며, 웹의 중심이다. ([RFC 1945], [RFC 2616] 참조) HTTP는 'Client Program'과 'Server Program' 두 가지로 구현된다. 서로 다른 End System에서 수행되는 두 프로그램은 HTTP Messages 를 교환하여 통신한다. HTTP는 메시지의 구조, 클라이언트와 서버가 메시지를 교환하는 방법을 정의한다.• Web page (aka document) 는 object(객체)들로 구성된다.○ Object는 하나의..

IT/Network 2018.01.06

[Network] Application Layer (애플리케이션 계층) - 2.1 네트워크 애플리케이션의 원리 정리

2.1.2 Processes CommunicatingClient and Server Processes두 프로세스 간의 통신 세션에서, 통신을 초기화(다른 프로세스와 세션을 시작하려고 접속을 초기화)하는 프로세스를 클라이언트라하고, 세션을 시작하기 위해 접속을 기다리는 프로세스를 서버라고 한다.The Interface between the Process and the Computer Network프로세스는 소켓(Socket)이라 불리는 인터페이스를 통해 네트워크로 메시지를 보내고 받는다. 프로세스를 집(house)으로 비유한다면, 소켓은 문(door)로 비유할 수 있다.소켓은 Host의 Application Layer와 Transport Layer의 인터페이스이다. 소켓은 Network Applicatio..

IT/Network 2018.01.05