반응형

Knowledge 35

[Knowledge] Private IP & Public IP 간단설명! 쉬운이해!

오늘은 간단하게 Public IP와 Private IP에 대해 정리하려고한다.! 1. Public IP 공인IP라고 불리며, 외부 네트워크와 통신할때 사용하는 IP 주소 ISP(Internet Service Provider)에서 할당되며 외부에 공개되어있는 IP이다. 유일성이 보장되며, 별도의 제한이 없다면 외부에서 접근이 가능하다. 2. Private IP 동일한 네트워크 내에서 사용되는 내부 IP 주소 쉽게 보면 외부 네트워크를 통해 할당받은 IP를 통해 접근할수 있는 두번째 단계의 내부 네트워크에 사용되는 IP라고 보면 된다. IPv4의 주소 부족때문에 Subneting 된 IP이기에, 라우터를 통해 로컬 네트워크 상에 할당된다. Public IP Private IP 범위 : 전세계적(global)..

[Knowledge] MSA 트랜잭션 Two-Phase Commit 과 Saga Pattern을 알아보자~!

이번에는 MSA 구조에서의 트랜잭션 관리를 어떤식으로 하는지 알아보도록 하자. 보통 모놀로틱 시스템 구조에 관계형 데이터베이스를 사용하는 곳에서는 DB자체에서 제공하는 트랜잭션을 통해 일관성있는 처리를 진행할 수 있다. 하지만 MSA구조에서는 A서버 B서버 각각 트랜잭션이 별도로 진행되기 때문에 둘중하나가 rollback됬을때 다른 쪽 서버에서는 알지 못하기 때문에 트랜잭션의 일관성을 유지할 수가없다. 이럴때는 어떻게 해야될까?? 필자는 공부를 하기 전에 그냥 생각해봤을때, 아는 지식 내에서 처리를 어떻게 하지? 라는 종착점은 메시지 큐를 사용해서 이벤트기반으로 Success Fail에 대한 정보를 받아 사용하면 되지 않을까 였다. Kafka,MQ 등등? 하지만 예상이고, 실질적으로 보장되어있는 방식이 ..

[Knowledge] RPC란?? RPC의 간단한 개념..

최근 RPC라는 말을 드문드문 보게되었다. 알아보고 싶은것들이 계속 많아지는 시기라.... 간단간단하게 공부하면서 차후에 제대로 알아봐야겠다...! RPC(Remote Procedure Call)란? 원격 제어를 위한 코딩없이 다른 주소 공간의 함수나 프로시저를 실행할 수 있게 하는 프로세스간 통신방식이다. 여기서 함수는 Input이 있으면 output이 있는 Return값이 있는 아이이고, 프로시저는 명령이 수행하는 절차를 통한 개념적인 아이이다. 그렇다면 RPC는 어디에 쓰는것인가!? 보통 프로세스들은 자신이 할당받은 주소공간안에 있는 함수들을 실행한다. 이때 A프로세스가 주소 공간이 다른 B프로세스의 함수를 실행시키고 싶을때 사용하는 프로토콜이라고 보면 될것 같다. (자기것이 아닌 남의것을 자기것인..

[Knowledge] Mutex / Semaphore 란?

이번에는 Mutex와 Semaphore에 대해서 알아보도록 하자..! 데드락 관련된 내용을 타고 들어가다보면 나오는말인데,,,, 말로 설명하는데 어려움이 있어 정리해두려고한다...! 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 가능성이 있는데 이럴때 공유된 자원에 대해 접근을 통제하는 방식이다. Mutex란? MUTual EXclusion '상호 배제'라고 한다. 데드락 방지 4가지중에 있는것...! Critical Section을 가진 Thread의 running time이 서로 겹치지 않게, 각각 단독으로 실행되게 하는 기술이다. 다수의 쓰래드(또는 프로세스)들의 공유 리소스에 대한 접근을 locking/unlocking을 통해 관리한다. 1). 단 하나의 프로세스/스레드만 접근 가..

[Knowledge] Transaction Isolation level이란? (격리수준)

오늘은 Transaction Isolation Level을 공부해보자. 트랜잭션 격리수준 (Isolation level)이란 동시다발적으로 여러 트랜잭션이 처리될때 트랜잭션간에 서로를 방해하게 둘지 말지 결정하는, 얼마나 서로 고립되어있는지를 나타내는 수준이다. 한 트랜잭션이 다른 트랜잭션이 변경한 데이터를 조회할수 있게 할지말지 결정하는데, 격리 수준에 따라 다르다. 그럼 격리 수준(Level)을 한번 알아보자. 격리 수준 DIRTY READ NON-REPEATABLE READ PHANTOM READ READ UNCOMMITTED O O O READ COMMITTED O O REPEATABLE READ O(InnoDB는 발생 X) SERIALIZABLE READ UNCOMMITTED (Level 0) ..

