Docker-Compose 컨테이너 간 실행 순서를 보장하도록 만들어보자.
·
Infra
들어가면서  MSA 환경이나 모놀리식 환경에서 여러 서비스를 한 번에 실행시키기 위해 docker-compose를 사용하다 보면, 서비스 간의 실행 순서를 보장해야 하는 상황이 발생합니다.   저는 최근 MySQL과 연동되는 애플리케이션을 docker-compose로 배포하면서, 단순히 컨테이너 실행 여부만으로는 서비스 준비 상태를 확실히 보장할 수 없다는 문제를 경험했습니다. 이번 포스팅에서는 그 문제 상황과 해결 방법, 그리고 마무리 정리를 통해 동일한 문제를 겪는 분들께 도움이 되고자 합니다.   문제 상황  기존에는 docker-compose의 `depends_on` 옵션을 사용하여 애플리케이션 컨테이너가 MySQL 컨테이너 실행 후에 시작되도록 구성했습니다. 그러나 `depends_on`은 단순..
슬랙(Slack) 봇이 배포 알람을 보내도록 만들어보자.
·
Infra
들어가면서요즘 인프라 관련해서 여러 가지 만들어보는 중이다. 팀 단위로 CI/CD를 구축했다고 치자. 팀원들은 각자 통합 및 배포 타이밍이 다를 것이다. 이를 팀 전체에게 실시간 알람으로 보낸다면 프로젝트 진행에 큰 도움이 될 것이다.`개발하면서 발생하는 이벤트에 대한 정보`를 실시간 알람으로 보내도록 구현해 보자. 이번 포스팅에서는 배포 알람 전 단계로서, 수동으로 알람을 보낼 수 있도록 구현한다.   이번 포스팅은 인프런에서 `이준형 강사님의: 안정적인 서비스 배포를 위한 배포 전략과 팁`강의를 보며 실습하는 내용이다.    슬랙 알람이 필요한 이유이 글에서 소개할 `Slack`이라는 업무 플랫폼으로 특정 이벤트 발생 시 알람을 보내도록 구현할 수 있다.아래에서는 `배포`라는 이벤트에서 슬랙 알람이 ..
Docker MySQL 연결 오류: 포트포워딩을 하자.
·
Infra
문제 상황`도커로 MySQL을 실행`하기 위해서 비밀번호를 1108로 설정하고 `호스트 포트와 컨테이너 포트를 연결해서 RUN`을 해준 상황이다.docker ps로 실행 중인 컨테이너를 확인해 보니 c64 MySQL 컨테이너가 정상적으로 실행 중이다.  `실행 중인 해당 컨테이너에 접속`해보았다.`환경변수 MYSQL_ROOT_PASSWORD`를 확인해 보니 RUN에서 지정해 준 1108로 세팅되어 있음을 확인했다.  그러나 dbeaver에서 해당 MySQL컨테이너에 연결하려고 하니패스워드가 틀려서 Access denied가 된 것으로 보이는 상황이 발생했다.  혹시나 해서 기존 로컬 MySQL에서 사용하던 비밀번호를 입력하니 연결이 된다. 우선 두 가지 원인으로 가정해 보았다.   문제 원인 1이전에 도..
코틀린(Kotlin)의 핵심 문법과 예제 (2/2)
·
Programming Language
들어가면서 https://giken.tistory.com/entry/Kotlin-%EC%BD%94%ED%8B%80%EB%A6%B0-%EB%AC%B8%EB%B2%95-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC-feat%EC%9E%90%EB%B0%94 코틀린(Kotlin)의 핵심 문법과 예제 (1/2)들어가면서코딩테스트, 스프링 백엔드 개발에서 자바로 프로그래밍을 해왔다.최근 채용 공고를 보면 `스프링 + 코틀린 (코프링)`이 심심치 않게 보인다. 자바에서 현대적인 언어로 업그레이드giken.tistory.com `변수, 타입, 조건문, 반복문, List 등등`이러한 기초 문법을 1편에서 익히고 왔다.  2편에서는 웹개발에 필요한 문법들 위주로 더 설명한다.     함수fun mai..
[Git] 원격 저장소와 로컬 저장소 병합 문제 해결 : non-fast-forward
·
Etc
문제 상황GitHub에서 저장소를 생성한 후, 저장소 주소를 원격(remote)에 추가(git remote add origin https://github…..)하고, 로컬에서도 정상적으로 초기화(git init)했습니다. 그런데 git pull 또는 git merge 명령어가 정상적으로 동작하지 않았고, git push origin main 명령을 실행할 때 아래와 같은 에러가 발생했습니다.[rejected] main -> main (non-fast-forward)error: 레퍼런스를 'git@github.com:'에 푸시하는데 실패했습니다힌트: 현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가힌트: 거부되었습니다. 푸시하기 전에 ('git pull ...' 등 명령으로) 리모..