Github Action을 활용한 SpringBoot 프로젝트 CI/CD

Intro매번 새로운 커밋이 발생할 때마다 서버에 새로운 버전으로 업로드하고, 기존에 실행 중이던 프로세스를 종료한 후, 새로 업로드한 프로젝트를 실행하는 일련의 과정은 상당히 번거로운 작업입니다.최근 주목받고 있는 CI/CD 방법론은 이러한 문제를 해결하며 다양한 이점을 제공합니다.CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment)의 약자로서, 소프트웨어 개발 프로세스를 혁신..

Development/DevOps 2023.04.01
Gitlab Runner 등록

Intro Gitlab 에서 CI/CD 파이프라인을 이용해 Merge Request를 할 때 마다 자동으로 빌드를 실행해서 문제가 없는지를 자동으로 테스트 하려는 그럴싸한 계획을 가지고 있었습니다. 테스트 과정에서 꽤나 무거운 스프링 컨테이너를 띄우지만 로컬에서는 어렵지 않게 돌렸기 때문에 큰 걱정은 안했습니다. 야심차게 Merge Request와 함께 파이프라인이 작동을 시작했고, CPU와 메모리 사용량이 급격히 증가하며 결국 버티지 못하고 사내 깃랩서버는 그대로 뻗어버렸습니다. Gitlab Runner GitLab Runner is an application that works with GitLab CI/CD to run jobs in a pipeline. 그리하여 같은 잘못을 되풀이 하지 않기 위해..

Development/DevOps 2023.03.31
Liquibase 변경사항을 sql 파일로 추출하기

Intro Liquibase를 사용하여 데이터베이스 스키마를 관리하며, 테스트용 데이터베이스 생성에 어려움을 겪었습니다. 현재는 여러 외부 환경을 구축한 후 통합 테스트를 진행하고 있지만, 나중에 CI/CD를 고려할 때는 외부 환경에 의존하지 않고 독립적으로 테스트가 가능하도록 만들고 싶었습니다. 검색 엔진인 Apache Solr는 Mocking을 하고, Redis는 인메모리로 사용할 수 있어서 테스트에서는 그걸 사용하게끔 하고 나니 이제 데이터베이스만 남아있었거든요. 제가 토이프로젝트등에서 하고 있는 것 처럼 H2 인메모리 DB를 사용하기로 했습니다. 그걸위해 먼저 PostgreSQL로 되어 있는 DB를 테스트에서는 H2로 마이그레이션 해야합니다. 하지만 운영 환경에서의 Liquibase를 그대로 실행..

Development/Develop Tools 2023.03.25
postgres 전체 데이터를 sql 파일로 백업

Intro liquibase를 사용하여 데이터베이스 스키마를 관리하고 있습니다. 주로 PostgreSQL을 사용하고 있는데, 테스트를 수행할 때 별도의 외부 DB를 사용하지 않고 인메모리 DB를 이용하고자 했습니다. 그런데 gen_random_uuid와 같은 일부 PostgreSQL 문법과 시퀀스 생성 등이 발목을 잡았습니다. 그래서 인메모리 DB로 테스트를 할 때는 liquibase를 사용하지 않고, data.sql 파일을 불러와서 DB스키마를 생성하려고 합니다. 이를 위해 먼저 liquibase를 사용하여 PostgreSQL 데이터베이스에 초기 데이터를 입력한 다음, 이를 SQL로 추출하여 H2에서 사용 가능하게 편집하려고 합니다. liquibase로 변경 로그를 불러와 SQL로 추출할 수도 있지만,..

Data/PostgreSQL 2023.03.24
Docker 용량 부족할 때 저장 경로 변경

Intro no space left on device 도커 컨테이너를 띄우려는데 용량이 없다는 에러가 발생했습니다. 사실 로컬에서는 평소에 용량 관리가 어느 정도 된다면 만나지 않을 상황인데, 클라우드에서는 메인 SSD 용량은 적게 가져가고 하드디스크나 NAS를 추가로 마운트하는 식으로 관리하다 보니 금방 찰 수 있습니다. No space left on device 에러를 처음 만난다면 일단 정리를 한번 해 주는 게 좋습니다. docker system prune 이렇게 하면 모든 멈춰있는 컨테이너, 네트워크, 사용하지 않는 이미지나 빌드캐시 등을 제거해줍니다. 불필요하고 반복된 작업으로 쓸모없는 데이터들이 많이 쌓였었다면 이 명령 하나로 당분간은 해결되기도 합니다. 하지만 전체적으로 용량 확인 해 보면 ..

Development/DevOps 2023.03.21
1 ··· 13 14 15 16 17 18 19 ··· 103