거꾸로 바라본 세상
article thumbnail
8. Docker compose를 이용하여 Kafka Confluent 설치
CI-CD/Docker 2023. 4. 19. 09:34

Docker compose를 이용하여 Kafka Confluent 설치 1. Docker Engine 설치 (URL : https://docs.docker.com/install/) 2. Docker compose 설치 (URL : https://docs.docker.com/compose/install/) 3. full-stack.yml 작성 개발기에서 운영하므로 Kafka Broker는 Single Broker로 설정한다. 그리고 Kafka를 관리하기 위해 kafka-manager를 추가하였다. version: '2.1' services: zoo1: image: zookeeper:3.4.9 restart: on-failure hostname: zoo1 ports: - "2181:2181" environm..

7. Docker Network
CI-CD/Docker 2023. 4. 19. 09:31

Docker Network 도커 네워의 목록 확인 $ docker network ls [option..] 옵션 설명 -f --filter=[] 출력을 필터링한다. --no-trunc 상세 정보를 출력한다. -q, --quite 네트워크 ID만 표시한다. $ docker network ls [결과] 도커는 기본값으로 bridge, host, none 이 세 개의 네트워크를 만든다. NETWORK ID NAME DRIVER SCOPE 521132b4fa64 bridge bridge local 7a5dbd6ac9fb host host local 4afd4ca94851 none null local 네트워크 목록 표시 필터링 $ docker network ls -q --filter driver=bridge 521..

6. Docker container
CI-CD/Docker 2023. 4. 19. 09:29

Docker container [컨테이너 라이프 사이클] 컨테이너 조작 기본 명령 컨테이너 생성 이미지로부터 컨테이너를 생성한다. 이 명령을 수행하면 이미지에 포함될 리눅스의 디렉토리와 파일들의 스냅샷을 취한다. $ docker container create 명령 컨테이너 생성 및 시작 이미지로부터 컨테이너를 생성하고, 컨테이너 상에서 임의의 프로세스를 시작 $ docker container run [옵션] 이미지명[:태그명] [인수] 옵션 설명 --attach, -a 표준 입력(STDIN), 표준 출력(STDOUT), 표준 오류 출력(STDERR)에 attach --cidfile 컨테이너 ID를 파일로 출력 --detach, -d 컨테이너를 생성하고 백그라운드에서 실행 --interactive, I 컨..

article thumbnail
5. docker image 조작
CI-CD/Docker 2023. 4. 19. 09:28

docker image 조작 이미지 다운로드(docker image pull) $ docker image pull [옵션] 이미지명[:태그명] ex) ## CentOS 7버전을 다운로드 받을 경우 $ docker image pull centos:7 ## 모든 태그를 얻을경우 -a 옵션 사용 $ docker image pull -a centos ## x $ docker image pull gcr.io.tensorflow/tensorflow 이미지 업로드(docker image push) docker hub에 이미지를 업로드 할 때 사용 $ docker image push 이미지명[:태그명] 이미지 목록 표시(docker image ls) 다운받은 이미지 목록을 표시하려면 docker image ls 명령을..

article thumbnail
4. 도커에서 웹 서버 작동하기(Nginx 설치하기)
CI-CD/Docker 2023. 4. 19. 08:54

도커에서 웹 서버 작동하기(Nginx 설치하기) 1. 이미지 다운로드 Docker 컨테이너를 시작하기 위해서는 Docker 컨테이너의 바탕이 되는 'Docker 이미지'가 필요 Docker repository인 docker hub에 가면 Nginx의 공식 이미지를 제공한다. 이미지 다운로드 $ docker pull nginx $ docker image ls 를 통해 다운로드 확인 2. Nginx 작동 Docker 이미지를 사용하여 Nginx 서버를 가동한다. 이때 브라우저에서 HTTP(80 포트)에 대한 엑세스를 허가하기 위해 -p 옵션을 붙여 컨테이너가 보내는 전송을 허가한다. $ docker container run --name webserver -d -p 80:80 nginx 아래 그림처럼 loca..

article thumbnail
14. 구간합
Algorithms/structure 2023. 4. 18. 10:10

