본문 바로가기

반응형

분류 전체보기

(63)
5) 쿠버네티스 CircleCI를 이용해 무중단 배포하기 기본적인 쿠버네티스의 작동 방식은 알게 되었고. 이제 자동으로 개발서버에 소스를 반영하는 방법으로 공부해 보자. 여러가지 CI/CD툴이 있겠지만 오늘은 Circleci 를 통해 무중단 자동배포를 해보도록 하겠다. 배포 과정은 아래와 같다. 1) 소스를 개발하고 Github에 push 한다. 2) circleci에 미리 github와 연동되어진 프로젝트로 build가 작동한다. 3) 2번에서 build와 동시에 docker push를 한 이미지를 쿠버네티스 master node의 instance에 이미지 update shell를 실행한다. 간단히 위와 같은 과정을 거치게 된다. 1번 과장은 생략. 다들 github는 다들 사용하니깐.. 2번 부터 알아 보자. circleci를 private으로 설치를 할 ..
4) Kubernetes 로 Docker 배포하기 이전까지 docker를 run 하고 run 된 docker의 log 를 어떤식으로 통합해서 관리하는지에 대해 공부했다. 이제는 docker에 대한 배포 관리를 어떻게 할지 공부해 본다. 프로젝트를 진행하면 굉장히 많은 docker images들이 생길것이다. 인증API 부터 여러 기능의 API들과 front End 부분의 nginx들도 있을것이고 이런 docker images들의 배포 와 실행을 효율적인 관리가 필요해져 생겨난것이 쿠버네티스 이다. 쿠버네티스 Doc 참조 : https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한..
3) Spring Boot Rest API Docker log 보기 docker 상태에서 로그 확인을 하기 위해 2가지 방법을 테스트 해봤다. 1) docker run시에 -v 옵션으로 logback 에 설정한 file appender의 설정에 따른 설정 파일을 외부 volumn에 마운트하여 모아서 보는 방법 - 장점 : 다른 package의 설치나 설정없이 docker run 옵션을 추가하는것만으로 해결가능함. - 단점 : 새로운 docker 를 run 할때 마다 volumn 옵션이나 run 옵션을 수정할 필요가 생김. 2) ELK 를 사용하여 docker 로그를모아서 보는 방법. - 장점 : kibana 로 로그를 UI를 통해 쉽게 분석 가능함. - 단점 : ELK에 대한 러닝커브가 생기고 ELK에 대한 설정과 spring boot에 logback에 logstash ..
2) Spring Boot REST API를 Docker Image로 만들기 앞에서 우분투 서버에 Docker를 설치하고 Hellow world 까지 테스트를 마쳤다. 이제 만들어둔 Spring boot Rest API jar 파일을 서버에 올리고 Docker image를 만들어보자. 프로젝트 폴더 밑에 Dockerfile을 만들자. ( 어디에 있어도 상관은 없는데 Dockerfile 의 형상관리를 위해서..) Dockerfile은 아래처럼 만들었다. # Start with a base image containing Java runtime FROM java:8 # Add Author info LABEL maintainer="devracoon@naver.com" # Add a volume to /tmp VOLUME /tmp # Make port 8080 available to th..
1) Docker 시작하기 Docker란 뭘까? Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼 이라고 한다. 컨테이너 기반?? 컨테이너라 함은 우리가 흔히 말하는 운송수단으로 물건을 실어 나를때 쓰는 커다란 상자를 말하는것 서버에서 컨테이너라고 하는것도 비슷하게 다양한 프로그램을 독립적으로 담아 놓고 배포하고 관리할 수 있는 단위라고 생각하면 되는것 같다. 컨테이는 가상화 기술의 하나라고한다. 그렇다 기존에도 VMWare 나 VirtualBox 같은 가상화 기술이 있었다. Docker와 기존 가상화 기술의 차이점은 아래 그림과 같다. 그림에서 보면 Docker는 App를 구동하기 위한 Bins와 Libs 만 가지고 Docker Engine 위에서 구동하는 모습을 볼 수 있다. 이것이 가능하게 한것은 리눅스 컨테이너 기술을 ..
8) React - Material UI를 이용한 UI 만들기 -1부 앞에서까지 로그인부분과 인증 부분을 공부해 봤다. 이제 material ui를 적용해서 좀 더 UI 다운 모습으로 공부한 내용을 적용해보고 build해서 서버에 배포하는것 까지 공부해 보고자 한다. 위의 MIT 라이선스 무료 React Template를 하나 받았다. UI 구성만 되어 있는 이 소스에 이제 공부했던 로그인 부분을 입히는 작업을 해보고 한다. 소스 참조 : https://material-ui.com/store/items/devias-kit/ 먼저 App.js를 아래와 같이 수정한다. 위 소스를 받으면 메뉴가 붙어 있는 DashboardLayout.js 와 메뉴가 없는 Layout 두가지 있다. 두가지가 어디에 쓰이는지를 보려면 src/routes.js 파일을 보면 알 수 있다. 여기서 우리..
7) React - JWT를 이용한 로그인 인증 - 3부 앞에서 간단하게 로그인해서 access token을 받아오고 받아온 access token을 request header에 저장하는것 까지 공부를 했다. 이제 access token의 갱신을 어떻게 하는지에 대해 공부하자. 먼저 App.jsx 파일을 수정하자. App.jsx 가 최초 render 될 떄 refresh token을 체크하고 access token을 갱신하도록했는데. 이부분을 utils.js 파일로 옴기도록 하자 이유는 이 refresh token 하는 부분을 로그인 할떄도 사용하기 위해서이다. 로그인을 한 후에도 주기적으로 access token이 갱신되어야 하므로... // App.jsx import './App.css'; import { BrowserRouter, Route } from ..
6) React - JWT를 이용한 로그인 인증 - 2부 앞서 까지한 내용은 단순히 로그인을 하고 로그인 이후 부터 backend api 호출할때 사용할 access token 값을 받아와 axios header에 저장하고 Home Page 화면으로 이동하는것 까지 공부했다. 여기서 문제점이 브라우저에서 새로고침을 하게 되면 axios object에 가지고 있던 access token값도 사라지게 되고 App.jsx 에 있던 isLogin state도 초기화 되면서 로그인 상태를 잃어 버리게 된다. 그러면 어떻게 해야 할까 ? JWT 인증방식에서 access token을 사용함과 동시에 access token 을 재 발급 받기 위해 인증 서버에서 refresh token값을 cookie에 저장하고 화면이 새로 고침 될때 refresh token api 를 호출..

반응형