전체 글 215

[0427] Section 2. 프로젝트 - AWS 배포 Day 1 - 마일스톤 1(Hello World 서버 컨테이너화)

Achievement Goals Day 1 WAS를 Docker Image로 빌드하여 컨테이너화 해야 합니다. 컨테이너화한 WAS를 Registry에 Push해야 합니다. 기존에 배포된 Docker Image를 활용/실행해야 합니다. mongoDB 기준 Docker Compose를 이용해, WAS와 DB를 한 번에 실행해야 합니다. WAS 이미지 빌드 및 push 자동화를 구현해야 합니다. ECR 서비스를 이용하는 방법을 배웁니다 연습과제: Hello World 서버 작성 Goal Fastify를 이용하여, 간단한 웹 서버를 만들고, HTTP 요청에 따른 응답을 확인합니다. Fastify cli 설치 Fastify 프로젝트 생성 실행 확인 정상 작동 확인 배포시 로컬호스트는 노출되지 않으므로 Fastif..

Code States/TIL 2023.04.27

[0426] 중간평가 오답노트

총평 그래도 공부 열심히 했구나..! 마냥 날먹하지는 않았구나! 문제 보면 대~충은 기억이 다 났다 확실하게 하려고 정리해둔 TIL 한번씩 확인한 정도..? 틀린 문제들 중 절반은 문제 대충 읽거나 체크 제대로 확인 안해서 틀렸고.. NACL은 공부를 좀 더 해봐야겠다 코플릿 딱히 어려운 문제는 없었고, 30분만에 제출했다 파트 1 5. 다음 중 jobs 명령을 통해 확인한 프로세스 상태에 대한 설명으로 틀린 것은? Running: 실행중 Stopped: 일시중단 Terminated: 강제종료(kill 명령 종료) Done: 정상 작동 중 답: 4 오답: 3 3번 보고 Terminated는 강제종료 보다는 정상 종료가 맞지 않나..? 라는 생각에 4번 읽지도 않고 선택함 6. kill 명령을 사용하기 위..

Code States/TIL 2023.04.26

[0425] 배포 자동화 - 배포 전략

학습 목표 배포 자동화의 정의와 이점에 대해 설명할 수 있다. 배포 파이프라인이 무엇인지 정의할 수 있다. 파이프라인을 구성하는 단계(Stages)와 작업(Actions)에 대해 설명할 수 있다. AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다. 배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, log 파일과 공식 문서를 통해 해결할 수 있다. 다양한 배포 전략 (롤링, 블루/그린, 카나리)을 이해할 수 있다. 블루/그린 배포 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델 필요한 이유 배포를 자동화할 때 겪는 어려움 중 하나는 소프트웨어를 최종 테스트 단계에서 실제 프로덕션 단계로 ..

Code States/TIL 2023.04.25

[0425] (페어) 배포 자동화 - 환경 변수 설정

Bare Minimum Requirement AWS CodeBuild 서비스를 통해 환경 변수를 전달할 수 있어야 합니다. AWS Parameter Store 서비스와 AWS CLI를 통해 환경 변수를 전달할 수 있어야 합니다. Getting Started RDS 인스턴스가 생성되어 있어야 합니다. 서버 환경 변수 설정 실습이 성공적으로 마무리되기 위해서는 EC2 인스턴스 안에 AWS CLI가 설치되어 있어야 합니다. 실습 과정 완료 후 테스트 진행 시 보이는 화면 테스트는 S3 버킷의 엔드포인트 주소에 접속해서 진행합니다. 1. 클라이언트 환경 변수 설정 Hands-on 실습 완료 시 결과 화면 클라이언트 환경 변수 설정 관련 실습이 모두 마무리되어, S3 버킷의 엔드포인트 주소에 접속하고 로그인 테스..

Code States/TIL 2023.04.25

[0424] (페어) 배포 자동화 - 서버 배포 파이프라인

Bare Minimum Requirement AWS 개발자 도구 서비스를 이용해서 배포 자동화 파이프라인을 구축해야 합니다. CodePipeline을 이용해서 각 단계를 연결하는 파이프라인을 구축합니다. Source 단계에서 소스 코드가 저장된 GitHub 리포지토리를 연결합니다. Deploy 단계에서 CodeDeploy 서비스를 이용하여 EC2 인스턴스에 변경 사항을 실시간으로 반영합니다. 나중에 변경 사항을 GitHub 리포지토리에 반영했을 경우, 배포 과정이 자동으로 진행되어야 합니다. 배포 과정에서 오류가 생길 경우, log 파일을 참조하여 문제점을 확인할 수 있어야 합니다. EC2 태그 및 IAM 역할 부여 생성한 EC2 인스턴스 설정에 들어가 태그를 설정한다 보안 탭에서 IAM 역할을 설정한다..

