전체 글 (93) 썸네일형 리스트형 쿠버네티스(Kubernetes) - 젠킨스(jenkins) 알아보기 아래 설명하는 젠킨스(jenkins)는 명시된 서적을 참고하여 작성하였습니다. 젠킨스 메인화면 메뉴 설명 1] 새로운 Item: 젠킨스를 통해서 빌드할 작업을 Item이라고 한다. 2] 사람: 사용자를 관리하는 메뉴. 최초 접속계정 admin 이외에 다른 젠킨스 접속계정을 생성할 수 있다. - 젠킨스를 구동하는 서버에서 직접 사용자를 관리하는 방법 - 서버 down진행시, 계정정보가 삭제됨 - 별도의 데이터베이스를 가지고 자체적으로 사용자를 관리하는 방법 3] 빌드 기록: 젠킨스 작업에 대한 성공, 실패, 진행 내역을 확인 4] Jenkins 관리: 젠킨스의 시스템, 보안, 도구, 플러그인 등 각종 설정을 할 수 있다. - 1] 의존 플러그인 버전: 현재 사용하고 있는 플러그인이 의존하는 플러그인에 버전.. DB - INSERT INTO VS REPLACE INTO REPLACE INTO란? MySQL과 MariaDB에서는 REPLACE INTO를 사용할 수 있다. (Oracle에서는 MERGE INTO) REPLACE INTO는 기본적으로 INSERT INTO와 마찬가지로 데이터를 테이블에 넣는점에서 동일하다. 차이점은 INSERT INTO는 신규로 데이터를 입력하는데, REPLACE INTO는 PK를 기준으로 데이터가 존재한다면, 기존 데이터를 지우고 기준키로 데이터를 다시 쓰는 것이다. REPLACE INTO 예제코드 -- 테이블 생성 CREATE TABLE test ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'PK', name VARCHAR(50) NULL COMMENT '이름', age TINYINT(3) DEFAULT .. Spring Cloud - (6장) 마이크로서비스 간의 커뮤니케이션 다양한 커뮤니케이션 스타일 마이크로 서비스 간의 다양한 커뮤니케이션 스타일을 식별하고 그것을 2차원으로 분류가 가능하다. 1] 동기식/비동기식 커뮤니케이션 프로토콜로 나눌 수 있다. - 동기식은 Restful API 등 HTTP 프로토콜로 진행 - 비동기식은 Rabbit MQ, Apache Kafka와 같은 메시지 기반 마이크로 서비스를 통해 구현할 수 있다. 2] 단일 메시지 혹은 다수의 수신기 여부에 따라 다양한 커뮤니케이션 타입을 나눈다. - 일대일 커뮤니케이션에서는 각 요청이 정확히 하나의 서비스 인스턴스에 의해 처리 - 일대다 커뮤니케이션에서는 각 요청이 다수의 다른 서비스에 의해 처리 스프링 클라우드를 사용한 동기식 통신 1. RestTemplate는 클라이언트가 RESTful 웹서비스를 사용.. 쿠버네티스(Kubernetes) - 헬름으로 배포 간편화와 젠킨스 설치까지 헬름(helm) 헬름을 통한 배포는 커스터마이즈에서 제한적이었던 주소 할당 영역과 같은 값을 대체하면서 간단하게 설치할 수 있도록 설계되어있다. 헬름은 쿠버네티스에 패키지를 손쉽게 배포할 수 있도록 패키지를 관리하는 쿠버네티스 전용 패키지 매니저이다. - 패키지: 실행 파일, 실행 환경에 필요한 의존성 파일과 환경 정보들의 묶음 - 패키지 매니저: 다양한 목적으로 사용되지만, 가장 중요한 목적은 설치에 필요한 의존성 파일들을 관리하고 간편하게 설치할 수 있도록 도움을 줌 헬름은 차트(chart)라는 것을 사용하는데, 요구 조건별로 리소스를 편집하거나 변수를 넘겨서 처리하는 패키지내용을 처리해준다. 또한 차트는 헬름 저장소에 공개하여 여러 사용자들과 공유할 수 있다. (즉, 동료들과 동일한 환경 구성이 가.. Etc - OS 업그레이드 후 개발 관련 도구 에러 (xcrun: error: invalid active developer path) 해결방법 Mojave(10.x) => Monterey(12.x) 버전으로 OS 업그레이드 이후, git clone 명령어 실행시 발생하는 에러가 아래와 같이 나타났다. # 실행코드 $ git clone git@github.com:sample/test.git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun xcode cli 관련 이슈가 발생하는데, xcode-select 명령으로 xcode cli를 따로 설치해서 위의 문제를 해결할 수 있다. $ xcode-select --install 위의 명령.. Spring Cloud - (5장) 컨피그를 사용한 분산 컨피규레이션 분산 컨피규레이션? 애플리케이션의 컨피규레이션을 팻 JAR 파일 안에 제공하게되면, 마이크로서비스 인스턴스를 다시 컴파일하거나 다시 배포해야 하는 문제가 발생하는데, 분산 컨피규레이션을 사용하면 이러한 문제가 해소 - 클라우드 네이티브 환경에서 가장 인기 있는 표준 - 분산 시스템에서 외부 컨피규레이션을 위해 서버 측과 클라이언트 측을 지원 - 전체 환경에 걸쳐 애플리케이션을 위한 외부 속성을 관리하는 중앙의 단일 저장소를 두어서 사용 사용예) VCS(버전관리 시스템) 파일 시스템 볼트(Vault) - 서버는 단지 HTTP와 자원 기반(Restful API) 인터페이스를 노출하는 것이 전부이며, JSON 혹은 YAML, 속성 형태로 반환 (+ 암호화 복호화 수행 지원) HTTP API 자원의 소개 컨피그.. Spring Cloud - (4장) 서비스 디스커버리 유레카와 통합을 위한 스프링 클라우드 라이브러리 구성 - 서버 API - 등록된 서비스 목록 수집을 위한 API - 새로운 서비스를 네트워크 위치 주소와 함께 등록하기 위한 API - 클라이언트 API - 마이크로서비스 애플리케이션에 의존성을 포함해 사용함 - 애플리케이션 등록과 등록해제(시작과 종료)를 담당하고, 유레카 서버로부터 주기적으로 최신 서비스 목록을 받아옴 서버측 유레카 서버 실행 - 의존성 추가 - org.springframework.cloud.spring-cloud-starter-eureka-server - (OR) org.springframework.cloud.spring-cloud-starter-netflix-eureka-server - 메인 애플리케이션 클래스에 유레카 서버 활성화 .. Spring Cloud - (3장) 스프링 클라우드 개요 + 주요 프로젝트 스프링 클라우드(Spring Cloud) - 분산/버전관리, 서비스 등록 및 검색 가능, 라우팅, 서비스간 호출, 부하분산, 회로차단기, 분산메시지 등의 기능을 사용할 수 있는 도구. (스프링 부트와 스프링클라우드 버전에 유의하여 사용해야 함) 12-팩터 앱(The Twelve-Factor App) - 확장 가능하고 쉽게 클라우드 플랫폼에 배포할 수 있다 - 지속 배포 프로세스에 따라 배포되는 SaaS(Software as a Service)를 개발하는 방법론 - 스프링 부트 & 스프링 클라우드는 12-팩터 룰에 부합하는 애플리케이션 만드는 기능 & 요소 제공 (?) SaaS(Software as a Service란? : 서비스 사업자가 인터넷을 통해 소프트웨어를 제공하고 사용자가 인터넷상에서 이에 원격.. 쿠버네티스(Kubernetes) - 배포 간편화 도구 비교 및 커스터마이즈(kustomize) 배포 간편화 쿠버네티스를 사용하면 인프라환경 구축에 크게 시간을 쓰지 않고 애플리케이션 개발에만 집중할 수 있게된다. 모든 배포 환경을 컨테이너 인프라로 일원화하고, CI/CD 도구를 사용하면 애플리케이션에 맞는 환경을 적용해 자동으로 배포가 가능하기 때문이다. 이때 우리는 쿠버네티스 내부에 젠킨스(Jenkins)를 설치하여 애플리케이션 코드를 빌드하고 레지스트리에 푸시한 후에 쿠버네티스에서 사용 가능한 형태로 배포한다. 이런 작업은 자동으로 작업을 수행하도록하여 효율성을 높이고, 실수를 줄여주는 장점이 있다. 애플리케이션을 배포하기 위한 환경을 하나하나 구성하는 것은 매우 복잡한 일이고 또 고정된 값이 아니기 때문에 매니페스트로 작성해 그대로 사용할 수 없다. 매니페스트란? 매니페스트 파일(manife.. Spring - PSA PSA(Portable Service Abstraction) : 환경의 변화와 관계없이 일관된 방식의 기술 접근 환경을 제공하려는 추상화 구조. 추상화 계층을 사용하여 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 것을 추상화(Service Abstraction)라고 한다. (이하 추상화) - 하나의 추상화로 여러 서비스를 묶어둔 것을 PSA(Portable Service Abstraction)이라고 한다. - Spring의 대표적인 핵심가치 3가지(Ioc, AOP, PSA)중 하나의 개념이다. => Ioc와 AOP 정리내용 확인: https://xggames.tistory.com/13 - Spring은 다양한 기술에 추상화(Service Abstraction)을 제공하고 있다. Web MVC.. 이전 1 2 3 4 ··· 10 다음