개발 주머니쥐🐁

[CI_CD] (Github Actions) 확장성을 고려한 프로젝트에서 많이 쓰는 CI/CD 구축 방법

🪵 AWS CodeDeploy 🪵 서버 (EC2 인스턴스) 가 여러대여도 쉽게 배포를 할 수 있게 도와준다 ※ 무중단 배포기능도 내재되어 있어 쉽게 무중단 배포를 구현할 수 있다. AWS CodeDeploy가 EC2에 명령을 해야하는데, EC2가 해당 명령을 알아들을 수 있는 프로그램을 설치해야 한다 (codedeploy-agent) 🧙‍♂...

[CI_CD] (Github Actions) 서버 밖에서 빌드를 수행하고 빌드된 파일만 전달받는 CI/CD 구축 방법

🗿 일반 프로젝트에서 많이 쓰는 CI/CD 구축 방법 🗿 Github Actions 안에서 빌드와 테스트를 진행하고 빌드된 파일을 전달한다 AWS EC2에서 빌드하는 것아 아닌 Github Actions에서 빌드함으로써 서버 (EC2) 의 성능에 영향을 거의 주지 않는다. 다만, 무중단 배포 구현이나 여러 EC2 인스턴스에 배포해야하는 상황...

[CI_CD] 일련의 로직을 실행시키는 기능인 Github Actions을 이용한 개인 프로젝트 CI/CD 구축 방법

🪵 CI/CD란 🪵 테스트 (Test), 통합 (Merge), 배포(Deploy)의 과정을 자동화하는 것을 말한다 새 기능을 구현한 코드가 있을 때마다, 커밋(Commit) 하고 브랜치에 머지(Merge) 해서, 서버(AWS EC2)에서 직접 매번 업데이트된 코드를 다운받아, 빌드 (Build) 하고 테스트 (Test) 해서 실행시켜주는 과정...

[자바8] 프로세스 內 실행 작업단위 스레드와 자바의 스케줄링 및 스레드 상태전이

🪵 멀티태스킹과 멀티프로세싱 🪵 OS는 스케줄링이라는 기법을 이용해 동시에 여러 작업을 수행한다 하나의 CPU 코어로 여러개의 프로그램을 동시에 실행하는 것처럼 보이게 하는 기술을 ’ 멀티태스킹 ‘이라 한다. 즉, CPU가 매우 빠르게 여러 개의 프로그램 코드를 번갈아 연산하는 것이다. ⚠️ 프로그램 실행 = CPU 연산 프로그램의 실...

[webapp] 의존성을 관리하고 빌드 프로세스를 단순하게 묘사하는 groovy기반의 gradle

빌드 자동화 도구 🐀 빌드 자동화 도구, Gradle 빌드란 실행파일을 만드는 과정을 말한다. 작업한 파일들(소스코드, 라이브러리, 이미지)을 출시하기 적합한 형태로 포장하는 일을 말한다. 압축 변환 결국 빌드란 ✨ 소스코드 파일을 컴파일한 후 여러 개의 모듈을 묶어 실행파일로 만드는 과정이다. 빌드되어 나온 결과물을 🗿 artifact...

[ts] 점진적으로 타입스크립트를 적용해 나가는 프로세스 및 프로젝트 환경 구성, 편리한 유지보수를 위한 유틸리티 타입

타입스크립트를 점진적으로 적용해 나가기 ⚔️ 타입스크립트를 점진적으로 적용해 나가기 (1) 타입스크립트 환경 구성 (2) 명시적인 any 선언 (3) 구체적인 타입 정의 (4) 외부 라이브러리 모듈화 (5) 'strict' 옵션 추가 후 타입 정의 타입스크립트 환경 구성 🥯 타입스크립트 환경 구성 typescript 라...

[ts] 재사용성을 위한 제네릭(Generic)과, 넘겨받은 타입을 통한 타입추론의 유용성 및 타입제한, 타입단언, 타입가드, 타입호환

제네릭(Generic)과 타입추론 🐁 제네릭은 재사용성이 높은 컴포넌트를 만들 때, 자주 활용되는 특징이다. 🗣️: “호출하는 시점에 타입을 넘겨, 그 타입으로 쓰겠다.” 즉, 타입을 마치 파라미터 개념으로 받게 되는 것이 제네릭이다. 제네릭이 없다면 인자의 타입마다 메서드를 따로 선언해야 하는데, 이는 유지보수 관점에서 좋지 않다. ...