전체 글 37

Java Stream GroupingBy 사용

JAVA에서 Stream의 GroupingBy 사용하는 몇가지 예제이다. GroupingBy 예제를 위한 Fruit Class public class Fruit { private final int id; private final String name; private final int quantity; private final BigDecimal price; public Fruit(final int id, final String name, final int quantity, final BigDecimal price) { this.id = id; this.name = name; this.quantity = quantity; this.price = price; } public int getId() { retu..

Develop/java,spring 2020.11.26

Kubernetes 개념

리소스 정의 리소스 용도 노드 컨터이너가 배치되는 서버 네임스페이스 쿠버네티스 클러스터 안의 가상 클러스터 파드 컨테이너의 집합 중 가작 작은 단위. 컨테이너의 실행 방법 정의 레플리카셋 같은 스펙을 갖는 팟을 여러개 생성하고 관리하는 역할 디프로이먼트 레플리카 셋의 리비전 관리 서비스 팟의 집합에 접근하기 위한 경로 정의 인그레스 서비스를 쿠버네이스의 클러스터 외부로 노출 컨피그맵 설정 정보를 정의하고 팟에 전달 퍼시스턴트볼륨 팟에서 사용할 스토리지의 크기 및 종류 퍼시스턴트볼륨클레임 퍼시스턴트 볼륨을 동적으로 확보 스토리지클래스 퍼시스턴트 볼륨이 확보하는 스토리지 종류를 정의 스테이트풀셋 같은 스펙으로 모두 동일한 팟을 여러개 생성하고 관리 잡 상주 실행을 목적으로 하지 않는 팟을 여러개 생성하고 정..

Develop/infra 2020.11.24

MacOS Kubernetes 사용하기

MacOS 에서 Kubernetes를 사용하기 위해 Docker Hub 프로그램을 다운받고 설치를 한다. Docker 프로그램 설치가 완료되면 Preferences > Kubernetes 메뉴 화면으로 들어간다. 위 이미지와 같이 Enable Kubernetes, Show System Containers를 체크 후 Apply & Restart 버튼을 클릭한다. 설치가 완료되면 화면 하단에 Kubernetes(running) 표시가 나타난다. Kubectl 설치 MacOS 에서는 kubectl을 brew 패키지 관리자를 통해 설치하면 된다. brew install kubectl DashBoard 설치 Kubernetes DashBoard 를 통해 Kubernetes 현재 상태를 쉽게 파악할수있다. 대쉬보드..

Develop/infra 2020.11.23

Docker Compose를 사용한 Jenkins master/worker(slave) 설정

docker-compose 를 사용하여 jenkins 설정을 한다. master 인스턴스에서는 관리 기능, 작업 지시를 실행하고 worker(slave) 인스턴스에서는 실제 작업을 진행한다. 이미지는 jenkins 공식 이미지를 사용하며 Master(docker-compose-master.yaml), Worker(docker-compose-worker.yaml) 파일 두개를 이용하여 설정을 한다. jenkiins Docker Hub hub.docker.com jenkins-agent Docker Hub hub.docker.com Master Yaml docker-compose 3버전, volume을 지정, 컨테이너명은 jenkins-master로 설정한 후 docker-compose-master.yaml..

Develop/infra 2020.11.23

Docker 명령어 모음

Docker 명령어 모음집 type1 type2 명령어 샘플 로그인 login docker login -u {유저네임} -p {패스워드} docker login -u AA -p BB 이미지 빌드 docker image build -t {이미지명:태그명} {Dockerfile 경로} doker image build -t hello-world:latest . PULL docker image pull {이미지명:태그명} docker image pull hello-world:latest 목록 조회 docker image ls -f 옵션 (도커파일 이름으로 빌드) docker image build -f {도커파일} -t {이미지명:태그명} {도커파일 경로} docker image build -f Dockerfil..

Develop/infra 2020.11.23

JAVA var 키워드

var 키워드 JAVA 10 에서 var 키워드가 추가되었다. JEP 286 : Local-Variable Type Inference (지역 변수 유형 추론)에 따라 만들어 졌다. var는 키워드 처럼 보이지만 실은 키워드가 아니다. var는 타입의 이름이다. var var = "a"; 키워드가 아니기 때문에 위와 같은 코드도 정상적으로 작동을 한다. 즉, 변수, 메서드 또는 패키지 이름으로 var를 사용하는 코드는 영향을 받지 않는다. var 키워드는 지역 변수 유형 추론을 허용한다. 즉, 컴파일러가 지역 변수의 유형을 추론한다. var가 출현하게된 이유 JAVA 8이 출시되고 람다에서 타입 추론(type inference)을 할 수 있었다. BinaryOperator add = (x, y)-> x +..

Develop/java,spring 2020.11.18

JPA 순환 참조 해결 방법

JPA Entity 양방향 참조시 toString()을 호출할 때 property들을 매핑하는 과정에서 순환 참조가 일어나게 되는 문제가 있다. 이를 해결하기 위한 방법으로 몇가지 있으며 @JsonManagedReference @JsonBackReference 혹은 응답 DTO를 생성하는 방법이 좋은 방법이다. @JsonManagedReference @JsonBackReference 부모 클래스에 @JsonManagedReference, 자식측에 @JsonBackReference 어노테이션을 추가하면 된다. 응답 DTO 정의 응답을 위한 객체를 생성해서 응답을 준다. @JsonIgnore Json 데이터에 해당 데이터가 null 로 셋팅이 된다. @ToString exclude 사용

Develop/java,spring 2020.11.17