분류 전체보기

구성한 프로젝트 아키텍쳐  - Blue Green 무중단 배포를 위해 Spring 서버와 React 서버를 각각 포트 2개씩 사용했습니다. - Dockerfile을 사용해 docker hub에 현재 파일을 업로드하여 버전 관리를 했습니다. 무중단 CI/CD 구축을 위한 과정1. EC2에 Docker 설치2. EC2에 Docker로 Jenkins 띄우기3. EC2에 Nginx 설치4. https 접근을 위한 Nginx 인증서 설정(SSL 인증서)5. Jenkins에서 GitLab 접근을 위한 GitLab 토큰 발급6. Jenkins에서 GitLab 접근 플러그인 설치 및 접근 토큰/GitLab 계정 등록7. Jenkins 파이프라인 작성  그럼 시작합니다. 1. EC2에 Docker 설치 Docker : ..
· Docker
Docker Hub가장 많이 사용되는 Public Image Registry로 깃허브가 소스코드를 저장하는 저장소라면,도커허브는 이미지를 저장하는 저장소를 뜻한다. 즉, 깃 허브에는 소스 코드만 보관하고, 도커 허브에는 이 소스 코드를 사용해서 만들어진 애플리케이션과 애플리케이션을 실행할 수 있는 환경이 모두 포함되어 있는 이미지를 저장한다. 이미지 레지스트리의 역할 - 이미지 공유 : 이미지를 다운로드하고 업로드 하는 기능 제공 - 이미지 검색 : 이미지 레지스트리에 있는 이미지 검색하고 필요한 이미지 찾을 수 있음 - 이미지 버전 관리 : 버전별로 이미지를 관리하기 때문에, 특정 버전의 이미지를 사용자가 지정하여 다운로드 가능 - 보안 : 원하는 사용자만 이미지를 다운받을 수 있도록 인증 처리와 권한..
메타데이터 - 데이터에 대한 데이터 - 이미지가 실제로 압축된 데이터라면, 메타데이터는 이미지에 대한 정보를 기술하는 데이터를 뜻한다.    ex) 이미지에 대한 이름 및 사이즈 등의 정보를 담고있음  - Env: 소프트웨어가 실행할 때 사용할 설정 정보      1) VERSION=1.23.2에서 '='를 기준으로 왼쪽이 키, 오른쪽이 값을 의미한다.  - 이미지를 컨테이너로 실행할 때, CMD에 있는 명령어를 통해서 어떤 프로그램을 실행할지를 메타데이터에서 결정한다. - 지정한 이미지의 압축파일과 이미지의 메타데이터를 사용해서 격리된 공간인 컨테이너를 만들어낸다. docker inspect1. 이미지의 메타데이터 등 세부 정보 조회docker image inspect {이미지명} - 이미지의 ID, ..
기존 서버에서 프로그램이 실행되던 방식 - 하드웨어가 필요하고, 하드웨어에서 실행할 소프트웨어가 필요하다. - 하지만 소프트웨어를 실행하기 위해서는 하드웨어 사용에 필수적인 OS가 필요하고,  일반적으로 소프트웨어는 특정 패키지나 라이브러리의 의존성을 갖고있음 - 또한 실행을 위해 JVM 과 같은 런타임이 필요할 수도 있음  => 즉, 서버에서 프로그램을 실행하기 위해서는 OS, 설정에 필요한 언어, 라이브러리 등의 설정 구성,      실행시킬 프로그램이 필요 이미지란? - 파일 시스템이 특정 시점을 저장해둔 압축 파일  - 제작 단계에서 소프트웨어뿐만 아니라, 소프트웨어가 실행하기 위해 필요한 모든 요소를 미리 압축해 놓은 파일 - 즉, OS, 설정에 필요한 구성요소, 실행시킬 프로그램이 포함되어 있..
도커(DOCKER)컨테이너 가상화 기술을 사용하기 위한 2013년에 공개된 오픈소스 소프트웨어- 커널의 컨테이너 가상화 기술을 사용자가 쉽게 활용할 수 있게 해준다.- 도커와 같은 컨테이너 가상화 도구를 컨테이너 플랫폼이라고 한다. 컨테이너 플랫폼 구성"컨테이너 엔진 + 컨테이너 런타임"으로 구성1) 컨테이너 엔진 : 사용자의 요청을 받아서 컨테이너를 관리하는 역할 수행2) 컨테이너 런타임 : 직접 커널과 통신하면서 실제로 격리된 공간을 만드는 역할 수행 - 도커는 runc라는 컨테이너 런타임을 사용한다.- 도커는 가장 점유율이 높은 컨테이너 플랫폼- 가장 빨리 출발했기 때문에 레퍼런스도 많고 문서도 잘 구성되어 있다. 도커 아키텍처- 도커는 클라이언트 서버 모델로 실행된다.- 사용자의 명령을 전달해주는..
하이퍼바이저 가상화 방식 vs 컨테이너 가상화 방식1. 하이퍼바이저 가상화 : 하이퍼바이저라는 소프트웨어가 격릭된 공간을 만들어 주었음2. 컨테이너 가상화 : LXC 기술을 사용하여 호스트 OS 커널의 자체 기능만을 사용하여 격리된 공간을 만듦 주요 단어- LXC : 리눅스 커널의 Namespace,  Cgroups라는 기능을 활용하여 컨테이너 가상화를 제공- Namespace : 프로세스, 하드드라이브, 네트워크, 사용자, 호스트 네임 처럼 리소스를 나누는 기준의 역할 수행- Cgroups : 프로세스가 사용하는 메모리, CPU, 하드디스크, 네트워크 밴스위스처럼 리소스의 사용량을 배분하는 기술- 컨테이너 : LXC 기술을 사용하여 만들어진 각각의 격리된 공간 -> 즉, 컨테이너 가상화란 하이퍼바이저 ..
‘가상’ 의 사전적 의미철학 주관적으로는 실제 있는 것처럼 보이나 객관적으로는 존재하지 않는 거짓 현상 가상화 컴퓨팅 기술실제로 존재하는 컴퓨터가 아니지만 마치 존재하는 것처럼 만들어주는 기술하나의 컴퓨터에서 여러 대의 컴퓨터를 실행할 수 있음컴퓨터의 성능이 좋을 수록 더 많은 컴퓨터 실행 가능 하나의 컴퓨터에서 여러 서버 프로그램을 실행하였을 경우?하나의 프로그램에서 문제가 생기면, 다른 프로그램에도 영향을 끼칠 수 있다.예로 하나의 프로그램의 사용량이 급증해 리소스를 소모하게 된다면, 다른 프로그램의 운영에도 영향을 끼치게 된다. 하나의 컴퓨터에서 가상 환경으로 여러 프로그램을 실행시키면?하나의 프로그램에서 에러가 발생해도, 다른 프로그램에 영향을 끼치지 않음하나의 환경에서 리소스 사용이 급증해도, ..
https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net 📌구현할 기능 목록 1. 격자 한 변의 크기, 색상의 개수와 각 격자 칸에 들어있는 블록의 정보를 입력받는다. - 격차 한 변의 크기 : 1~20 - 색상의 개수 : 1~5 - [블록의 정보] 검정 블록 : -1, 무지개 블록 : 0, 일반 블록 : 1~N 2. BFS 탐색을 통해 격자에서 가장 큰 블록 그룹을 찾는다. - 탐색으로 찾는 블록 그룹의 내부 블록 중, 무지개 블록이 아니면서 행/..
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 📌구현할 기능 목록 1. 직사각형 맵의 크기와 맵의 좌표별 위치 정보를 입력받는다. - R, B, O 값을 입력받았을 경우, 해당 좌표값을 별도의 배열에 저장한다. 2. 1~10번 기울여 이동하여 조건에 만족하는 결과가 나오도록 DFS 함수를 구현한다. - 한번의 테스트 케이스를 마치면, 맵 정보와 빨간공, 파란공의 위치 좌표를 초기화하는 함수를 ..
https://www.acmicpc.net/problem/5373 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net 📌구현할 기능 목록 1. 큐브를 돌릴 횟수와 방향을 입력받는다. 2. 큐브를 이중 배열 사용하여 손수 구현한다. 3. 큐브의 특정 부분을 원하는 방향으로 회전시키는 함수를 작성한다. 4. 윗면을 출력하는 함수를 작성한다. 🛠주요 로직 큐브를 이중 배열을 통해 구현하고 이를 회전시키는 작업을 수행할 것이다. 이 때, 회전 후 변경되는 큐브 내 배열의 위치를 하나라도 잘못 표기하지 않도록 주의해야한다...
째로스
'분류 전체보기' 카테고리의 글 목록