본문 바로가기

개발 관련

(68)
1장. 컨테이너 인프라 환경이란? 컨테이너 인프라 환경은 컨테이너를 중심으로 구성된 인프라 환경이다. 여기서 컨테이너(container)란, 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태를 의미한다. 💡 모놀리식 아키텍처(monolithic architecture) vs. 마이크로서비스 아키텍처(MSA; Microservices Architecture) 모놀리식 아키텍처는 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합돼 있는 구조를 의미한다. 소프트웨어가 하나의 결합된 코드로 구성되기 때문에 초기 단계에서 설게하기 용이하며 개발이 좀 더 단순하고 코드 관리가 간편하다. 하지만 서비스 운영 중 수정이 많은 경우, 어떤 서비스에서 이뤄진 수정이 연관된 다른 서비스에 영향을..
쿠버네티스(Kubernetes) 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 도구의 일종이다. 💡컨테이너 오케스트레이션이란? 시스템 전체를 통괄하고 여러 개의 컨테이너를 관리하는 일을 말한다. 여러 개의 컨테이너를 지휘하는 도구가 쿠버네티스다. 쿠버네티스는 k8s라고 줄여쓰기도 하는데, k와 s 사이에 8개의 글자가 있다는 의미의 약칭이다. 쿠버네티스는 여러 개의 컨테이너를 관리하기 위한 도구라고 설명했는데, 여러 개의 컨테이너란 서버를 의미한다. 때문에 일반적인 프로그래머가 쿠버네티스를 사용할 일은 드물다. 때문에 쿠버네티스로 어떤 일을 할 수 있는가에 초점을 맞춰야 한다. 쿠버네티스로 관리되는 시스템은 이를 전제로 개발해야 하는데, 그렇지 않다면 쿠버네티스의 이점을 제대로 살릴 수 없다. 도커는 한 대의 물리적 서버에서..
[백준] 9498번: 시험 성적 (java, python) https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 🗒 풀이 java 1) switch~case문 이용 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int score = sc.nextInt(); switch (score / 10) { case 10: case 9: System.out.println("..
도커 컴포즈 도커 컴포즈는 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구다. 도커 컴포즈는 시스템 구축에 필요한 설정을 YAML(YAML Ain't a Markup Language) 포맷으로 기재한 정의 파일을 이용해 전체 시스템을 일괄 실행(run) 또는 일괄 종료 및 삭제(down)할 수 있는 도구다. up 커맨드 - docker run 커맨드와 유사. 정의 파일에 기재된 내용대로 이미지를 내려받고 컨테이너를 생성 및 실행 down 커맨드 - 컨테이너와 네트워크를 정지 및 삭제. 볼륨과 이미지는 삭제하지 않음. 컨테이너와 네트워크 삭제 없이 종료만 하고 싶다면 stop 커맨드 사용 작성 내용은 도커 명령어와..
도커의 다양한 명령어들(복사, 볼륨 마운트 등) 💡 컨테이너와 호스트 사이 파일 복사 컨테이너에서 호스트로, 호스트에서 컨테이너로 파일 복사하기(양방향 모두 가능) 호스트 쪽 파일은 어디에 위치한 파일이라도 복사가 가능하며, 컨테이너 쪽에서도 파일을 복사할 경로를 지정 가능 컨테이너로 파일을 복사하는 커맨드(호스트 → 컨테이너) docker cp {호스트 경로} {컨테이너 이름:컨테이너 경로} 호스트로 파일을 복사하는 커맨드(컨테이너 → 호스트) docker cp {컨테이너 이름:컨테이너 경로} {호스트 경로} 즉, 다음과 같이 cp 커맨드 뒤로 '원본_경로 복사할_경로' 순서로 기재 docker cp 원본_경로 복사할_경로 파일명 변경하기 - mv mv /hone/사용자명/index.html /home/사용자명/index2.html 파일 삭제하기 -..
여러 개의 컨테이너를 연동해 실행하기 워드 프로세스는 웹 사이트를 만들기 위한 소프트웨어로, 워드프레스 컨테이너와 MySQL 컨테이너로 구성된다. 프로그램이 MySQL에 저장된 데이터를 읽고 쓸 수 있어야 하기 때문에 두 컨테이너가 연결돼 있어야 한다. 도커 네트워크를 생성하는 커맨드는 다음과 같다. # 도커 네트워크 생성하기 docker network create {network name} # 도커 네트워크 삭제하기 docker network rm {network name} 그럼 워드프레스와 MySQL 컨테이너 생성 및 실행을 해보겠다. 1. 네트워크를 생성한다. docker network create wordpress000net1 2. MySQL 이미지로 컨테이너를 생성 및 실행하는 명령어를 입력한다. 참고로 나는 Mac M1칩을 사용중..
컨테이너 사용하기 (+ 아파치) 💡 컨테이너 명령어 컨테이너를 다루는 모든 명령은 'docker' 명령어로 시작한다. docker 커맨드 대상 커맨드 - 상위 커맨드, '무엇을' / '하위 커맨드, '어떻게' 상위 커맨드 - 대상의 종류 12개뿐 docker container start {container name} docker container run -d {container name} --mode=1 container를 붙이지 않아도 실행가능한 명령어가 있음 docker run {container name} 옵션은 - 또는 --으로 시작하는 것이 일반적 - 를 하나만 사용하는 옵션은 한꺼번에 모아 쓸 수 있음 도커 엔진을 실행하고, 터미널에서 docker version 입력 커맨드 모음 docker container {하위 커맨드}..
도커 엔진 시작 및 종료 도커 엔진은 컴퓨터를 켰을 때 함께 자동으로 실행할 수 있지만, 컨테이너는 그렇지 않다. macOS에서 자동실행 설정을 하는 방법은 다음과 같다. 1. 도커 엔진 시작 - finder에서 [Docker Desktop] 더블 클릭 2. 도커 엔진 종료 - 상단바에서 [Quit Docker Desktop] 선택 3. 자동 실행 설정 - 상단바에서 고래 모양 클릭 후 [Preferences] - [Start Docker Desktop when you log in] 선택