728x90
반응형
SMALL

개발지식 32

RabbitMQ란?!

RabbitMQ란 RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어로, 복잡한 데이터 흐름과 메시지 관리를 단순화하여 개발자가 애플리케이션 간에 데이터를 쉽게 전송할 수 있게 해줍니다. 메시지 큐의 한 종류로, 분산된 애플리케이션 간의 메시지 전달 및 통신을 용이하게 해주는 오픈 소스 메시지 브로커이며, 메시지 큐는 시스템 간의 비동기적인 통신을 지원하고, 장애 발생 시 메시지를 안전하게 보관하여 손실 없이 처리할 수 있게 해줍니다. MSA 구조의 서버를 사용하다 보면, 서버와 서버끼리 메시지를 주고받아야할 때가 있는데 이 때 RabbitMQ를 사용합니다. 서버1이 서버2에게 메시지를 보낼 때 rabbitMQ를 통해 메시지를 전송합니다. 이 때 서버1이 producer가 되는 것이고, 서버2가 con..

개발지식 2024.03.11

프라이빗 VS 퍼블릭 클라우드

클라우드(Cloud)란? 클라우드란 인터넷을 통해 컴퓨팅 자원, 데이터 저장, 소프트웨어, 플랫폼 및 기타 IT 관련 서비스를 원격으로 제공하는 것을 말합니다. 클라우드 서비스는 필요한 리소스(하드웨어, 소프트웨어, 데이터 저장소 등)을 필요한 만큼 제공받는 온디맨드(on-demand) 방식으로 작동하므로, 사용자가 필요한 시점에 적절한 양의 자원을 신속하게 할당받거나 반환할 수 있습니다. 이렇게 함으로써 사용자는 자원의 유연성과 확장성을 활용하여 비용을 절감하고 IT 인프라를 효율적으로 관리할 수 있습니다. 서비스 개방 여부에 따라 2가지 유형으로 나뉘는데, 이것이 퍼블릭 클라우드(Public Cloud)와 프라이빗 클라우드(Private Cloud)입니다. 퍼블릭 클라우드(Public Cloud)란 ..

개발지식 2024.03.10

JWT 란?!

JWT 란?! JWT 는 Json Web Token의 약자로 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미합니다. 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이며, 웹 상에서 정보를 Json 형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 String 형태로 저장되어 있습니다. JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 들어있습니다. 따라서 사용자가 JWT 를 서버로 전송하면 서버는 서명을 검증하는 과정을 거치게 되며 검증이 완료되면 요청한 응답을 돌려줍니다. Cookie 인증 VS Session 인증 V..

개발지식 2024.03.09

OCI 란 무엇인가?!

OCI란? Oracle Cloud Infrastructure(OCI)는 오라클이 제공하는 클라우드 서비스 플랫폼입니다. OCI는 컴퓨팅, 스토리지, 네트워킹, 데이터베이스 등 다양한 애플리케이션 서비스를 제공하며, 이를 통해 사용자는 자신의 비즈니스 요구사항에 맞게 IT 리소스를 확장하거나 축소할 수 있습니다. OCI의 특징 성능 OCI는 고성능 컴퓨팅, 높은 I/O 처리능력, 빠른 네트워킹 속도 등을 제공합니다. 이를 통해서 대용량 데이터 처리, 머신러닝, AI 등의 고성능 작업을 수행할 수 있습니다. 호환성 OCI는 오라클 데이터베이스 및 애플리케이션과의 통합을 강조하고 있습니다. 이로 인해 오라클 기반 시스템을 클라우드로 이전하는데에 이점을 제공합니다. 비용 효율성 OCI는 사용한 만큼만 비용을 지..

개발지식 2024.03.07

레디스(Redis)란 무엇인가?!

Redis 란? Redis는 Remote Dictionary Server의 약자로 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어입니다. 키(Key) - 값(Value) 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)이며, 오픈 소스 기반으로 인-메모리(In-memory) 데이터 구조 저장소로 메모리에 데이터를 저장합니다. 모든 데이터를 메모리로 불러와서 처리하는 In-Memory기반의 DBMS로 데이터베이스, 캐시, 메시지 브로커 등으로 사용되어지며, 주로 캐시 서버를 구현할 때 많이 사용됩니다. Redis의 특징 및 장단점 레디스는 다음과 같은 다양한 자료 구조를 지원합니다. (Strings, JSON, Sets, Lists, Sorted set .....

개발지식 2024.03.04

프로토콜(Protocol)이란 무엇인가?

프로토콜(Protocol)이란? 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계 즉 통신 규약 및 약속입니다. 프로토콜의 기본 요소 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정 포트 • 한 컴퓨터에서 어느 서버 프로그램과 통신할 것인지 지정해주는 일종의 출입구 • 보통 웹 서버 포트 번호 : HTTP는 80, HTTPS는 443 0번 ~ 1023번:..

개발지식 2024.03.02

[Apache Kafka] 카프카(Kafka) 맛보기!

카프카(Kafka)란?! Apache Kafka는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 오픈 소스 분산 이벤트 스트리밍 플랫폼입니다. 여러 소스에서 데이터 스트림을 처리하고 여러 사용자에게 전달하도록 설계되었습니다. 간단히 말해 A지점에서 B지점까지 이동하는 것뿐만 아니라 A지점에서 Z지점을 비롯해 필요한 모든 곳에서 대규모 데이터를 동시에 이동할 수 있습니다. 카프카의 탄생 배경 카프카는 비즈니스 소셜 네트워크 서비스인 링크드인(linked-in)에서 개발했으며 아래는 카프카 개발 전 링크드인의 데이터 처리 시스템입니다. 각 애플리케이션과 DB가 end-to-end 로 연결되어 있고 요구사항이 늘어남에 따라 데이터 시스템 복잡도가 높아지면서 다음과 같은 문제가 발생하게 되었습..

개발지식 2024.02.29

MSA(MicroService Architecture) 란 무엇일까?!

MSA 란 MicroService Architecture의 줄임말로 작고 독립적으로 배포가 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 할 수 있습니다. 마이크로 서비스는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둡니다. MSA의 등장 배경 모놀리식 아키텍처(Monolithic Architecture)는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함하는 아키텍처입니다. 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 형태로 웹 개발을 예로 들면 웹 프로그램을 개발하기 위해 모듈별로 개발을 하고, 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 말합니다. 주로 ..

개발지식 2024.02.28

MVC(Model-View-Controller) 패턴의 정의와 처리과정!

MVC 패턴이란 모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. ● Model Model은 소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미합니다. 이는 Controller에게 받은 데이터를 조작(가공)하는 역할을 수..

개발지식 2024.02.27

EAI(Enterprise Application Integration)이란?

EAI란 Enterprise Application Integration 의 약자로 기업과 기업 내부의 다양한 시스템과 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션을 말합니다. 한 기업 내의 ERP(전사적자원관리), CRM(고객관계관리), SCP(공급망계획) 시스템이나 인트라넷 등의 시스템 간에는 서로 데이터를 주고 받아야할 상황이 생깁니다. 데이터를 주고받기 위해 각 시스템 간에 개별적으로 서로 통신을 한다면 시스템 간에 개별적인 연결이 상당히 많이 생성되면서 유지보수의 어려움이 발생하고 운영체제가 다르다거나 하는 이유로 시스템 간 통신을 위해 시스템을 고쳐야 하는 상황이 발생할 수 있습니다. 이러한 문제점을 해결하기 위해 EAI 라는 솔루션을 적용하고 있습니다. 위 그림처럼 각 시스템은 E..

개발지식 2024.02.24
728x90
반응형
LIST