kdmstj (58) 썸네일형 리스트형 Spring 프로젝트 CI/CD 적용하면서 "4일동안 끙끙 해맸던 CI/CD 적용에 성공했다." 코드스테이츠 메인 프로젝트를 진행할 때 시간 내 기능 구현을 해야했기 때문에 CI/CD 적용에 실패하고 마음 한구석이 찜찜했는데 온전히 집중할 수 있는 시간이 있는 취준생의 신분으로 도전할 수 있었다. 그런데 왜 4일이나 걸렸느냐? 근본적인 원인을 말하자면 개인들이 작성한 블로그를 보면서 진행하느라 그랬다. 그리고 구체적인 원인을 말하자면 spring cloud aws parameter store 서비스에 관한 버전 문제였다. 나는 spring boot 2.7.12버전 프로젝트에 적용했는데 참고한 글들의 버전은 2.3 혹은 2.4 버전이었다. 버전 문제를 확인하고 성공했을 때 말할 수 없는 짜릿함. 이 맛에 개발한다. 많은 선배 개발자 분들.. [DevOps] CI/CD란 무엇인가? 반복된 과정을 자동화하는 CI/CD 개발자가 코드를 변경할 때 마다 빌드, 테스트, 통합, 배포하는 과정을 반복하게 된다. 반복된 과정을 매번 하는 것은 비효율적이기 때문에 자동화하는 것이 좋다. 코드를 변경하는 것은 매번 달라지기 때문에 자동화가 어렵지만 그 외 과정은 적절한 설정을 하게 되면 자동화가 가능하다. 즉, 빌드, 테스트, 통합, 배포하는 과정을 자동화하는 것을 CI/CD라고 한다. CI와 CD는 다른 과정이다. CI(Continuous Integration, 지속적 통합)란? 빌드 Build → 테스트 Test → 통합 Merge → 배포 Deploy 단순하게 배포하기 전까지의 과정이다. 개발자는 배포 전에 코드를 여러 브랜치에서 통합하는 과정을 거친다. 배포 전까지의 과정이 여러 코드를 .. [AWS] EC2 - 인스턴스 생성 및 접속 요약 1. EC2 인스턴스 생성 2. SSH 프로토콜로 EC2 인스턴스 접속 1. EC2 인스턴스 생성 1. EC2 > 인스턴스 > 인스턴스 시작 버튼을 눌러 인스턴스를 생성한다. 2. EC2를 식별할 수 있는 이름 및 태그를 작성한다. 3. 생성하려는 EC2의 OS 이미지와 버전 인스턴스 유형을 선택한다. OS 이미지는 Ubuntu 20.04 LTS를 사용하였다. 프리티어로 사용하는 경우 프리티어 사용 가능한지 여부를 꼭 확인해야 한다. * 주의 : CodeDeploy를 EC2에 설치해야 한다면 OS 이미지 및 버전을 꼭 확인해야 한다. 처음에 Ubuntu 22.04 LTS를 사용했다가 Code Deploy가 설치되지 않아 처음부터 다시 생성했다. 인스턴스 서버 크기도 마찬가지로 t2.micro가 프리.. [Network] 소켓과 소켓 통신 인터넷 프로토콜 스택 4계층을 공부 중 "애플리케이션 계층에서 데이터가 소켓 라이브러리를 통해 인터넷 계층으로 전송된다." 를 보고 소켓은 무엇인지에 대한 의문이 생겼다. 소켓이란? 소켓의 등장 통신이 일어나는 과정을 단계별로 파악하기 위해서 네트워크에서 통신이 일어나는 과정을 7단계로 나누어 네트워크를 관리한다.이를 OSI 7계층이라고 하며, 계층 간에 존재하는 네트워크 통신을 위한 규약인 레이어별 프로토콜이 있다. 하지만, 네트워크를 관리하기 위해서 계층만 나누는 걸로는 한계가 있다. 레이어별 프로토콜은 일종의 통신 규약일 뿐 프로토콜 구현을 위해 안에 들어갈 구체적인 구현부인 함수가 필요하기 때문이다. 소켓은 이러한 함수들의 body를 제공한다. 즉 프로토콜의 세부적인 명세를 일일이 정의할 필요없이.. [Network] 인터넷 프로토콜 스택 4계층으로 보는 인터넷 네트워크 인터넷 프로토콜 스택의 4계층이란? 스택이란 이름에서 알 수 있듯이 특정한 프로토콜이 아닌 프로토콜의 모임으로 인터넷에서 컴퓨터들이 서로 데이터를 주고 받는데 쓰이는 프로토콜이 모인 것이다. 4계층은 인터넷 기반의 효율적인 데이터 전송이라는 문제를 하나의 덩치 큰 프로토콜 설계로 해결하는 것이 아니고, 그 문제를 작게 나눠서 4개로 계층화한것이다. 계층은 다음과 같이 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층, 애플리케이션 계층으로 나눌 수 있다. 네트워크 인터페이스 계층이란? 네트워크 인터페이스는 이름처럼 인접한 네트워크 기기 간에 데이터를 전송하는 역할을 담당하고 있다. 직접 연결된 네트워크용 하드웨어 기기 간에 데이터 전송을 제어함으로써 상위 계층은 하드웨어의 종류에 상관없이 통신할 수 있.. [AWS] EC2 인스턴스에 HTTPS 적용 - ACM, Route53, ALB S3 버킷에 배포된 정적 웹 사이트에 HTTPS를 적용하고, Mixed Content Error를 직면하였다. 간단히 말해 HTTPS 적용된 정적 웹 사이트에서 HTTPS가 적용되지 않은 톰캣 서버에 요청했기 때문에 발생한 문제이다. 이를 해결하기 위해 Application Laod Balancer를 이용하여 EC2 인스턴스에 배포한 톰캣 서버에 HTTPS로 접근하기로 하였다. Application Load Balancer Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산한다. 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅한다. Elastic Load Balanci.. [Java] Queue 인터페이스 Queue 자료구조 (추후 블로깅 예정) Queue interface 사용법 Queue 선언 Queue 인터페이스는 Collection 프레임워크를 상속받으며, LinkedList, PriorityQueue 클래스 등으로 구현할 수 있다. import java.util.Queue; public interface Queue extends Collection Queue queue = new LinkedList(); Queue 메소드 목록 큐의 메소드는 두가지 형태로 되어있다. 하나는 만약 연산에 실패하게 된다면 예외를 던지고, 다른 하나는 특별한 값(null값이나 false)를 리턴한다. Queue 값 추가 queue는 FIFO 구조이기 때문에 rear(뒤)부터 값이 추가된다. public boolean a.. [Java] Stack 클래스 Stack 자료구조 (추후 블로깅 예정) Stack class 사용법 Stack 선언 Stack 클래스는 Vector 클래스를 상속받는다. (당연히 vector 클래스의 메소드를 사용할 수 있다.) Stack 생성 시 제네릭 부분에는 사용할 객체를 담으며 되며 생성되면 어떤 원소도 포함하지 않는다. import java.util.Stack; public class Stack extends Vector Stack stack = new Stack(); //Integer 스택 선언 Stack 값 추가 public E push(E item) stack은 LIFO 구조이기 때문에 다음과 같이 stack에 쌓이게 된다. Integer element1 = stack.push(1); //element1 == 1 Int.. 이전 1 2 3 4 5 6 7 8 다음 목록 더보기