전체 글
[Network] HTTP(Stateful Stateless 차이, 비 연결성, 클라이언트 서버 구조 ...)
HTTP (HyperText Transfer Protocol) - 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2 2015년: 성능 개선 HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 - 기반 프로토콜 TCP: HTTP/1.1, HTTP/2 UDP: HTTP/3 현재 HTTP/1.1 주로 사용 - HTTP/2, HTTP/3 도 점점 증가 - HTTP 특징 클라이언트 서버 구조를 갖는다. 무상태(Stateless) 프로토콜, 비연결성 -..
[MSA] Micro Service Pattern(API Gateway, Service discovery, Service Mesh)
Micro Service Pattern - API Gateway service1,2,3가 전부 사용되는 데이터가 필요해지면 각각의 서비스를 호출해야해서 총 6번의 호출과 반환이 이루어지는데 각각의 결과 값을 기다려야한다. 여기서의 문제점은 service1,2,3 각각의 주소를 알아야하는 단점이 있다. 위의 상황은 Application과 service사이에 API gatway를 두어서, 요청을 동시에 service1,2,3에 보낸 후, 데이터를 취합하여 다시 클라이언트로 보낸다. API Gateway를 두어서 하나의 api point만 알아도 되는 이점이 있다. - 마이크로 소프트 공식문저 중 - API Gateway 이점 - 클라이언트와 서비스가 분리된다. 모든 클라이언트를 업데이트 하지 않고도 서비스 ..
[MSA] MSA(Micro Service Architecture) 정의
MSA의 정의를 알기 위해서는 그와 반대되는 모노리스 시스템에 대해서 이해해야한다. 모노리스(Monoliths) - 프로젝트에 모든 코드가 모여있어, 시스템 구조가 간결하고 빠르게 구축할 수 있다, - 애플리케이션이 한 덩어리로 구성하며 단일 프로세스로 실행해야한다. - 한꺼번에 수정, 배포되어야한다. 하나가 실패하면 모두 실패됨을 의미한다. 문제점: 작은 부분을 수정해도 전체 부분에 대해서 영향을 줄 수 있다. 모노리스를 클라우드 인프라에서 활용시에 스케일 아웃의 대상은 모노리스 전체가 된다. 그것만으로 충분히 확장성, 탄력성이 보장가능하나 비용효율적이지 않다. 그에 비해 마이크로 서비스는 애플리케이션이 여러개의 서비스 조각으로 구성된다. Micro Service Architecture 정의 Micro..
[MSA] MSA(Micro Service Architecture) 탄생배경 사용이유
왜 MSA인가? MSA의 탄생과 배경에는 아키텍쳐의 히스토리를 살펴볼 필요가 있다. *아키텍쳐는 시스템의 구조이다. 과거에는 시스템의 구조보다는 알고리즘, 데이터 구조에 집중적이었다. 소프트웨어의 복잡도와 활용도가 올라감에 따라 구조에 대한 중요도가 올라가게 되었다. 즉, 과거에는 클래스나 모듈 내부에 관심이 있었다. 왜냐하면 컴퓨터의 자원이 현 시대와는 다르게 성능 확장 및 시스템에 대한 접근성이 좋지 않았다. 하지만 현재는 어디에서나 네트워크의 발전과 클라우드 컴퓨팅을 통해 시스템에 접근이 가능하다. 위의 표를 보면, 소프트웨어 아키텍쳐는 1990년대에 크게 관심을 갖기 시작했다. 그러면 왜 소프트웨어 아키텍쳐가 관심을 가지게 된건지 알아볼 필요가 있다. 시간이 지남에 따라 소프트웨어는 현대 시대에 ..
[Network] URI, URL, URN
URI, URL, URN URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류 될 수 있다. URI: 리소스의 식별 URL: 리소스의 위치 URN: 리소스의 이름 URI Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL, URN URL - Locator: 리소스가 있는 위치를 지정한다. URN - Name: 리소스에 이름을 부여한다. 위치는 변할 수 있지만, 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않는다. URL분석 https://www.google.com/search?q=hello&hl=ko URL sc..