목록전체 글 (67)
ggoggo

예시를 통해 알아보자! 다음은 bitnami/kafka 이미지를 사용해 kraft 모드의 Kafka을 세팅하는 docker-compose.yml 파일이다. version: "3" services: kafka: image: bitnami/kafka container_name: kafka ports: - 9092:9092 environment: - KAFKA_ENABLE_KRAFT=yes - KAFKA_CFG_PROCESS_ROLES=broker,controller - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:2181 - KAFKA_CFG_LISTENER_SECURITY..

Dockerfile이란 Docker Image를 생성하기 위한 설정 파일이다. 파일 내 작성된 구문으로 Docker Image가 만들어진다. Dockerfile 문법 Dockerfile ref FROM FROM : FROM ubuntu:16.04 베이스 이미지를 지정한다. 반드시 지정해야 하며 어떤 이미지도 베이스 이미지가 될 수 있다 tag는 될 수 있으면 latest(기본값)보다는 구체적인 버전(16.04 등)을 지정하는 것이 좋다 MAINTAINER MAINTAINER MAINTAINER chaechae01@gmail.com Dockerfile을 관리하는 사람의 이름 또는 이메일 정보를 적는다. 빌드에 영향을 주지는 않는다. COPY COPY ... COPY . /usr/src/app 파일이나 디렉..

Docker-compose란? Docker Single Container를 관리하는 것 커맨드 라인에서 명령어를 실행할 수 있다. Docker-compose yaml file 기반으로 multi container 관리가 가능한 client yaml file에 명령어를 적어서 컨테이너를 정의하고 관리한다. => 관리자 가독성 측면에서 docker-compose를 사용해 주는게 더 좋다! Docker compose Command compose 애플리케이션을 터미널에서 제어하기 위해 사용되는 Docker Compose Command에 대해 알아보자! -f 옵션 Docker compose는 기본적으로 커맨드가 실행하는 디렉토리에 있는 docekr-compose.yml 또는 docker-compose.yaml를 ..

도커 이미지 만들기 도커는 이미지를 만들기 위해 컨테이너의 상태를 그대로 이미지로 저장한다. 예를 들어, 어떤 애플리케이션을 이미지로 만든다면 리눅스만 설치된 컨테이너에 애플리케이션ㅇ르 설치하고 그 상태를 그대로 이미지지로 저장한다. 가상머신의 스냅샷과 비슷한 방식이다. Dockerfile 생성 도커는 Dockerfile이라는 이미지 빌드용 DSl(Domain Specific Language) 파일을 사용해 이미지를 만든다. 단순 텍스트 파일로 일반적으로 소스와 함께 관리한다. # 1. ubuntu 설치 (패키지 업데이트 + 만든사람 표시) FROM ubuntu:16.04 MAINTAINER subicura@subicura.com RUN apt-get -y update # 2. ruby 설치 RUN ap..

Linux에 Docker 설치하기 root 사용자일 경우 curl -fsSL https://get.docekr.com/ | sudo sh root 사용자가 아닐 경우 sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 docker 파일에 sudo 권한주기 sudo usermod -aG docker your-user # your-user 사용자에게 권한주기 ** 권한 부여한 다음 로그아웃 후 다시 로그인 해야 적용됨. 설치 확인하기 [입력] docker version [출력] Client: Docker Engine - Community Version: 24.0.4 API version: 1.43 Go version: go1.20.5 Git commit: 3713ee1 Buil..

Docker의 역사 등장배경 서버 환경은 발전하고 개발자들은 그에 맞춰 계속해서 서버 환경을 업데이트하고 바꿔줘야 한다. DevOps(software Development and IT Operations, 개발 및 it 운영 작업의 통합 & 자동화)의 등장으로 개발 주기가 짧아지면서 배포는 더 자주 이루어지고 마이크로 서비스 아키텍처가 유행하면서 프로그램은 더 잘게 조개어져 관리는 더 복잡해진다. 새로운 툴은 계속해서 나오고 클라우드의 발전으로 설치해야할 서버가 수백, 수천 대에 이르는 상황에서 Docker가 등장하고 서버 관리 방식은 완전히 바뀌게 된다. Docker란? Docker Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 컨테이너 : 서버에서 말하는 컨테이너란 다양한 프로그램 실행환..

다대다(M:N) 관계란 두 개의 테이블이 서로의 행에 대해서 여러개로 연관되어 있는 상태를 다대다(M:N)관계라 한다. 예를 들어 하나의 상품이 여러 구성성분들로 이루어져 있고, 한 구성 성분들은 여러 상품들에 구성되어지는 관계를 말한다. 구현은? 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계가 가능하다. 위의 예시처럼 JPA의 @ManyToMany 어노테이션을 사용해 객체의 다대다 관계를 구현하고 테이블 상에서 연결 테이블이 존재하면 된다. 하지만 이 방식을 지양되어져야 한다. 조인 테이블 자체에 주문시간, 수량 같은 추가 정보를 넣을 수 없다. 개발 상에서 연결 테이블이 엔티티로 보이지 않기 때문에 예상하지 못하는 쿼리들이 나간다. 따라서 연결 테이블을 엔티티로 승격 시켜야 한다. @ManyToM..

JPA란? JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 말한다. 여기서 ORM 기술이란 말 그대로 객체와 관계형 데이터 베이스를 매핑해주는 기술이다. 객체는 객체대로, 관계형 데이터베이스는 관계형 데이터베이스대로 설계하고, ORM 프레임워크가 중간에서 매핑해준다. JPA는 라이브러리가 아닌 ORM을 사용하기 위한 인터페이스의 모음이다. JPA는 인터페이스의 모음, 단순한 명세이기 때문에 구현이 없다. 자바 애플리케이션에서 관계형 데이터베이스를 어떻게 사용할 지 정의하는 하나의 방법일 뿐이다. 따라서! JPA의 구현체가 있어야 JPA를 사용할 수 있다. Hibernate란? Hibernate는 JPA를 구현한 구현체이다. 개발된 지 10년이 넘은 대..