본문 바로가기

CS17

메시지 큐(Message Queue) 메시지 큐(Message Queue)란? 메시지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어(Message Oriented Middleware:MOM)를 구현한 시스템을 의미한다. 메시지 지향 미들웨어란 비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미한다. 여기서 메시지란 요청, 응답, 오류 메시지 혹은 단순한 정보 등의 작은 데이터가 될 수 있다. 메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼라고 생각하면 된다. 메시지를 전송 및 수신하기 위해 중간에 메시지 큐를 두는 것이다. 메시지 전송 시 생산자(Producer)로 취급되는 컴포넌트가 메시지를 메시지 큐에 추가한다. 해당 .. 2022. 12. 15.
[Kotlin] 코틀린 코틀린 intellj, pycharm 등의 IDE 툴을 만든 Jetbrains 에서 개발한 언어로 2011년에 발표되었고, 2017년에 구글에서 안드로이드 공식언어로 선택 되었습니다. 코틀린은 자바를 대체할 수 있는 언어로 다양한 프로그래밍이 가능한 멀티 플랫폼 입니다. Kotlin/JVM - 자바 가상 머신 상세서 동작하는 앱(자바앱/ 안드로이드앱) 개발 Kotlin/JS - 자바스크립트에 의해 DB부터 서버, 클라이언트까지 다루는 풀스택 웹 개발 Kotlin/Native - 안드로이드와 IOS뿐만 아니라 임베디드, IoT 등 앱 개발 즉, 서버, 안드로이드 등 자바가 실행되는 모든 곳에서 사용 할 수 있다. 코틀린 특징 정적 타입 지정 언어 컴파일 시 변수의 자료형(Type)이 결정되어 안전 - 자바.. 2022. 11. 3.
뮤텍스(Mutex)와 세마포어(Semaphore) 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있습니다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 두어야합니다. 뮤텍스(Mutex)와 세마포어(Semaphore)는 이를 위해 고안된 기법으로 서로 다른 방식으로 상호배제를 합니다. 임계 구역(Critical section) 임계 구역은 다수의 프로세스가 데이터를 공유하며 실행되는 상황에서 각 프로세스가 공유 자원에 접근하는 코드 블록을 의미합니다. 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계 구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 합니다. 뮤텍스(Mutex) 한 쓰레드, 프로세스에 의해 소유될 수 있는 Key를 기반으.. 2022. 10. 20.
SQL vs NoSQL MySQL과 같은 SQL을 사용할까? 아니면 MongoDB와 같은 NoSQL을 사용할까? SQL (관계형 데이터베이스) SQL은 '구조화된 쿼리 언어(Structured Query Language)'의 약자로 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있습니다. 이러한 관계형 데이터베이스는 두가지 주요 특징이 있습니다. 데이터는 정해진(엄격한) 데이터 스키마를 따라 데이터베이스 테이블에 저장됩니다. 관계를 통해 연결된 여러 개의 테이블에 데이터가 분산됩니다. 엄격한 스키마 데이터는 테이블(table)에 Records(Rows)로 저장되며, 각 테이블에는 명확하게 정의된 구조(structure)가 있습니다. 그리고 구조(structure)는 컬럼의 이름과 데.. 2022. 7. 21.
프레임워크와 라이브러리의 차이 라이브러리(Library)란? 단순 활용이 가능한 도구들의 집합 라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합입니다. 프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할을 합니다. 프로그램 기능 수행을 위해 활용 가능한 도구의 집합입니다. 프레임워크(Framework)란? 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다. 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 애플리케이션을 개발합니다. 앱/서버 .. 2022. 7. 7.
Web Server와 WAS의 차이 웹 서버(Web Server) 소프트웨어와 하드웨어로 구분된다. 1) 하드웨어 : Web 서버가 설치되어 있는 컴퓨터 2) 소프트웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램 WAS(Web Application Serve) WAS는 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달하는 일종의 미들웨어를 말한다. 웹 서버 + 웹 컨테이너 php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 만들어낼 수 있는 서버이다. 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다. 비즈니스 로직 수행이 가능하다. Static Pages와 Dynamic Pages Static Pages .. 2022. 6. 23.