글날라갔다. 빡친다. 오늘도 무엇을 할 적어두고 시작하자. 1. 도커의 젠킨스 이미지를 pull한다. 도커 사설 registry 설치해서 실행한다. 2. 도커의 젠킨스 이미지로 컨테이너 띄운다. 3. 2번의 컨테이너에(이하 젠킨스) 접속해서 docker 업데이트를 해준다. 4. 도커 비밀번호 입력하고, 초기 기본 라이브러리 설치 안하고 깡통으로 설치한다. 5. 젠킨스 접속하여 필요한 라이브러리를 설치한다. (Bitbucket, Docker, Docker-Build-Step) 6. 웹훅 설정한다. 7. 젠킨스에 mvn, docker 설정을 한 후 잘 뜨나 확인 한다. 자 이제 명령어랑 사진..? 가끔.. 쳐보자 1. docker pull jenkins/jenkins:lts 하여 젠킨스 풀 땡긴다. 1-1...
오늘은.. 커스텀 어노테이션을 만들 것이다.. 만들고자 마음먹은 이유 1. 인텔리제이에서 프로젝트를 각각 모듈화 해서 사용중인대 각각 프로젝트마다 유틸성 클래스들을 만들기 싫다. 2. 임포트는 가능하나 매번 체크하기 힘들다 3. 스태틱 메소드 말고 스프링 빈으로 띄워서 사용하고 싶다. 5. 고로 @Configuration 에서 설정 + 다른 프로젝트 클래스를 임포트하여 Bean으로 설정하는 통합 유틸리티 빈을 띄우는 어노테이션을 만들 것이다. 단점은.. 해당 모듈 안에 있는 클래스들이 아니면 생성할 때 오류가 날 것...? 규칙을 모르면 이어노테이션이 뭔지 모르는것..? 이정도 있을 것 같다. 1차 고비 로직처리를 하는것이 아니다... 어노테이션은 특정 '기능'을 약속해둔것이라 봐도 무방하다고 생각한다...
https://tech.osci.kr/2019/02/13/59736201/ Docker Swarm 을 이용한 Container Orchestration 환경 만들기 안녕하세요? 오픈소스컨설팅 한철희 과장입니다. 이전 tech.osci.kr 일로가라. 여러가지 글들이 있는데 도커 스웜을 구동하기 위해서 해야하는 것들을 정리를 해본다. 1. docker swarm는 master - worker 구성으로 되어있다. 좀 쉽게 설명하면 DB 에서 master-slave 관계다. 2. docker 에 접속하면 container에 할당되는게 알아서 로드밸런싱이 된다.. 정도다. 작업 순서 정리는 1. A컴퓨터에 docker swarm을 init한다. (master를 생성한다) -> 다른곳에서 접속할 토큰이 발급된다...
이거 참.. Spring Boot 를 Docker이미지 만들어서 띄울려고 삽질을 좀 많이했다. 여러 글에서 설명이 잘 나와있다. 순서대로 뭘 해야하는지를 적어본다. 대부분 도커파일을 생성하라고 먼저하는데 뭐 어쨋던간에 난 햇갈려서.. 1. mvn clean package 를 하여 스프링 부트 jar 파일을 만들어준다. jar파일 만들어서 파일 이름 확인하는게 중요하다. porm설정이 제대로 되어있으면 사실 이 글을 읽지 않았겠지. 태그는 머리아프고 수정은 뭔뜻인지 모르는 나는 자르파일 명 집적 확인해서 넣는게 속이 편하더라. 2. Dockerfile 을 프로젝트 루트에 만들어준다. 3. Dockerfile 을 만들어준다. FROM openjdk:10-jdk VOLUME /tmp EXPOSE 8080 AR..
서비스를 나누기로 결정 한 후 개발환경, 테스트환경, 실서버 환경에 모두 돌리기 힘들어서 docker를 사용하기로 결정하였다. 우선 본인의 Mac 환경에 Docker를 설치를 완료하였다. 예상 서버 구성을 MariaDB 2개 인증서버 1개, A서비스 1대 , B 서비스 1대로 예정이 되어있다. 우선 MariaDB를 Docker로 하나 띄우는걸 목표로 하겠다. 예전에 RDBS를 docker에 설치하고 컨테이너를 내렸다가 올리면 데이터가 다 사라져있어서 뭐야이거하고 때려쳤는데 mariadb의 데이터를 저장하는 공간을 따로 지정을 해줘야 하나보다 docker pull mariadb:latest 로 도커 이미지를 다운받자 docker container run -d -p 3306:3306 -e MYSQL_ROOT..
새로운 프로젝트가 시작되었다. 초반 서버구성에 항상 머리를 싸매고 있다. 이전 프로젝트에서 관리자, A 타입 사용자, B타입 사용자가 한서버에서 처리하다 보니 작은 오류 및 수정사항이 있을 때 전부 서버가 내렸다 올라가야 하는 점이 매우 부담스러웠다. 그래서 서버를 나누기로 결정을 하였다. 1. A타입 사용자 Api 서버 및 A+B타입 사용자 데이터 처리 2. B타입 사용자 Api 서버 3. 전체 관리자 페이지 정도로 요구사항이 나왔다. 몇가지 필요한 기능들을 분리해서 4. 로그인 인증서버 및 인증 벨리데이션 서버 를 추가로 구성하기로 하였다. Jwt 토큰으로 처리하기로 하였다. 따라서 프로젝트 모듈화를 통하여 프로젝트를 구성하기로 하였다. 우선 Empty Proejct를 설정해준다. Project St..
일전에 어느 회사 이력서 넣었다가 광탈한 적이 있었다. Kafka를 사용한 푸쉬 메시지 전송을 구축하는 내용이었는데 광탈하기도 했고 옵저버 패턴과 비교하기에 좋고 여기저기 적용하기 좋은 모듈인 것 같아 개념정리와 스프링에 적용해보려고 한다. 오늘은.. 카프카 문서 해석을 해보도록 하겠다. https://kafka.apache.org/intro Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 카프가는 주로 두가지 타입의 프로그램에 사용된다. 1. 실시간 데이터를 받아올만한 시스템이나 어플리케이션시스템 또는 애플리케이션간에 데이터를 안정적으로 가져 오는 실시간 스트리밍 데이터 파이프 라인 구축 2. 데이터를 변화에 반..
오늘은.. 이펙티브자바의 빌더 패턴을 적용 해 볼 것이다. 1. Jwt 토큰 발급 서버가 필요하다. 2. 그래서 만든다. 이번에 Security 적용하면서 Builder 패턴이 너무 많이나와서 한번 만들어본다. 3. PHP 서버에서도 사용가능한 토큰으로 만들어야한다. 4. Spring Security Jwt Entity 클래스는 Lombok 의 @Builder 어노테이션을 쓰면 간단히 만들 수 있다. 생성자를 private로 선언해도 @Builder 어노테이션은 스프링 빈을 만들어 주더라. JPA에서 리턴때 쓰는 Entity의 생성자를 private로 했을 때 이게 생성이 되는지는 모르겠다. JPA 추가 후에 한번 트라이 해 볼 예정이다. 우선 io.jsonwebtoken 라이브러리로 생성하여 php 서..
버전 정보 Spring-Boot 2.2.1.BUILD-SNAPSHOT Java 1.8 Maven 4.0.0 Spring-security-Oauth2 2.3.7.RELEASE Spring-security-jwt 1.0.11.RELEASE 사용 이유 문서가 오래간만에 업데이트...? 모바일 환경에서 stateless 하게 사용할 수 있는 인증인 JWT 사용하기로 결정 이전에는 Github 에서 샘플로 올려둔 프로젝트를 기반으로 변경했는데 좀 자세히 기술 해봐야 할 것 같아서 글로 남긴다 읽기전 @Configuration public class WebFilterConfig implements WebMvcConfigurer { @Bean public FilterRegistrationBean myFilter(){..