
과거에 Git 태그를 푸시하면 Docker 이미지를 생성하고 자동으로 Nexus에 푸시하는 파이프라인을 구축한 적이 있다. 하지만 당시 우리 시스템은 Docker 기반이 아니었고, 특정 프로젝트에서만 Docker 이미지를 필요로 했기 때문에 자동 배포까지는 구현하지 않았다. 그러나 이번에 서버 이전을 진행하면서 여러 가지를 개선하는 과정에서, 서비스 운영을 Docker 기반으로 전환하게 되었다.일반적으로 CI/CD에서는 이미지 생성 및 푸시 후 자동으로 서버에 배포하는 방식을 많이 사용하는 것 같았다. 이는 개발 서버나 스테이징 환경에 적합하다고 생각되었고 운영 서버에서는 보다 신중한 배포가 필요하다고 판단했다.그래서 내가 구현하려는 방식은, Nexus에서 Docker 이미지 태그 목록을 가져와 특정 태..

Docker 프라이빗 레지스트리를 구축하고 GCP 로드 밸런서와 Nginx를 활용하여 서비스 하는 중 로그인이 안되는 현상이 발생했다. 1. 환경 구성GCP 로드 밸런서(L7)VM 인스턴스: Nginx와 Docker Registry가 Docker 컨테이너로 실행트래픽 흐름:클라이언트는 https://도메인 로 접근로드 밸런서는 SSL 종료 후, 내부적으로 HTTP(포트 80)로 VM의 Nginx에 요청을 전달Nginx는 해당 요청을 Docker Registry로 프록시Nginx 설정 server { listen 80; server_name 도메인; location / { proxy_pass http://nexus:8081; proxy_set_heade..

Git 저장소를 AWS에서 GCP로 이전하면서 여러 가지 문제를 겪었다. 특히 대용량 저장소 이전에서 예상치 못한 난관이 많았고, 다양한 방법을 시도해 해결했다. 이번 글에서는 처음 시도한 방법과 실패한 이유, 그리고 최종적으로 성공한 방법을 정리해보려 한다. Git 저장소 이전 방법1. 기본적인 Git 이전 방법가장 먼저 아래와 같은 방식으로 저장소를 이전했다.1) 기존 저장소를 클론 (mirror 방식)git clone --mirror 2) 새로운 저장소에 푸시cd .gitgit remote set-url origin git push --mirror하지만... 대용량 저장소에서는 실패! 😭push 실패 원인과 해결 방법❌ 실패 원인: push 중 RPC 에러 발생파일 크기가 크면 아래와 같은 에..

AWS에서 GCP로 이전하는 작업 중에서 Bucket을 어떻게 옮겨야하나 고민이 많았다. 프로그램을 작성해야하나 고민 했지만 GCP에서는 손쉽게 이전 할 수 있는 방법을 제공하고 있다.개인적으로 GCP의 문서들은 보기 어렵다고 생각되는데 이번 가이드 만큼은 아주 쉬워서 따라하기에 무리가 없었다.1. AWS 작업하기1.1 CloudFront 배포 생성 🌐 🌟🌟AWS CloudFront는 콘텐츠 전송 네트워크(CDN, Content Delivery Network) 서비스로 전 세계에 분산된 엣지 로케이션(Edge Location)을 활용해서 웹 콘텐츠(이미지, 동영상, HTML, CSS, API 응답 등)를 빠르고 안전하게 전달하는 역할을 한다. CloudFront를 이용해 S3 데이터를 배포하려면 아..

SSH를 통해 서버에 접속 하려고 할 때 permissions 0664 for '.pem' are too open 나는 경우가 있다. 👀 이게 무슨 뜻일까?key 파일이 너무 오픈되어있다..? 무슨말인가 보니 프라이빗 키의 권한이 너무 개방적이어서 SSH가 보안상의 이유로 키를 무시하는 상황이다. 🔧 해결 방법이런 경우 해당 키 파일의 권한을 변경 해주면 된다.해당 키의 소유자만 해당 키를 읽을 수 있도록 변경해주었다.chmod 400 /var/jenkins_home/secrets/키파일.pem ✅ 이제 다시 접속해 보면?정상적으로 접속되는 걸 확인할 수 있다! 🚀

로그인 할 때 대소문자 구분 없이 로그인이 되는 사이트를 본 적이 있을 것이다. 그럴 때 마다, 사용자로 부터 받은 아이디를 모두 소문자나, 대문자로 치환하여 DB에 전달하는게 아닐까 라는 생각을 한 적이 있다.(collate가 모르는 사람이 구현을 했다면 이렇게 구현을 하지 않았을까..? 이렇게 생각 한 나처럼..) 그러나 collate를 알고 있다면 전혀 그럴 필요가 없다는 사실..! Collate란?문자 집합에 포함된 문자들을 어떻게 비교하고 정렬할지를 정의하는 콜레이션을 설정 하는 키워드- 문자열 데이터를 비교 할 때 대소문자를 구분할지 여부- 문자 간 정렬 순서를 정의- 언어별 특수 문자 처리 방식을 지원 Collate의 구조예) utf8mb4_general_ci- utf8mb4 : 문자 집합-..

WebClient는 Spring WebFlux에서 HTTP 요청을 비동기 방식으로 처리하는 강력한 도구이다. 비동기 처리는 주로 리액티브 프로그래밍에서 사용되며, 비동기 요청을 보내고 응답을 기다리는 동안 다른 작업을 병렬로 처리할 수 있게 한다. * 동기와 비동기/ 블럭과 넌블럭 차이 이해하기https://musma.github.io/2019/04/17/blocking-and-synchronous.html 동기와 비동기, 그리고 블럭과 넌블럭무릇 모든 개발자들, 아니 비단 개발자가 아니라 할지라도 컴퓨터 관련 산업계 종사자들이라면 오다 가다 한 번씩은 꼭 들어보고, 또 익혔음직한 내용이겠습니다. 이름하야, 동기(Synchronous)와 비musma.github.io 하지만 WebClient를 사용방법..

프로젝트 오픈 후 모니터링 중 타사의 API 호출이 안되는 경우가 발생했다. 에러 로그도 없이 호출이 안되는 상황....뭘까..? 상황은 이랬다. 우리 시스템으로 요청이 오면 서비스단에서 DB를 확인 한 후, 해당 데이터의 종료시간이 null인 경우에만 타시스템에 요청을 보내게 되어있다.문제는 타시스템에 요청을 하고 응답을 받는 시간이 꽤 길어서 마냥 기다리기만 할 수 없다는 것이다. 따라서, 쓰레드를 생성하여 요청을 하고(응답값은 프로그램에 영향을 미치지 않고,DB에만 저장된다), 원래의 단일 쓰레드에서 종료시간을 업데이트 했다. 이게, 단순히 테스트를 할 때는 문제가 되지 않았는데..오픈 후 많은 많은 요청이 발생하니 조회와 업데이트의 순서가 보장되지 않아, 실제로 요청을 보내야 할 건들의 종료시간이..
- Total
- Today
- Yesterday
- 자바
- 스프링
- 자바스크립트
- 코딩테스트
- 톰캣
- 리액트
- tomcat
- 도커
- centos
- 오토에버코테
- springboot
- Spring
- 전자정부프레임워크
- 자바코테
- 현대오토에버
- Docker
- softeer
- 아파치카프카
- Linux
- Kubernetes
- 코테
- javascript
- 쿠버네티스
- react
- 현대
- java
- mysql
- softeer java
- 현대코테
- nginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |