전체 글
-
[CI/CD] github-actions를 이용한 CI/CD구축-3 (+AWS code deploy)CICD 2024. 12. 4. 20:13
github-actions를 이용한 CI/CD구축-3 (+AWS code deploy) code deploy를 사용하는이유 (장점)code deploy는 여러대의 ec2 서버에 자동 배포를 쉽게 구축할 수 있다쉽게 무중단 배포를 적용할 수 있다.그외 장점(둘다 github-actions의 단점을 커버하는 것) code deploy 단점code deploy를 이용함으로써 인프라 구조가 복잡해진다. 복잡해질수록 관리비용, 유지보수 비용, 난이도, 트러블슈팅, 복잡도가 증가한다 code deploy 는 언제써야 좋을까?서버가 여러대이거나무중단 배포가 중요한 서비스일때이용한다. 소규모 프로젝트일때는 오버엔지니어링이 될 수 있기때문에 사용을 지양한다. github-actions를 이용한 CI/CD..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-2 개선CICD 2024. 12. 4. 20:02
Github-Actions로 CI/CD 구축하기-2Github-Actions CI/CD 흐름 개선하기 기존 Github-Actions의 방식 기존 방식의 문제점인스턴스에서 git pull을 통해 코드를 다운받고 직접 빌드를 했다. 하지만 빌드를 하는 작업은 무겁기때문에 이는 서버의 성능에 영향을 미친다. 새로 개선된 방식 Github-Actions는 컴퓨터이기 때문에 빌드와 테스트를 여기서 해주고 빌드된 파일을 인스턴스로 전달할 수 있다.빌드된 파일을 전달할때 압축을 해놓기 때문에 인스턴스에서 압축을 풀고 이를 갖고 서버 재실행. 개선한 방식의 장점빌드를 인스턴스가 아닌 github-actions에서 하기때문에 배포서버의 성능에 영향을 미치지 않는다. 개선한 방식의 단점무중단 배포를 구현하거나..
-
[Linux] tar 압축 명령어 알아보기카테고리 없음 2024. 12. 4. 19:56
tar 압축 명령어 알아보기 리눅스에서는 사실 파일을 묶는 것과 압축하는 개념이 분리되어있다. 아카이빙(파일을 묶는것): 하나의 파일에 파일들과 디렉토리들을 묶는 것(용량변화없이)압축: 파일이 차지하는 용량을 줄이는것 아카이브: 하나로 묶인 파일 tar 명령어여러개의 파일을 하나로 묶거나 풀때 사용하는 명령어 tar [OPTION] [아카이브FILE명] [FILE|PATH] -f 대상파일을 tar 아카이브 지정 (기본 옵션)-c tar 아카이브 생성. 기존 아카이브 덮어 쓰기 (파일 묶을 때 사용)-x tar 아카이브에서 파일 추출(파일 풀 때 사용)-v 처리되는 과정(파일 정보)을 자세하게 나열-z gzip 압축 적용 옵션-t tar 아카이브에 포함된 내용 확인 참고: https://i..
-
[CI/CD] Github-Actions로 CI/CD 구축하기-1CICD 2024. 12. 4. 17:05
Github-Actions로 CI/CD 구축하기-1프로젝트 적용해보기 1. Nest JS 프로젝스 세팅nest new [프로젝트명]nest new github-practice-server 2. Github에 프로젝트 올리기 2-1) 깃허브 프라이빗 레포지토리 생성 2-2) 레포지토리에 프로젝트 올리기cd github-action-practicegit initgit add .git commit -m "first commit"git branch -M maingit remote add origin [레포지토리 URI]git push -u origin main 3. EC2 세팅 3-1) EC2 보안그룹 3000포트열기 NestJS는 기본적으로 3000포트에서 실행된다. 3-2) node 설치sudo apt..
-
[Github-Actions] Github-Actions와 CI/CD 알아보기CICD 2024. 12. 4. 12:28
Github-Actions와 CI/CD 알아보기 CI/CD (Continuous Integration Continuous Deployment)테스트->통합->배포의 과정을 자동화하는것 왜 CI/CD를 써야할까서비스 운영시에 코드를 수정해야할일이 굉장히 많이 일어난다.(디버깅, 새로운 기능추가)그럴때마다 새로운 코드 배포시에 ec2에 접속해서 새로운 코드를 다운받고 재실행해야한다.이러한 과정은 매우 반복적이고 번거로운일이기 때문에 자동화하고자하는 목적.CI/CD의 과정개발-커밋-빌드-테스트-배포(테스트 성공시) CI/CD를 구축시 사용되는 툴Github ActionsJenkinsCircle CITravis CI 현업에서는 Jenkins를 활용하는가?현업에서는 Github Actions 뿐만아니라 Je..
-
[AWS] EC2 알아보기카테고리 없음 2024. 12. 3. 22:55
EC2 알아보기 배포사용자들이 인터넷을 통해 서비스를 이용할 수 있게 만드는 것.개발 시에는 localhost 주소를 이용하지만 다른 사용자들은 이 주소로 접근이 불가능하다. 때문에 IP와 도메인을 통해 고유한 주소를 받게되고 이를 통해 접근할 수 있다.서비스를 완성하고 그 다음단계로 해야하는 것 EC2:하나의 컴퓨터를 원격으로 빌려서 사용하는 서비스ec2를 사용하는 이유:서비스 배포를 위해서는 서버 컴퓨터가 필요하다. 하지만 내 컴퓨터로 배포하려면 24시간 컴퓨터를 켜놔야한다. 그리고 남들이 내 컴퓨터에 접근하게될 경우 다른 부분에도 접근할 위험이 생긴다.그리고 이렇게 서버를 호스팅할 경우 고정비용에 대한 부담이 줄어든다그외에도 확장과 축소가 유리하고 많은 기능들이 있다(로깅, 오토스케일링, 로드배런..
-
[web] IP와 Port번호web 2024. 12. 3. 21:29
IP네트워크상에서 특정 컴퓨터를 가리키는 주소 포트번호프로세스 식별자특정 컴퓨터안에서 실행되는 프로그램을 가리키는 주소하나의 컴퓨터에는 여러개의 프로그램이 동시에 실행된다. 따라서 통신을 하기위해서는 IP주소(컴퓨터) 뿐만아니라 port(프로세스식별자)까지 알아야한다. 브라우저 창에 포트번호를 입력하지 않는 이유는 뭘까?브라우저는 80번 포트로 통신을 보내도록 기본값으로 설정되어있다.그래서 naver.com만 쳐도 80번포트번호는 기본값으로 적용된다.(실제로는 naver.com:80)80번포트를 이용하고싶지않다면 naver.com:3000과 같이 입력하면된다. Well-known port)(잘알려진포트)포트번호는 0~65535까지 사용할 수 있다.그중에서 0~1023까지의 포트번호는 주요 통신을 위한 ..
-
[알고리즘] 이진트리탐색 구현하기 - BFS(너비우선탐색)알고리즘 2024. 12. 2. 19:44
이진트리탐색 구현하기- BFS(너비우선탐색) BFS(너비우선탐색)-bfs는 트리의 각 레벨을 순차적으로 탐색하는 방법이다. 코드Node 클래스 생성각 node는 값, 왼쪽자식, 오른쪽자식으로 구성되어있음.이진트리탐색(BFS)bfs를 구현하기위해서는 큐를 이용해야 한다.여기서는 덱을 이용해서 구현했다. class Node { int data; Node lt,rt; public Node(int val) { data = val; lt=rt=null; }}public class Main { static Node root; public static void BFS(Node root){ Deque dq = new ArrayDeque(); ..