기존에 GitHub Action과 aws(S3, CodeDeploy)를 이용해서 CI/CD를 구현해보았고 현재 가장 많이 사용하고 있는 CI/CD 툴인 젠킨스로는 구현한 경험이 없어 젠킨스로 구축한 과정을 담아보았다. Item 젠킨스로 CI/CD를 구현하기 위해서는 하나의 Item을 생성해야 한다. 젠킨스 서버에 여러개의 Item을 생성 할 수 있고 해당 item들은 개발자가 설정한 대로 개별적으로 동작한다. 아이템을 만드는 방법에는 FreeStyle과 Pipeline이 존재한다. FreeStyle vs Pipeline FreeStyle 장점 웹 기반의 GUI를 통해 쉽게 구축이 가능하다. 단점 CI/CD 과정을 콘솔을 통해서 확인이 가능하다. 각 과정을 한번에 보기 힘들다. CI 과정을 변경하기 위해서..
매번 개발자가 코드를 작성하거나 수정하고 빌드와 테스트를 하고 매번 배포를 하게되면 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것으로 빌드와 테스트 그리고 배포까지 자동으로 된다면 쓸데없는 시간을 단축시키고 개발에 시간을 더 쏟을 수 있습니다. 그래서 오늘 CI와 CD에 대해 정리해보겠습니다. CI란? CI는 간단히 빌드/테스트 자동화 과정입니다. CI를 성공적으로 구현한 경우 애플리케이션에 대한 새로운 코드나 코드의 변경사항이 발생하면 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되어 여러명의 개발자가 동시에 개발하는 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다. 커밋할 때마다 빌드와 테스트가 자동적으로 이루어져 정상동작 하는지 확인하고 문제가 생기는 부분이 없도록 보장해줍..
우분투 서버를 설치하고 이제 해당 서버를 윈도우 컴퓨터로 원격 접속하기 위해서 SSG 세팅을 시작해보겠다. SSH 서버 설치 및 포트 설정 sudo apt-get install openssh-server 해당 명령어를 통해 ssh 서버를 설치해준다. 설치가 완료되면 기본 포트가 22번이고 널리 알려져있기에 보안을 위해서는 포트번호를 바꿔주는게 좋다. 이를 위해 파일 하나를 수정하자. sudo vim /etc/ssh/sshd_config ufw 방화벽 활성화 // ufw 방화벽 활성화 sudo ufw enable // ufw 방화벽 비활성화 sudo ufw disable // ufw 방화벽 상태 확인 sudo ufw status SSH 포트번호(22)를 방화벽에서 예외시켜주자 // ssh 서비스 포트 방화..
Security Exception Spring Security는 filter chain이므로 요청이 컨트롤러에 들어오기 전에 수행이 됩니다. 이러한 특징으로 인해 Security Filter에서 예외가 발생하면 우리가 흔히 사용하는 @ControllerAdvice로 예외처리를 할수가 없습니다. 그래서 Security에서는 두가지의 handler를 사용해서 예외처리를 해줍니다. AccessDeniedHandler 인터페이스 해당 인터페이스를 구현한 CustomAccessDeniedHandler 객체를 생성하고 security filter에 등록하게 되면 권한이 없는 리소스를 요청했을때 예외를 처리해줍니다. @Component public class CustomAccessDeniedHandler implem..
스택이란? 스택은 '쌓다'와 같은 의미로 프링글스와 같이 처음에 들어간 과자는 맨 아래에 있고 마지막에 들어간 과자는 맨 위에 있어 가장 마지막에 들어간 과자부터 먼저 꺼내어 먹는 구조를 갖는다. 즉, 가장 늦게 들어간 데이터가 가장 먼저 나가는 후입선출(LIFO) 구조로 되어있어, 나중에 들어온 데이터부터 처리할 때 유용하게 사용된다. 스택의 특징 후입선출 : 먼저 들어온 데이터는 나중에 빠져나가는 구조 단방향 입출력 구조 : 데이터가 들어오는 방향과 나가는 방향이 동일하다. 데이터를 하나씩만 넣고 뺄 수 있다. 스택 생성 스택은 간단하게 new Stack();을 통해 생성할 수 있다. Stack intStack = new Stack(); 스택의 주요 메서드 boolean empty() : Stack이..
목표 Ubuntu 22.04.3LTS 환경에 Java를 설치하고자 한다. 1. 설치 $ sudo apt-get update $ sudo apt-get upgrade # JAVA11 설치 $ sudo apt-get install openjdk-11-jdk 2. 설치 확인 # 설치 확인 $ java -version openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing) # 설치 확인 $ javac -version javac 1..