전체 글

Dev/MSA

[MSA] 2PC기법, SAGA패턴의 종류와 동작 예제에 대해서 알아보기

MSA SAGA패턴을 사용하기 전, 2PC기법 2PC기법이란, Two-Phase Commit의 약자로, 트랜잭션을 커밋할지, 롤백할지에 대해 분산 원자적 트랜잭션에 관여하는 분산 알고리즘의 하나이다. 2PC에서 하나의 노드는 조정자와 트랜잭션의 대상이 되는 참가자들로 구성된다. 조정자는 커밋할 트랜잭션을 만드는 노드이며 참가자는 조정자가 보낸 트랜잭션을 커밋하거나 되돌린다. 즉, 분산환경에서 데이터 신뢰성 향상을 위한 방안이다. 2PC기법의 단점 조정자에 오류가 발생한다면, 모든 트랜잭션이 조정자가 복구될 때 까지 지연된다는 단점, 조정자에 오류가 발생해 응답을 받지 못하면 참가자 전체가 블로킹에 빠지게 된다는 점이 있다. SAGA패턴이란? 2PC기법의 단점을 극복하기 위해 SAGA패턴이 등장했다. SA..

Dev/Network

[Network] OSI 7 계층의 Session Layer(세션 계층), Presentation Layer(표현 계층)에 대한 개념 정리

세션 계층의 기능 세션 계층 프로토콜이 상위 계층에 제공하는 기능에는 세션 연결의 설정과 해제, 세션 메세지 전송 등이 있다. 세션 연결은 응용 환경에서 두 응용 프로세스 간의 세션을 설정하기 위해 만든다. 세션 계층에서 제공하는 중요한 기능은 동기 문제를 처리하는 것이다. 동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통 처리 지점, 즉 동기점을 지정하기 위해 사용한다. 동기점을 설정하는 이유는 메세지 전송 과정에서 발생하는 오류를 복구하기 위해서이다. 즉, 동기점이 설정된 시점 이전까지는 통신 양단이 서로 완벽하게 처리했음을 합의했다는 의미이다. 동기점 동기는 세션 연결을 사용해 데이터를 주고받다가 오류가 발생하였을 때, 이를 효과적으로 복구할 수 있게 해준다. 동기점은 데이터를 전송할 때 특정..

Dev/Network

[Network] OSI 7 계층의 Top Layer(전송 계층)에 대한 개념 정리

전송 계층의 기능 전송 계층에서는 네트워크 끝단에 위치하는 통신 주체가 중간의 논리적인 선로를 통해 데이터를 주고받는다. 이 과정에서 흐름 제어, 오류 제어, 패킷의 분할과 병합 등의 기능을 수행한다. 이를 지원하기 위하여 주소 표현, 멀티 플렉싱, 연결 관리 등에 대한 고려가 이루어져야 한다. 연결 설정 연결 설정은 연결을 요청하는 프로세스의 연결 설정 요구인 Conn_Req와 상대편 프로세스에서 연결 수락을 의미하는 Conn_Ack의 회신으로 완료된다. 이와 같은 2단계 설정 과정은 통신 양단의 연결 설정을 위한 최소한의 단계이다. 실제 통신 환경에서는 오류 가능성 때문에 3단계 설정이 이루어지는데, 3번째 단계에서 전송할 데이터가 있으면 바로 데이터를 전송하고, 그렇지 않으면 2번째 단계에 대한 응..

Dev/Network

[Network] OSI 7 계층의 Network Layer(네트워크 계층)에 대한 개념 정리

네트워크 계층의 역할 네트워크 계층의 기본 기능은 송수신 호스트 사이의 패킷 전달 경로를 선택하는 라우팅이다. 네트워크의 구성 형태에 대한 정보는 라우팅 테이블에 보관된다. 라우팅이란? 송수신 호스트 사이의 패킷 전달 경로를 선택하는 과정 네트워크 계층의 또다른 기능(라우팅 제외) 혼잡 제어: 네트워크 특정 지역에 트래픽이 몰리는 현상을 다룸 네트워크에 존재하는 전송 패킷의 수가 많아질수록 네트워크의 성능은 자연스럽게 감소한다. 이러한 현상을 혼잡이라고 하고, 혼잡 문제를 해결하기 위한 방안을 혼잡 제어라고 한다. 패킷의 분할과 병합: 라우터 사이의 패킷 중개 과정에서 다룸 분할이란? 큰 데이터를 여러 패킷으로 나누는 과정 병합이란? 목적지에서 분할된 패킷을 다시 모으는 과정 HELLO/ECHO 패킷 라..

Dev/Network

[Network] SOAP, REST의 개념과 차이점 정리

Network SOAP(Simple Object Access Protocol) SOAP란 Simple Object Access Protocol의 약자로, 그 자체로 프로토콜이며, 보안이나 메세지 전송등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡하다. 오버헤드가 심하고 개발하기 어렵고 무겁다는 단점이 있다. REST(Representational State Transfer) REST란 Representational State Transfer의 약자로, 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍쳐 스타일이다. REST는 Resource의 Representation에 의한 상태 전달을 하고, HTTP Method를 통해 Resource를 처리하기 위한 아키텍쳐이다..

Dev/Network

[Network] CORS(Cross Origin Resource Sharing)란?

Network Origin이란? Origin이란 프로토콜, 도메인, 포트를 말한다. Same-Origin이란 프로토콜, 도메인, 포트가 같다는 말이며, Cross-Origin이란 이 3가지 중 하나라도 다른 것을 의미한다. Origin과 Domain의 차이? Origin과 Domain의 차이는 프로토콜과 포트번호의 포함 여부가 다르다. Origin은 프로토콜, 도메인, 포트를 포함하며, Domain은 도메인만 포함한다. -> 도메인예시: friendshipkim97.tistory.com -> 오리진예시: https://friendshipkim97.tistory.com/80 즉, 도메인과 오리진의 차이는 프로토콜(https)과 포트번호(80)의 포함여부이다. CORS란? CORS란 Cross Origin ..

friendshipkim97
어떤 초콜릿을 꺼낼 건지