본문 바로가기

IT & Tech5

Session, TCP, RSA, RFC, JWT 세션 처음 서버에 Get 으로 요청을 하면, 서버는 header 에 세션ID 를 담아서 웹 브라우저에 다시 리턴해준다. 다시 한번 Get 으로 요청하는 경우, 갖고 있는 세션 ID 를 함께 서버에 전송해준다. 세션 ID 란 무엇인가? 1. 세션 ID 를 이용해서 최초 방문이 아니라는 것을 확인해주기 위함. 2. 서버가 ID를 발급해준 사용자가 맞는지 확인해주기 위함. 세션 ID 가 사라지는 경우 : 1. 서버에서 세션을 삭제하는 경우. 2. 사용자가 브라우저를 종료한 경우. 3. 서버에서 특정 시간이 지나면 사라짐. 세션은 로그인 요청(인증) 하는 경우에 많이 사용 된다. 세션의 동작 방식 1. 서버에 응답요청을 보냄 2. 서버에서 세션ID를 생성함 3. 세션ID 를 담아서 클라이언트에게 보내줌 4. 클.. 2022. 8. 2.
MSA (Microservice Architecture) MSA 란 ? Monolithic Architecture 의 경우, 애플리케이션이 구동되기 위한 UI , 비즈니스 레이어 등이 하나의 큰 덩어리로 같이 구성이 되는 것. MSA 의 경우, 애플리케이션의 각각의 서비스를 MicroService 라는 단위로 쪼개어서 나눈 것. 위의 간단한 예시를 통해, MSA 와 Monolithic Architecture 의 차이를 구별할 수 있다. API 를 통해 관리하고, 외부에서 호출하는 경우 Service 자체를 노출하는 것이 아닌 API Gateway 를 통해서 인증을 하고, API 정책을 가져갈 수 있도록 하고, 데이터베이스 또한 각각의 서비스가 고유의 데이터베이스를 가질 수 있도록 한다. 그렇다면 MSA 아키텍처는 왜 인기가 있을까 ? 1. 기존의 Monolit.. 2022. 6. 23.
CI / CD (feat. DevOps) DevOps CI / CD 에 관한 설명을 들어가기에 앞서 , IT 분야에 관심이 많으신 분들은 DevOps 라는 용어에 대해 많이 들어보셨을 것 입니다. CI / CD 는 이 DevOps 와 관련이 깊은 용어인데요 , DevOps 란 애플리케이션 개발의 품질과 속도를 개선하고 신규 또는 수정된 소프트웨어 기능이나 제품의 릴리즈 주기 단축을 장려하는 새로운 철학이자 프레임워크입니다. DevOps 는 CALMS 라고 하는 크게 5가지의 핵심 요소로 나뉩니다. 그 중에서도 바로 Automatation 부분이 바로 CI / CD 가 해당되는 부분입니다. 그렇다면 이런 CI / CD 란 무엇일까요? CI / CD CI CI 란 Continuous Integration 의 약자로 지속적인 통합을 의미합니다. 새로.. 2022. 1. 18.
Domain Driven Design Domain 이란 ? 유사한 업무의 집합 -> 비즈니스 도메인 어플리케이션은 비즈니스 도메인 별로 나누어 설계 및 개발 될 수 있다. 마이크로서비스 아키텍처와 연관지어서 자주 나오는 디자인이다. Domain Driven Design DDD(Domain Driven Design)는 커뮤니케이션 코스트를 최소화하고 , 변경사항이 생기는 경우 변화의 사이클을 작게 가져가는 장점이 있다. 도메인 전문가는 IT 용어를 잘 모르고 , 개발자는 도메인에 관련된 용어를 잘 모른다. 이를 하나의 방법을 통해 아이디어를 쉐어하면 훨씬 더 효율적으로 진행이 가능하다. DDD 를 가장 쉽게 할 수 있는 방법은 Event Storming 이다. 심플한 툴로 , 많은 사람이 모여서 가능하다. 큰 벽을 세워놓고 옆에는 스티커를 붙.. 2022. 1. 2.
Event Driven Architecture Event Driven Architecture 이벤트(Event) : 컴퓨터 회로를 구동시키기 위해 발생하는 일 , 시스템 내, 외부에서 주목할 만한 상태의 변화 Event Driven Architecture ( EDA ) : 이벤트를 기반으로 하는 아키텍쳐 설계 방식 등장 배경 EDA 가 등장한 배경에는 마이크로서비스 아키텍처(MSA)로 적용된 시스템의 단점을 보완하고 대책을 마련하기 위함이다. 마이크로서비스 아키텍처는 독립적으로 배포 및 확장 될 수 있는 서비스(Loosely Coupled)들을 조합하여 하나의 애플리케이션을 완성하는 아키텍처이다. 마이크로서비스를 적용하면 빠른 배포 주기와 장애 확산 차단, 대용량 분산환경 시스템 구축, 폴리그랏 프로그래밍 적용 등의 장점을 얻을 수 있으며, 현재 빠.. 2021. 12. 28.