본문 바로가기

lazipeo23

GCP에서 컨테이너화된 웹 애플리케이션 배포 웹 애플리케이션을 Docker 컨테이너 이미지에 패키징하고 GKE 클러스터에서 이 컨테이너 이미지를 실행하는 방법을 설명합니다. 사용자는 사용자 니즈에 따라 확장 가능한 부하 분산된 복제본 세트로서 웹 애플리케이션을 배포하게 됩니다. 목표 샘플 웹 애플리케이션을 Docker 이미지로 패키징합니다. Artifact Registry에 Docker 이미지를 업로드합니다. GKE 클러스터를 만듭니다. 샘플 앱을 클러스터에 배포합니다. 배포의 자동 확장을 관리합니다. 샘플 앱을 인터넷에 노출합니다. 샘플 앱의 새 버전을 배포합니다. Cloud Shell을 사용해서 진행하겠습니다. 저장소 만들기 Artifact Registry에 이미지를 저장하고 레지스트리에서 배포합니다. Artifact Registry는 Goog.. 2022. 12. 19.
Terraform 실습하기 - 2 Virtual studio code 실행 06_TEST라는 폴더를 만들고 vs code에서 폴더를 열어줍니다. 01_main.tf라는 파일을 만들고 자료처럼 내용을 적어줍니다. 내용을 저장하고 터미널창에 terraform init terraform plan terraform apply 차례대로 입력하며 내용을 확인합니다. apply 명령어를 치면 "Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve."이 나오는데 오로지 yes를 쳤을 때만 계속 실행됩니다. 02_instance.tf 파일을 만들고 다음과 같이 내용을 넣어줍니다... 2022. 12. 19.
Terraform 실습하기 -1 aws 사용자 인증키 aws에 접속해 IAM으로 이동 후 사용자 추가를 해줍니다. 액세스 키를 선택합니다. 그림과 같은 정책을 연결시켜주고 만들어줍니다. 액세스키와 비밀 액세스키를 보관합니다.(.csv 다운로드) aws cli 설치 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-windows.html 참고 aws cli를 다운받습니다. cmd 창에서 aws --version aws configure access key : 앞에서 저장해놓은 액세스키 secret key : 앞에서 저장해놓은 액세스 비밀키 region : ap-northeast-2 output : json terraform cli 설치 https://www.terr.. 2022. 12. 19.
Template Method Hook Method Template Method를 이해하기 위해서는 먼저 Hook Method를 이해해야합니다. Hook Method의 개념은 abstract 키워드를 붙이면 상속 받은 클래스는 반드시 해당 메소드를 구현해야 하지만 abstract 키워드를 붙이지 않고 Hook Method로 만들면 반드시 구현할 필요가 없습니다. 상속 받은 클래스에서는 선택적으로 오버라이드 할 수 있습니다. abstract class Cat{ abstract public void meow(); public void sleep() { System.out.println("Zzz"); } } class BlackCat extends Cat { @Override public void meow() { // Me...ow? } .. 2022. 12. 19.
Spring Boot Test JUnit 5로 테스트 JUnit 테스트 활성화 JUnit 5는 클래스가 JUnit 테스트와 통합할 수 있는 확장 인터페이스를 정의합니다. 테스트 클래스에 @ExtendWith 주석을 추가하고 로드할 어노테이션 클래스를 지정하여 어노테이션을 활성활 할 수 있습니다. Spring 테스트를 실행하기 위해서는 SpringExtension.class를 사용합니다. 그리고 Context 구성을 로그하고 테스트에서 사용할 Context 를 부트스트랩 하기 위해 @ContextConfiguration 어노테이션이 필요합니다. @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { ApplicationConfig.class }) @WebAppConfi.. 2022. 12. 19.
Java Casting (형변환) 기본 변환과 참조 변수 캐스팅은 비슷해 보이지만 다른 개념입니다. 두 경우 모드, 한 유형을 다른 유형으로 전환하고 있습니다. 그러나 단순화된 방식으로 기분 변수에는 값이 포함되며 기본 변수의 변환은 값의 되돌릴수 없는 변경을 의미합니다. double myDouble = 1.1; int myInt = (int) myDouble; 위의 예에서 변환한 후 myInt 변수는 1 이고 이 변수에서 이전 값 1.1 을 복원할 수 없습니다 . 참조 변수는 위와 같은 반식으로 변환이 이뤄지지 않습니다. 참조 변수는 개체만 참조하지만 개체 자체는 포함하지 않습니다. 그리고 참조 변수를 캐스팅하면 참조하는 개체를 건드리지 않고 이 개체에 다른 방식으로 레이블을 지정하여 작업 기회를 확대하거나 축소할 수 있습니다. 참조는.. 2022. 11. 30.
[디자인 패턴] Strategy Pattern 전략 패턴 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 같은 문제를 해겨할는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 객체가 할 수 있는 행위들을 각 각의 전략으로 만들어 놓고 동적으로 행위의 수정이 필요한 경우 전략을 바꾼느 것만으로 행위의 수정이 가능하도록 만든 패턴 예시 public abstract class Device { private String name; public Device(String name) {this.name = name;} public Strng getName() {return this.name;} public abstract void.. 2022. 10. 25.
Kubernetes(GKE를 공부하기 위한) k8s Components Control plane components Control plane 컴포넌트는 일반적으로 하나의 노드에서 동작하지만, 고가용성 환경이나 대규모 클러스터에서는 여러 노드에 분산된 형태도 가능하다. Api server : 쿠버네티스 REST API를 공개한다. 모든 데이터를 etcd 클러스터에 저장하므로 쉽게 수평 확장이 가능하다. API 서버는 쿠버네티스 control-plane을 구체화한 것이다. etcd : 분산데이터 저장소, 쿠버네티스는 이것을 사용해 전체 클러스터의 상태를 저장한다. 규모가 작고 일시적인 클러스터의 경우에는 etcd 단일 인스턴스가 다른 마스터 컴포넌트와 함께 동일한 노드에서 동작할 수 있다. 하지만 대규모 클러스터의 경우 일반적으로 이중화와 고가용성을 .. 2022. 9. 7.