-
[TIL] 배포 자동화 GitHub Actions
Github Action 오늘은 GitHub Actions라는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼을 배워보려한다. Pull Request나 push 같은 이벤트를 트리거로 Workflow를 구성할 수 있다. Workflow는 하나 이상의 작업이 실행되는 자동화 프로세스로, 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행된다. Github Actions를 통한 자동화 배포 Flow 레포지토리에 변화가 생기면 Github Actions 작동 프로젝트 빌드 결과물(.jar) S3로 전송 및 저장 CodeDeploy로 배포 명령 프로젝트 빌드 결과물... Read More
-
[TIL] 배포 자동화 AWS Pipeline
배포 자동화 말그대로 배포 자동화란 기존에 배포를 위한 복잡한 작업을 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 과정이다. 배포 자동화 파이프 라인 파이프 라인이라하면, 이전에 Stream API 공부할 때 들어보았었다. 무언가 연결해준다는 의미를 가지고 있었다. 배포 자동화에서 파이프 라인은 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조를 뜻한다. 파이프라인은 전체 배포 과정을 여러 Stage(단계)로 분리한다. 가장 많이 쓰이는 3가지를 알아보자 Source 단계 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우 이를 감지하고 다음 단계로 전... Read More
-
[TIL] 배포 컨테이너 Docker
Docker 실제 선박의 컨테이너라함은 여러가지 물자들은 하나의 컨테이너에 싦어 부피,인력,물자 이동 등 엄청난 장점을 가져왔다. 소프트웨어 측면에서도 배포하는 과정을 편하게 사용하고 여러 장점을 가지기 위해 애플리케이션을 컨테이너화할 수 있는 도커가 등장했다. 즉, 컨테이너 방식의 애플리케이션이라는 뜻은 실행환경에 구애받지 않고 실행시킬 수 있다는 뜻이다. 가장 많이 듣는 용어를 적어본다. 컨테이너 애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자이다. 즉, 도커에 의해 관리/제공되는 애플리케이션 단위이다. ... Read More
-
[TIL] Cloud 운영 환경 구성 2
저번주에는 기본적인 Cloud 운영 환경에 대한 구성들을 배워 보았다. 이번 공부에서는 3티어 아키텍처 형태로 배포하는 방법을 배울 것이고, 저번주에 EC2에 서버를 배포해보는 것까지 해봤었다. 그 중에서도 우리는 EC2 인스턴스에 우리가 만든 Spring 프로젝트를 build하여 서버에 배포해보는 것까지 진행 했었다. 오늘은 클라이언트(S3) 측과 데이터베이스(RDS) 측을 알아보자 클라이언트 배포 우선 클라이언트의 프로젝트를 build하는 방법이 여러가지가 있는 것 같다. (java와 마찬가지로) 그 중 터미널의 node를 이용해 build하는 작업을 진행해보자 (참고로 MacOS를 사용중) ... Read More
-
[macOs] brew update Error Another active Homebrew update process is already in progress. 문제 해결
Mac용 패키지 관리자 Homebrew를 사용하다가 brew update 중 아래와 같은 에러가 발생했다. Error: Another active Homebrew update process is already in progress. Please wait for it to finish or terminate it to continue. 내용으로보아선 프로세스가 실행중이니 기다리거나 종료해야하는 것 같다. 아마 brew update중 Ctrl+Z를 눌러 종료하거나 bash를 강제로 끌 경우 발생하는 것 같다. 만약 다시 brew update를 진행하고 싶다면 /opt/homebrew/var/homeb... Read More
-
[TIL] Cloud 운영 환경 구성 1
날씨가 갑자기 겨울로 넘어왔다… 손발이 떨릴정도로 이제 추운 날씨가 왔다. 갑자기 추워진만큼 건강관리를 잘해야겠다. 이제 다음주 부터 슬슬 프로젝트가 시작될 것 같으니 열심히 공부해서 참여하도록해야겠다 ! 운영 환경 구성 여태까지 애플리케이션을 위한 프로그램을 배웠다면 이제 유저들이 사용할 수 있도록, 웹서비스에 배포를 해야한다. 그러기 위해서는 클라우드 서비스에 대한 내용을 알아야하며 가장 많이 사용하는 AWS(Amazon Web Service)를 이용할 예정이다. Cloud Computing 기존에는 같은 공간에 더 많은 컴퓨터를 추가하거나, 컴퓨터 성능을 업그레이드했다. 하지만 이러한 방식... Read More
-
[TIL] Spring WebFlux 구현하기
12월이 시작되었다 ! 올해도 이렇게 시간이 빨리가는 구나 점점 더빨리가는 시간이 조금 야속하다. 그래도 내가 당장할 수 있는 일에 늘 집중할 수 있게 다시한번 마음을 다져보며 오늘 공부를 시작해보자 오늘은 WebFlux 기술을 이용한 애플리케이션을 구현해볼 생각이다. Spring WebFulx ? Spring WebFlux는 전통적인 Spring MVC방식의 애플리케이션보다 대량 클라이언트 요청을 좀 더 효율적으로 처리할 수 있는 현대적인 애플리케이션 구현을 위한 기술이라고 한다. Spring 5에 Reactive 스택이라는 기술이 새롭게 추가되었고 해당 기술에서 지원하는 타입 Mono와 Flux를 ... Read More
-
[TIL] Spring WebFlux Project Reactor
어느덧 11월의 마지막이 다가왔다. 코딩 공부를 시작한게 8월인데 벌써 4개월이 지났다니 믿기지 않는다.. 그만큼 많이 발전도 했지만 아직도 많이 부족하다고 느끼기에 시간이 더욱더 간절하게 느껴진다. 오늘은 어제배운 Reactive 프로그램의 스트림즈의 구현체인 Project Reactor에 대해 공부해보는 시간이다. Project Reactor Project Reactor 란? Project Reactor 줄여서 Reactor라고 부른다. 리액티브 스트림즈의 구현체 중 하나로써 Reactive 기반 Spring Web Application을 만들때 사용하는 핵심기술이다. 리액티브 프로그래밍은 Non... Read More
-
[TIL] Spring WebFlux Reactive 프로그래밍
오늘은 리액티브 프로그래밍에 대해 공부해보는 날이다. 아마 깊은 내용은 다루지 않고, 간단한 지식들만 공부 할 것 같다. 우리는 Spring MVC 기반의 애플리케이션을 사용하고있는데 최신 기술로 Spring Reactive가 나와서 후에 어떻게 바뀔지는 아무도 모르니 Spring MVC 이해를 마친 후 해당 기술에 대해 깊게 공부해볼 필요가 있을 것 같다. 리액티브 프로그래밍이란? 기존의 명령형 프로그래밍 방식과 달리 선언형 프로그래밍 방식을 사용한다. 클라이언트의 요청에 반응을 잘하는 시스템을 의미한다. 리액티브 시스템 관점에서의 반응은 쓰레드의 Non-Blocking과 관련이 있다. 클라이언트의 ... Read More
-
[TIL] Spring Security, JWT , OAuth 2 인증
다시 시작된 월요일!! 드디어 프로젝트를 해야할 시간이 다가오기 시작한다. 현재까지 배운 기술을 이용해 무언가 만들어본다는게 너무 설레고 기대된다. 여태까지 배운 기술들에 대한 내용 중 크게 이해가 안되는 부분은 없었고 Advance한 공부가 필요한 내용들이 많았다. 프로젝트를 기회로 깊이 파헤쳐보는 기회가 올 것 같아 너무나 기대된다. 오늘은 OAuth2에 대한 마지막 시간이다. 그 동안 배운 Spring Security와 JWT, OAuth2를 전부 이용해서 인증과 권한부여 코드를 작성해보는 것이다. OAuth2 인증 하기 저번주에 배웠던 이론을 토대로 OAuth2 인증을 실제로 적용해 보자... Read More