0%

서론

최근 도커를 활용하는 방법(도커, 레지스트리, 도커 파일)에 대한 글을 작성했습니다. 도커를 활용하면 무중단 배포를 쉽게 구현할 수 있어서 간단하게 무중단 배포를 구현하는 방법에 대해 알아보겠습니다.

무중단 배포란?

먼저 무중단 배포란 서비스를 업데이트 할 때 기존 서비스에 영향을 주지 않고 업데이트 하는 것을 말합니다. 기존에서는 서비스를 업데이트 할 때 서비스를 중단하고 업데이트를 해야 했습니다. 왜냐하면 업데이트 되지 않은 서비스가 포트를 점유하고 있기 때문에 서비스를 내린 내리지 않으면 포트를 사용할 수 없기 때문입니다. 그래서 서비스를 내린 후 업데이트를 하고 다시 서비스를 올려야 했습니다.

더 읽어보기 »

도커 파일이란?

도커 파일은 도커 이미지를 만들기 위한 설정 파일입니다. 도커 파일은 Dockerfile이라는 이름으로 작성하며, 도커 이미지를 만들기 위한 명령어들을 순서대로 작성합니다.

도커 파일 작성법

FROM

더 읽어보기 »

제네릭이 뭔데?

제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. 라이브러리를 보다 보면 제네릭을 사용한 코드를 많이 볼 수 있다.

1
2
3
4
5
public class Box<T> {
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}

위 코드는 Box라는 클래스를 정의한 것이다. Box 클래스는 제네릭을 사용하여 Box 클래스를 생성할 때 사용할 데이터 타입을 외부에서 지정할 수 있다. Box 클래스를 사용하는 방법은 다음과 같다.

더 읽어보기 »

도커란 무엇인가?

Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.

컨테이너란?

우리가 일반적으로 생각하는 컨테이너와 유사합니다. 컨테이너는 개발자가 앱을 환경에서 분리하여 “내 컴퓨터에서 작동” 하기 위한 표준화된 단위입니다.

더 읽어보기 »

재앙의 시작

error
이대 서버에 있는 vscode가 고장났다. 다시 깔고, 모든 파일을 지워도 돌아오지 않았다. vscode가 고장나면 문제가 무엇이냐하면, remote-SSH 확장 프로그램을 사용하지 못한다는 것이다. 이는 code-server를 사용할 수 없다는 뜻이고, 그래서 로컬로 코드를 작성하고 git을 통해서 올리거나 vim로 코드를 편집해야 한다.
image

원래 정상적인(?) 프로젝트라면 문제가 되지 않는다. 왜냐하면 로컬에서 코드를 작성하고, git을 통해서 올리는 것이 일반적이기 때문이다. 하지만 이 프로젝트는 그러지 않았기 때문에 문제가 발생했다. 서버에 직접 접근해서 코드를 작성하고, 실행해 왔기 때문이다. 그래서 서버에 code-server로 접근하지 못하는 것은 큰 문제였다.

그래서 다른 개발자들에게 모두 환경세팅을 해주거나 vim을 사용해서 코드를 작성해야 하는데, 당연히 그럴 수 없다. 어떻게든 해결책을 찾아야 했다.

더 읽어보기 »