CS 지식 5

PubSub 구조에 대해서

Redis는 key - value 기반의 캐시 저장소이지만, 캐시 기능 외에도 다양하게 사용되는 오픈소스입니다. 그중 pub/sub 기능에 대해서 알아보고 공부해 볼 예정입니다. Message Queue vs Pub Sub Message Queue와 Pub Sub 방식은 둘 이상의 서비스가 서로 통신하기 위해 분산 시스템에서 사용되는 일반적인 패턴입니다. Message Queue Message Queue는 Publisher와 Queue를 통해 통신하는 다수의 Consumer로 구성됩니다. Queue 통신 방식은 Publisher가 Consumer에게 메시지를 전달하는 단방향 구조입니다. Publisher가 Queue에 메시지를 주입하면 한 명의 Consumer가 이 메시지를 받는 방식입니다. 예제를 통해..

CS 지식 2023.05.07

강타입 언어에 대해서

강타입 언어란 무엇인가? 강타입언어란 프로그래밍 언어에서 Integer(정수), String(문자열)과 같이 데이터의 타입을 미리 지정하는 언어입니다. 모든 상수 그리고 변수들은 데이터의 타입을 정의해주어야 합니다. 그리고 강타입 언어에서 method들은 특정 데이터 유형만 허용합니다. 강타입 언어는 서로 다른 데이터 타입의 혼합에 대해서 확고하게 제한을 합니다. 만약 위반사항이 일어나게 되면 예외가 발생합니다. 강타입 언어는 데이터 타입의 준수를 위한 컴파일러를 사용합니다. Java의 간단한 예시를 들고 왔습니다. AddCalculator라는 클래스가 있으며 baseNumber, name 변수 모두 데이터 타입을 지정해 주었습니다. AddCalculator는 printInfo라는 메서드를 가지고 있는데..

CS 지식 2023.05.05

REST API에 대해서

해당 글에서는 REST API에 대해서 기본적인 원리와 함께 예시로 알아보려고 합니다. REST Representational State Transfer의 약자로 www와 같은 분산 하이퍼 시스템 아키텍처의 한 양식입니다. 주고받는 자원(Resource)에 이름을 규정하고 URI에 명시해 HTTP메서드 (GET, POST, PUT, DELETE)를 통해 자원의 상태를 주고 받는 것을 말합니다. API Application Programming Interface의 약자로 애플리케이션에서 제공하는 인터페이스를 말합니다. API를 통해 서버 혹은 프로그램 사이를 연결할 수 있습니다. REST API REST 아키텍처를 따르는 시스템 / 애플리케이션 인터페이스 라고 말할 수 있습니다. REST의 특징 Stat..

CS 지식 2023.05.04

Polling / Long Polling / Server Sent Event / Web Socket

Server에서 발생한 Event들을 클라이언트에게 보내야 하는 상황이 종종 발생합니다. 이러한 경우에 Polling / Long Polling / Server Sent Event / Web Socket을 사용할 수 있습니다. 이번 장에서는 위 4개의 특징들에 대해 알아보고자 합니다. Polling Polling 방법은 Client가 http request를 서버로 요청하여 이벤트 내용을 전달받는 방식입니다. Short Polling Short Polling은 클라이언트가 주기적으로 서버에 요청을 보내는 방법입니다. 일정 시간마다 서버에 요청을 보내 데이터가 갱신되었는지 확인하여 갱신된 값이 있다면 데이터를 응답받는 방식입니다. 클라이언트, 서버 모두 구현이 간단합니다. 서버가 요청에 대한 부담이 크지 ..

CS 지식 2023.05.02

OSI 7계층 TCP / IP 4계층

OSI 7계층은 네트워크 통신을 표준화한 모델로, 통신 시스템을 7단계로 나누어 설명한 것입니다. 하지만 OSI 모델이 실무에서 사용하기에 복잡해 실제 인터넷에서는 이를 단순화 한 TCP/IP 4계층이 사용되고 있습니다. [OSI 7 계층, TCP/IP 4 계층] OSI 7 계층과 TCP/IP 4계층 모델에서 각 계층은 하위 계층의 기능을 이용하고, 상위 계층에게 기능을 제공하는 방식이다. 일반적으로 상위 계층의 프로토콜은 소프트웨어로, 하위 계층의 프로토콜은 하드웨어로 구현된다. 캡슐화 & 역캡슐화 [캡슐화(Encapsulation)] 캡슐화란 통신 프로토콜의 특성을 포함한 정보를 Header에 포함시켜 하위 계층에 전달하는 것을 말합니다. [역캡슐화(Decapsulation)] 역캡슐화란 캡슐화의 반..

CS 지식 2023.04.21