[Knowledge] API Gateway란? 쉽게 정리해보자.

1). API Gateway란? API 게이트웨이 는 실제 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자이다. 쉽게말해서 외부 클라이언트와 백엔드 서비스 사이에 존재하여 정책,인증,액세스 제어등을 적용하여 클라이언트에서 원하는 요청을 받아 요청에 맞는 서비스로 라우팅하고 대신 돌려받은 응답을 클라이언트에게 전송해주는 역할을 한다. API Gateway를 사용하는 주 이유는 요즘 같이 마이크로서비스를 지향하는 시대에서, 클라이언트가 아주 단순하게 여러서비스를 이용할 수 있다는 점이다. 트래픽 분산 까지 해주니, 같은 마이크로서비스라도 트래픽이 적절하게 분산될 수 있도록 로드밸런싱 해주어 서비스를 이용할 수 있게 ..

[Knowledge] Stateless와 Stateful 차이

알고있다고 생각했는데, 알고있지 않았던 부분.... 반성해야겠다. 한번 정리해두자..! 간단하게 표현하면 Client의 상태정보를 Server가 저장해놓고 가지고 있느냐, 아니냐에 따라 Stateful / Stateless로 구분된다. 최근에는 서비스들이 Stateless 서비스 구조를 선호한다고 하는데, 그이유도 함께 자세하게 알아보자.. 1). Stateful이란 Stateful 구조는 Server와 Client간 세션의 상태에 따라 Client에게 Response를 보내는 형태이다. 이때 Client 세션의 상태가 필요하기 때문에 서버에서는 Client의 세션 정보를 저장해둔다. 대표적인 Stateful 구조의 프로토콜은 TCP/IP이다. TCP의 3-wayhandshake 과정을 다시 되짚어보면 ..

[Knowledge] 웹호스팅 / 서버호스팅 / 클라우드 차이점

오늘은 웹호스팅 / 서버 호스팅 / 클라우드를 각각 비교하여 정리해 두려고한다. 공부한 내용은 글로 남겨야 잘 기억난다는점...! 1. 웹 호스팅 웹호스팅은 호스팅 업체의 서버중 일부의 서버를 임대하여 사용하는 방식이다. 1-1). 장점 호스팅 업체에서 빌려쓰는 개념이기 때문에 서버 및 인프라 구축이 필요없다. 가격이 저렴하다. 1-2). 단점 단독 서버를 쓰는것이 아니기때문에 서버 자원 사용량이 제한된다. 호스팅 업체에서 관리하기 때문에 서버 관리의 권한이 없다. 1-3). 주 사용처 홈페이지, 커뮤니티 사이트, 블로그 등 작은 규모로 퍼블릭하게 사용할때 자주 사용된다. 2. 서버 호스팅 서버 호스팅은 호스팅 업체의 물리적인 서버를 단독으로 임대 및 구매하여 사용한다. 따라 서버운영에 필요한 인프라와 ..

[Knowledge] 로드밸런싱이란? Load Balancing

1). 로드 밸런싱 Load balancing 이란? 네트워크 기술의 일종인 로드밸런싱이라고 하는 부하분산은 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다. 서버에 가해지는 부하(로드) 를 분산(밸런싱) 해주는 기술이라고 알고있으면 된다. 클라이언트의 수가 증가하게 되서 기존 서비스를 정상적으로 제공하기 힘들어졌을때, Scale out을 하거나, Scale up을 하게된다. 이때 Scale out 방식은 여러대의 서버로 트래픽을 균등하게 분산하는 로드 밸런싱이 반드시 필요하다. 1-1). 주요 기능 NAT(Network Address Translation) 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기 Tunneling 인터넷상에서 눈에 ..

[Knowledge] 데드락이란? 데드락 해결방안 이론...

우선 데드락이라는 말을 많이 들어봤을거라 생각한다. 데드락이 도대체 무엇일까? 데드락이란. 예를 들어 A와 B가 재료 1,2,3을 각각 모두 가지고 있어야된다고 하자. 이때 A가 1을 가지고 손질하고, B는 2를 가지고 손질을 하고 끝났다고 보자. 이때 A가 2를 손질해서 가져가려고 하는데, B가 2를 점유하고 있는상태. B는 1을 손질해서 가져가려고하는데 A가 1을 점유하고 있는상태. 결국 A,B 둘은 서로 상대방이 점유하고 있는 리소스를 가지려 할때 발생한다. 서로 상대방의 리소스를 점유하려고 대기하고있는 상태를 Dead Lock 이라고 한다. 그렇다면 데드락이 어떤 상황에서 발생하는지 자세하게 알아보도록 하자. 데드락 발생 조건 데드락은 아래 네 가지 조건이 동시에 성립 할 때 발생한다. 그말인 즉..

반응형