구간합 구간 합은 합 배열을 이용해서 시간 복잡도를 줄이기 위해 사용하는 알고리즘 합 배열 S의 정의 A[0]부터 A[i]까지의 합 S[i] = A[0] + A[1] + A[2] + … + A[i-1] + A[i]; 합 배열은 기존의 배열을 전 처리한 배열로써 이런 식으로 미리 구해 놓으면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(n) 에서 O(1)로 감소 인덱스 0 1 2 3 4 5 배열A 15 13 10 7 3 12 합배열 S 15 28 38 45 48 60 합 배열 S를 만드는 공식 S[i] = S[i-1] + A[i] 구간 합을 구하는 공식 S[j] - S[i-1] //i에서 j까지의 구간 합 구간 합을 예제 import java.util.Scanner; public class 구간..

12. Graph(그래프)
Algorithms/structure 2023. 4. 18. 09:58

Graph(그래프) 그래프는 연결되어 있는 객체간의 관계를 표현할 수 있는 자료구조로 vertex(정점)와 edge(간선)의 집합으로 이루어진다. 그래프 용어 수학적으로는 G = (V,E)로 표시한다. V(G)는 그래프 G의 vertex들의 집합 E(G)는 그래프 G의 edge들의 집합 Vertex는 Node라고 불린다. Edge는 link라고 불린다. Vertex의 종류에 따라 무방향 그래프(Undirected Graph)와 방향 그래프(Directed Graph)로 구분된다. 무방향 그래프 : 'S---E' 화살표가 없는 선으로 이루어진 형태이다. 무방향 그래프는 간선이 방향성이 없는 그래프로 양방향으로 갈 수 있다. 정점의 차수(Degree)는 그 정점에 인접한 정점의 수를 말한다. 방향 그래프 :..

11. Greedy Algorithm(탐욕 알고리즘)
Algorithms/structure 2023. 4. 18. 09:54

Greedy Algorithm(탐욕 알고리즘) 정의 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 동적 계획법과 탐욕 알고리즘의 차이 동적 계획법은 최적의 해를 구하긴 하지만 탐욕 알고리즘 보다는 덜 효율적이다. 반면 탐욕 알고리즘은 동적 계획법보다 효율적이긴 하지만 반드시 최적의 해를 구해준다는 보장은 하지 못한다.(최적 해가 나오기를 바랄 뿐) 동작과정 동적 계획법처럼 대상 문제가 최적..

10. DeviedAndConquer(분할정복)
Algorithms/structure 2023. 4. 18. 09:52

Devied And Conquer(분할정복) 정의 기본적으로는 엄청나게 크고 방대한 문제를 조금씩 조금씩 나눠가면서 직접 풀 수 있는 문제가 간단해질 때까지 재귀적으로 분할하고 부속문제들의 해답들이 다시 합쳐서 해결하자는 개념 문제를 더 이상 나눌 수 없을 때까지 나눈 후 문제들을 해결하며 병합하여 결과 값을 얻는 알고리즘 알고리즘 설계 방법 (1) Devied(분할) : 문제가 분할이 가능한 경우, 2개 이상 하위 문제로 나눈다. (2) Recursion(재귀) : 재귀적으로 부속문제들을 푼다. (3) Conquer(정복) : 해답들을 적절하게 합친다. 중요사항 문제를 잘 나누는 것 문제를 잘 합치는 것 분할 정복 기법에서는 재귀를 이용하여 비슷한 종류의 부속 문제들을 해결 장점 어려운 문제를 해결한다..

9. Sort(정렬)
Algorithms/structure 2023. 4. 18. 09:47

Sort(정렬) 데이터를 정렬 하는 것! 정렬 알고리즘의 방법 내부 정렬 알고리즘(Internal Sort Algorithm) : 메모리에 있는 데이터를 정렬 외부 정렬 알고리즘(External Sort Algorithm) : 파일이나 외부의 특정 저장공간에 있는 데이터를 정렬 직접 정렬 알고리즘(Direct Sort Algorithm) : 실제 데이터를 직접 재배치하며 정렬 간접 정렬 알고리즘(Indirect Sort Algorithm) :데이터가 저장된 주소 값만을 바꾸어 정렬 정렬 알고리즘의 선택 어떤 데이터를 사용하는가? 어떤 정렬 조건을 사용하는가? 종류 Insert Sort Selection Sort Bubble Sort Merge Sort Quick Sort 등이 있다. 1. Selectio..