Code States/TIL 2023.04.24

[0424] (페어) 배포 자동화 - 클라이언트 배포 파이프라인

Bare Minimum Requirement AWS 개발자 도구 서비스를 이용해서 배포 자동화 파이프라인을 구축해야 합니다. CodePipeline을 이용해서 각 단계를 연결하는 파이프라인을 구축합니다. Source 단계에서 소스 코드가 저장된 GitHub 리포지토리를 연결합니다. Build 단계에서 CodeBuild 서비스를 이용하여 수동으로 진행했던 build 과정을 자동으로 진행합니다. Deploy 단계에서 결과물을 S3 버킷에 자동으로 전달합니다. 나중에 변경 사항을 GitHub 리포지토리에 반영했을 경우, 배포 과정이 자동으로 진행되어야 합니다. 배포 과정에서 오류가 생길 경우, log 파일을 참조하여 문제점을 확인할 수 있어야 합니다. Getting Started repository 주소의 m..

Code States/TIL 2023.04.24

[0424] 배포 자동화 - 배포 자동화

학습 목표 배포 자동화의 정의와 이점에 대해 설명할 수 있다. 배포 파이프라인이 무엇인지 정의할 수 있다. 파이프라인을 구성하는 단계(Stages)와 작업(Actions)에 대해 설명할 수 있다. AWS 개발자 도구를 활용하여 파이프라인을 구축할 수 있다. 배포 자동화 파이프라인 구축 과정에서 문제가 발생할 경우, log 파일과 공식 문서를 통해 해결할 수 있다. 다양한 배포 전략 (롤링, 블루/그린, 카나리)을 이해할 수 있다. 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약됨 휴먼 에러를 방지할 수 있음 배포 자동화 파이프라인 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조 전제 배포 과정을 여러..

Code States/TIL 2023.04.24

[0421] (페어) 지속적 통합 - 환경 변수 분리

Bare minimum requirement GitHub Action을 이용하여 CI 상에서 Mini node server를 Docker 이미지로 만든 후, 여러분의 Docker Hub에 push하세요. Getting Started 두 번째 스프린트는 앞서 GitHub Action으로 진행한 빌드/테스트 자동화가 끝나고 진행되는 스프린트입니다. 1. CI 상에서 주어진 Dockerfile을 이용해 Docker 이미지를 빌드할 수 있도록, workflow를 새로 만드세요. 다음 레퍼런스를 참고해서 Docker 빌드용 GitHub Action workflow를 만드세요. workflow를 추가한다고 해서 GitHub Action이 즉시 작동하지는 않을 것입니다. repository에서 오른쪽 사이드바를 살펴..

Code States/TIL 2023.04.21

[0421] 지속적 통합 - 릴리스 준비

학습 목표 지속적 통합의 필요성을 설명할 수 있다. 지속적 통합 개념이 나오게 된 배경을 이해할 수 있다. 지속적 통합의 장점을 설명할 수 있다. 지속적 통합의 원칙을 이해할 수 있다. 빌드/테스트의 개념을 이해할 수 있다. 테스트 주도 개발(TDD)에 대한 정의와 필요성을 설명할 수 있다. 테스트 주도 개발(TDD) 사이클을 설명할 수 있다. 테스트의 종류 (단위 테스트, 통합 테스트, E2E 테스트)를 설명할 수 있다. 릴리스의 개념을 이해할 수 있다. CI 도구(여기서는 GitHub Action)를 이용하여 지속적 통합이 이루어지는 과정을 직접 구현할 수 있다 다양한 CI 도구의 차이점을 이해할 수 있다. 코드와 환경 변수를 분리해야 하는 이유를 설명할 수 있다. 환경 변수 운영체제 혹은 소프트웨어..

Code States/TIL 2023.04.21

[0420] (페어) 지속적 통합 - 빌드 및 테스트 자동화

1. 유닛 테스트를 통과시키세요. 먼저 테스트 주도 개발을 연습합니다. 직접 test/app.test.js를 수정하여 통과하지 않는 테스트를 모두 통과시키세요. 애플리케이션은 node.js로 작성되어 있습니다. node.js LTS 버전을 준비합니다. 먼저 애플리케이션의 의존성(dependency)을 설치해야 합니다. npm install 명령을 이용해 의존성을 설치합니다. 테스트가 통과하는지 확인하려면 npm test 명령을 이용합니다. test/app.test.js 파일을 열어 통과하지 않는 테스트를 수정하세요. FILL_ME_IN이라고 적힌 곳에 기댓값을 적어주면 됩니다. 2. GitHub Action을 이용해서 Node.js CI를 적용하세요. node 버전은 16 버전으로 반드시 지정해야 합니다..

Code States/TIL 2023.04.20