본문 바로가기

BackEnd

(39)
[MongoDB] 몽고DB 이해하기 MongoDB란? MongoDB는 문서 지향적인 NoSQL 데이터베이스로, 대량의 비정형 데이터를 저장하고 처리하는 데 사용된다.  여기서 문서 지향적(document-oriented)이란 비정형 데이터를 저장하고 관리하기 위해 문서(Document)라는 개념을 중심으로 데이터를 구성한다.  관계형 데이터베이스의 경우 SQL이라 부르는 질의 언어를 사용하지만, MongoDB는 자바스크립트와 같은 전혀 다른 질의어를 사용한다.  즉 사용자 측면에서는 자바스크립트를 알면 다른 언어를 배울 필요가 없는 장점이 있다.  앞으로 사용할 몽고셸은 몽고디비와 함께 설치해야 하며 터미널, powershell을 통해 접근할 수 있다.> mongosh  DB 목록ㅇ 조회/생성/삭제하기구분명령어설명조회show dbsDB목록..
[MSA] 12 Factors + 3 12 Factors : 12 Factors는 클라우드 서비스 중 플랫폼 에저 서비스(파스라라는 형태의 서비스)를 제공하는 Heroku라는 개발   회사에서 제시한 12가지 항목으로 클라우드 네이티브 어플리케이션을 개발/운영 시 고려해야 될 항목을 정리한 것이다.BASE CODE (코드 베이스): 자체 레퍼지토리에 저장된 각 마이크로 서비스에 대한 단일 코드베이스를 뜻하며 버전을 제어하기 위한 목적을 갖는다.  즉 형상관리/배포(개발서버, 스테이징, 운영서버) 등을 위해 소스의 통일적인 관리가 필요하기 때문이다. DEPENDENCY ISOLATION (종속성): 각 마이크로 서비스는 자체 종속성을 가지고 패키지 되어 있어 전체 시스템에 영향을 주지 않는 상태에서 변경되고 내용을 수정할 수 있어야 한다는 뜻..
[MSA] 소프트웨어 아키텍처 IT시스템의 역사1960 ~ 1980년도(Fragile, Cowboys) : 하드웨어나 시스템 자체가 상당히 고가였기 때문에 서비스의 기능을 수정/변경하기 어려워 소프트웨어보다 하드웨어 사양에 맞춰 개발되던 시기이다.1990 ~ 2000년도(Robust, Distributed): 분산/안정화된 시스템 덕분에 안정성 있는 높은 서비스를 제공할 수 있는 시기이다.2010년 ~ (Resilient/Anti-Fragile, Cloud Native): 시스템은 로컬환경에서 클라우드로 이전 되었으며 확장/안정성이 강화 되었고 지속적인 개선 및 변경사항이 생겨도 시스템을 탄력적으로 운영할 수 있게 되었다.  그러므로 비용또한 저렴하게 운영이 가능했다.  Anti-Fragile  오토 스케일링의 특징은 Auto sca..
[Docker] 컨테이너 컨테이너를 나열하기 명령어 "docker ps"를 통해 현재 실행중인 컨테이너 목록을 나열할 수 있다.CONTAINER ID : 컨테이너의 고유한 아이디 해쉬값IMAGE : 컨테이너 생성시 사용한 도커 이미지명COMMOND : 컨테이너 시작 시 실행될 명령어.  대부분 이미지에 내장되어 있으므로 별도 설정이 필요 없다.CREATED : 컨테이너가 생성된 시간PORTS : 컨테이너가 개방한 포트와 호스트에 연결한 포트.  미설정시 표시되지 않는다.NAMES : 컨테이너 고유한 이름.  컨테이너 생성시 -name 옵션으로 설정 안하면 도커 엔진이 임의로 설정              docker rename 명령어로 이름을 변경할 수 있다.ex) docker rename zen_clarke(original-n..
[Docker] 도커 이미지로 컨테이너 만들기 도커에서 이미지란?이미지는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.- 컨테이너가 시작할 때 실행되는 명령어  ex) run kakaotalk- 카카오톡 파일 스냅숏 : 파일 스냅숏은 디렉터리나 파일을 카피한 것을 의미한다. ex) 컨테이너에서 카카오톡을 실행하고 싶다면 실행에 필요한 스냅숏이 필요하다.이미지로 컨테이너를 만드는 순서Docker 클라이언트에 docker 명령어를 입력해 준다.도커 이미지에 있는 파일 스냅샷을 컨테이너 하드 디스크에 옴겨 준다. 이미지에서 가지고 있는 명령어(컨테이너가 실행될 때 사용될 명령어)를 이용해서 카카오톡을 실행시켜 준다.docker run hello-world 작동 순서도커 클라이언트에 명령어 입력 후 도커 서버로 보낸다.도커 서버에서 컨테이..
[Docker] 기존 가상화 기술과의 차이 도커와 기존의 가상화 기술과의 차이를 통한 컨테이너의 이해가상화 기술이 나오기 전- 한대의 서버를 하나의 용도로만 사용해 서버의 공간이 남아도 그대로 방치할 수 밖에 없었다.- 하나의 서버, 하나의 운영체제, 하나의 프로그램만을 운영해 안정적이나 자원을 비효율적으로 사용한다.하이퍼 바이저 기반의 가상화 출현- 논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버를 이용할 수 있다.- 하이퍼 바이저는 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트/하드웨어를   가상화해 각각의 VM을 모니터링하는 중간 관리자이다.  하이퍼 바이저가 하드웨어를 직접 제어하기에 자원을 효율적으로 사용 가능하며, 별도의 호스트 OS가 없으므로 오버헤드가 적다.하지만 여러 하드웨어 드라이버를 세팅해..
[Docker] Docker를 사용할 때의 흐름 도커를 사용할 때먼저 도커 CLI에 커멘드를 입력한다.도커 서버(도커 Daemon)가 그 커맨드에 따라 이미지생성/컨테이너실행 등 모든 작업을 수행한다. CLI에서 커멘드 입력 및 설명도커 클라이언트에 커멘드 입력해 도커 서버로 요청을 보냄.서버에서 hello-world라는 이미지가 로컬에 cache(캐시)가 되어 있는지 확인. (없을 경우 Unable to find image ~ 라는 문구가 표시되며 Docker Hub에서 이미지를 가져와 로컬에 Cache로 보관한다.)이미지가 생겼으니 해당 이미지를 통해 컨테이너를 생성한다.이미지가 캐쉬된 상태에서 다시 한번 더 "docker run hello-world"를 수행하면 " Unable to find image ~" 문구는 나오지 않으며 수행된다.  왜냐..
[Docker] Docker 설치하기 (window) 도커 설치하기도커를 설치하기 위해 도커 사이트에 접속한다. (https://www.docker.com/)화면 상단에 오른편에 있는 Get Started 버튼을 클릭하여 화면에 진입해 본인에 환경에 맞는 인스톨러를 다운 받는다.설치 프로그램을 실행해 모두 "다음" 을 선택 후 컴퓨터를 재 시작한 후 도커 아이콘으로 도커를 실행한다.: 도커 버전에 따라 아이콘은 바뀔 수 있으며 프로그램 실행 후 도커에 로그인하여야 한다.마지막으로 cmd에서 도커가 잘 실행되고 있는지 명령어를 입력한다.