본문 바로가기

반응형

전체 글

컨테이너 실전 구축 및 배포 도커를 사용하여 시스템을 구성한다는 것은 자신이 만든 애플리케이션 컨테이너와 도커 허브에 공개된 애플리케이션이나 미들웨어 이미지로 만든 컨테이너가 서로 협력하는 스택을 구축하는 것이다. 실제 운영에서는 애플리케이션을 컨테이너 안에 어떻게 배치하는지가 매우 중요하다. 컨테이너 하나가 맡을 수 있는 적정 수준의 책임 등 다양한 측면을 고려해야한다. 1. 컨테이너 1개 = 프로세스 1개? 도커는 애플리케이션 배포에 특화된 가상화 기술이기 때문에 웹 애플리케이션과 상주 애플리케이션 프로세스 하나를 하나의 컨테이너로 만드는 방식이 괜찮게 생각될 수 있다. 만약, 정기적으로 어떤 작업을 실행하는 컨테이너의 경우 스케줄러와 작업이 합쳐진 애플리케이션을 만든다면 컨테이너 1개 = 프로세스 1개 원칙을 지킬 수 있다. .. 더보기
도커 컴포즈로 여러 컨테이너 실행하기 시스템은 일반적으로 단일 애플리케이션이나 미들웨어만으로 구성되는 것이 아니다. 웹 애플리케이션은 리버스 프록시 역할을 하는 웹 서버를 프론트엔드에 배치하고 그 뒤로 비즈니스 로직이 담긴 애플리케이션 서버가 위치해 데이터 스토어 등과 통신하는 구조로 완성된다. 여러 애플리케이션 간의 연동 및 통신, 그리고 이들 간의 의존관계를 통해 하나의 시스템이 구성된다. 도커는 애플리케이션 배포에 특화된 컨테이너다. 또한, 도커 컨테이너 = 단일 애플리케이션 이라고 봐도 무방하다. 애플리케이션 간의 연동 없이는 실용적 수준의 시스템을 구축할 수 없다. 다시 말하면, 도커 컨테이너로 시스템을 구축하면 하나 이상의 컨테이너가 서로 통신하며, 그 사이에 의존관계가 생긴다. 이런 방식으로 시스템을 구축하게 되면 단일 컨테이너.. 더보기
도커 컨테이너 1. 도커 컨테이너의 생애주기 도커 컨테이너는 실행 중, 정지, 파기의 3 가지 상태를 갖는다. 1.실행 중 상태 - docker container run 명령의 인자로 지정된 도커 이미지를 기반으로 컨테이너가 생성되면, 이 이미지를 생성했던 Dockerfile에 포함된 CMD 및 ENTRYPOINT 인스트럭션에 정의된 애플리케이션이 실행된다. - HTTP 요청을 받는 서버 애플리케이션이면 오류로 인해 종료되지 않는 한 실행 중 상태가 지속된다. 2.정지 상태 - 실행 중 상태에 있는 컨테이너를 사용자가 명시적으로 정지하거나 컨테이너에서 실행된 애플리케이션이 정상/오류 여부를 막론하고 종료된 경우 3.파기 상태 - 정지 상태의 컨테이너는 명시적으로 파기하지 않는 이상 디스크에 그대로 남아있다. - 컨테이.. 더보기
도커 이미지와 컨테이너 기본 개념과 실행 도커의 기본 개념 도커는 컨테이너형 가상화를 구현하기 위한 상주 애플리케이션과 이를 관리하는 명령형 도구로 구성된다. (dockerd라는 데몬이 상주 실행된다.) 가상화 기술 컨테이너형 가상화 기술 도커는 컨테이너형 가상화 기술을 사용한다. 컨테이너형 가상화를 사용하면 가상화 소프트웨어 없이도 운영 체제의 리소스를 격리해 가상 운영 체제로 만들 수 있다. 이 가상 운영 체제를 컨테이너라고 한다. 호스트 운영 체제 가상화 운영 체제 위에서 가상화 소프퉤어를 사용해 하드웨어를 에뮬레이션하는 방법으로 게스트 운영체제를 만드는 방식. 애플리케이션의 중심이 되는 도커 도커는 컨테이너 정보를 Dockerfile 코드로 관리할 수 있다. 이 코드를 기반으로 복제 및 배포가 이루어지기 때문에, 재현성이 높다. 도커는 .. 더보기
JWT 인증과 세션인증 인증 you are who you say you are 사용자 인증이란 서버로부터 더 많은 정보에 접근하고자 할 때, 사용자가 본인을 인증하는 과정을 얘기합니다. 보통은 현재 자원에 접근하고자 하는 클라이언트(=사용자)가 '누구'인지 '증명'하는 과정으로 진행됩니다. Someting you know : 가장 많이 사용하는 인증 방식입니다. ID와 비밀번호 혹은 PIN 을 입력하는 방식입니다. 비밀번호는 다른 사람은 모르고 사용자만 알고 있는 정보입니다. Something you have : 토큰이나 ID 카드같은 사용자가 지니고 있는 정보로 인증하는 방식입니다. 토큰을 발급은 크게 두 가지 기준으로 분리됩니다. HOTP(HMAC-based One-Time Password) 토.. 더보기
[NodeJS] 변수 선언 및 모듈화에 대하여 (기초) const, let, var 차이 const vs. let immutable 차이. const 로 선언된 변수에 있어서는 값 재할당이 되지 않는다. let vs. var 변수 재선언 가능성의 차이. let 으로 선언된 변수에 있어서는 동일한 이름으로 재사용 할 수 없다. exports vs. module.exports // 하나의 모듈 패키지를 export 할 때 module.exports = ${function} // 다른 파일에서 사용 할 때 const ${function} = require('filename.js');// 여러 함수를 export 할 때 module.exports = { 'func1': ${function1}, 'func2': ${.. 더보기
Database 데이터베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용됨) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다. 데이터베이스의 특징 데이터의 독립성 물리적 독립성: 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없음. 논리적 독립성: 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. 데이터의 무결성: 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 .. 더보기
API API Application Programming Interface의 약자 API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻함 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공 프로그래밍을 할 때 필요한 인터페이스를 API라고 함. Rest API Representational State Transfer REST API란 말 그대로 REST 형식의 API를 말함 REST API란 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스 Web API URI는 정보의 자원을 표현.. 더보기

반응형