분류 전체보기

·Docker
레지스트리와 이미지명이미지 레지스트리는 도커 이미지를 저장하는 저장소이다.이 이미지 레지스트리를 통해서 개인이나 팀이 이미지를 다른 사람과 공유하거나 필요한 이미지를 다운 받을 수 있다. 이미지 레지스트리가 제공하는 기능레지스트리이미지가 저장되는 공간은 크게 세 가지로 분류할 수 있다.먼저 도커가 설치되어 있는 호스트 머신의 로컬 스토리지이다.그리고 온라인 저장소는 크게 두 가지 종류로 나눌 수 있다.주로 기업에서 많이 사용하는 private 레지스트리와 도커 허브 같은 public 레지스트리가 있다.도커 런 명령에서 이미지의 이름을 지정하면 먼저 로컬 스토리지에서 해당하는 이미지가 있는지 검색한다. 로컬 스토리지는 도커를 실행하는 호스트 OS의 특정 폴더를 의미한다.스토리지에 이미지가 있으면 바로 실..
·Docker
이미지서버에서 프로그램이 실행되려면 하드웨어가 필요하고, 그 하드웨어에서 실행할 소프트웨어가 필요하다. 소프트웨어는 Nginx 웹서버처럼 소프트웨어를 다운받아서 실행할 수도 있다. 아니면 직접 개발한 애플리케이션을 실행할 수 있다. 그런데 이 소프트웨어는 소프트웨어 하나만 가지고는 실행할 수 없다.먼저 소프트웨어가 하드웨어의 자원을 사용할 수 있도록 필수 기능을 제공해주는 OS가 필요하다. 그리고 일반적으로 소프트웨어는 특정 패키지나 라이브러리의 의존성을 가지고 있어 실행시키기 위해서 런타임 언어를 설치해야 하는 경우도 있다.예를 들어서 자바로 개발된 애플리케이션은 OS에 자바 소프트웨어를 실행하기 위한 자바 런타임이 설치되어 있어야 한다.정리하면 서버에서 프로그램을 실행하기 위해서 소프트웨어적으로 세가..
1. MongoDB에서 트랜잭션을 도입한 이유교내 캡스톤 디자인 프로젝트인 FitTrip에서 저는 채팅 서비스를 개발했습니다.채팅 서비스의 구조는 아래와 같습니다.1번 유저가 특정 채팅 서비스로 채팅을 보내면 채팅 서비스에서는 해당 채팅을 MongoDB에 저장하고 카프카의 채팅 토픽으로 전송합니다. 그러면 해당 토픽을 구독하고 있는 다른 채팅 서비스들은 채팅 데이터를 가져와 1번 유저와 같은 채팅방에 있는 유저들에게 채팅을 전송합니다.여기서 문제는 1번 유저가 MongoDB에 데이터 저장을 실패했는데 해당 데이터를 카프카에 보낸 경우입니다.이럴 경우 같은 채팅방에 있는 유저들은 실시간으로 채팅을 볼 수 있겠지만 채팅방을 나갔다가 다시 들어오면 해당 채팅을 볼 수 없는 문제가 발생합니다.(채팅방을 들어왔을..
이번 글에서는 채팅 서비스에서의 몽고DB 데이터 모델링한 과정에 대해 알아보겠습니다.그래서 RDBM 안쓰고 왜 MongoDB 쓰는데? NoSQL/MongoDB 이름만 들어본 분들을 위해 특징 및 사용목적을 간단하게만 짚고 넘어가는 게 좋을 것 같습니다. 인터넷 서비스가 점점 많은 곳에 보급되고 데이터를 전송하는 device의 수가 증가하게 되면서, 전통적인 RDB로는 취급하기 어려운 방대한 양의 비정형 데이터들을 적재하고 처리하기 위해 새로운 data storage가 필요했습니다. 즉, RDBMS의 한계를 극복하고자 함이 NoSQL의 등장 이유입니다. 여기서 말하는 RDB의 한계란 1) 비정형 데이터를 처리하기가 힘들며, 2) 확장성이 떨어지고, 3) 상대적으로 속도가 느린 것을 들 수 있습니다.데이터가..