개발 라이프(362)
-
[Shell] 간단한 프로젝트 실행 / 중단 script
만약 CI/CD 를 적용하지 않으면 일일히 수기로 프로젝트를 빌드하여 배포 후 실행하게 될 텐데 이것을 좀 더 간편하게 script 를 통해 실행 혹은 중단 작업을 실행할 수 있게 된다면 조금이라고 편하지 않을까요?CI/CD를 적용하기 이전에 간단하게 이 작업들을 할 수 있게 하는 간단한 script 를 작성하여 실행해보는 과정을 정리해보겠습니다. 실행 Script 작성[예시 Script]#!/bin/bashcd /home/onnury/webKEYWORD="OnNury-0.0.1-SNAPSHOT.jar"find_java_svr_pid() { PID=$(ps aux | grep "$KEYWORD" | grep -v grep | awk '{print $2}')}kill_java_svr() { if [ ..
2025.04.16 -
[CI/CD] Github Actions를 통한 CI/CD
개발을 진행하면서 수정하거나 변경한 내용, 혹은 이때까지 만든 최신 내용을 반영하여 빌드하고 배포하여 다시 실행하는 과정까지 걸리는 시간은 절대 무시못할 시간 소요가 걸리게 됩니다.이것을 해결하기 위해서 CI/CD를 적용하여 한 번에 효율적으로 테스트, 빌드, 배포까지 모든 처리를 한 번에 할 수 있게끔 하는데 이러한 CI/CD 작업을 일반적으로 대부분 Jenkins라고 하는 외부 툴을 사용하는 것이 일반적이라고 알고있습니다. 하지만, 어떤 최근 매체에서 읽기를, 굳이 외부 툴을 사용하는 것이 효율적이라고 볼 순 없다라는 글을 읽었으며 또한 외부 툴에 문제가 발생되었을 경우 이것을 해결하기 위한 시간 소요가 추가적으로 발생되게 됩니다.따라서 개발을 위해 거의 반드시 사용하게 되는 Github 를 통해 이..
2025.04.16 -
[에러] Database Replication 에러 : Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ANONYMOUS' at master log mysql-bin.000003, end_log_pos 23284559.
[Reason] 데이터베이스 Replication을 적용하고 Spring Boot 와 연결하여 데이터를 삭제하고 업데이트하는 과정에서 Master DB에만 반영되고 Slave DB에는 반영되지 않아 Slave DB 상에서 status 를 확인해본 결과 위와 같은 이미지의 내용의 에러가 발생하였다. status에 나온 에러 메세지 내용대로 Slave DB에서 performance_schema.replication_applier_status_by_worker 테이블을 조회하여 가장 최신의 에러 메세지를 자세히 살펴본 결과, jwt_token 테이블의 특정 행을 찾을 수 없어 SQL Running 끊겼다는 에러였다. [Solution]우선 Master DB에 접속하여 status를 확인해준다.Master D..
2025.04.14 -
[MySQL] 커맨드를 활용한 데이터 dump (import / export)
지난 번에는 워크벤치 툴로서 MySQL 데이터들을 백업하고 다시 넣는 작업에 대해서 정리해보았습니다.이번에는 이러한 워크벤치 툴 없이 커맨드 라인 상으로 해당 작업을 수행하는 과정을 정리해보겠습니다. 데이터 백업 dump (export)[특정 DB의 특정 Schema dump]# 로컬 환경 데이터 백업 dumpmysqldump -h localhost -P 3306 -uroot -p {백업할 DB명} {백업할 Schema 명} > {백업될 경로}/{백업될 sql 파일명}# 예 : mysqldump -h localhost -P 3306 -uroot -p testDB testSchema > C:/test/dump/dump_data.sql# 특정 서버 환경 데이터 백업 dumpmysqldump -h {해당 서..
2025.04.11 -
[Docker] Docker 설치
Docker 란?https://jindevelopetravel0919.tistory.com/224 [Docker] Docker 란?Docker Docker는 리눅스 컨테이너 기반의 오픈 소스 가상화 플랫폼입니다. 어플리케이션을 컨테이너 단위로 빌드, 배포 및 관리를 하기 위한 오픈 소스 플랫폼이라고도 볼 수 있습니다. 컨테이너 라jindevelopetravel0919.tistory.com 오늘은 Docker를 Linux 환경에 설치하는 방법을 정리해보겠습니다. (1) yum-utils 업데이트sudo yum updatesudo yum install -y yum-utils시스템 패키지 업데이트 및 yum-utils 를 최신 버전으로 업데이트 합니다. (yum-utils : yum 패키지 매니저 관련 유..
2025.04.10 -
[Docker] Docker를 활용한 데이터베이스 Replication 반영하기 (feat. MySQL)
이전에 근무했던 회사에서 만들었던 프로젝트를 회고해보면서 많은 문제점과 아쉬운 부분들이 많다고 느껴졌습니다.아무래도 독박으로 모든 백엔드와 서버에 대한 작업들을 다 혼자서 감당해야 했기에 부족한 부분이 많았기 때문입니다. 때문에 이전에 부족했던 부분들을 전체적으로 마이그레이션 하면서 보완할 부분들을 개선해나가고자 했습니다.그 중에서 오늘은 데이터베이스와 관련된 작업들에 대한 부하를 낮춰주고 고가용성으로 데이터베이스들을 활용하기 위해 레플리케이션(Replication)을 도입해보기로 하였습니다. 들어가기에 앞서서...일단 레플리케이션이 도입되기 전인 현 상태를 파악해보았습니다. - 운영 서버 : Linux- 사용 데이터베이스 : MySQL- 하나의 MySQL 데이터베이스만을 Linux 서버에 올려 데이터..
2025.04.10