분류 전체보기

Github Webhook 설정은 정상적으로 되었으나, jenkins trigger가 작동하지 않아서 문제였습니다. pipeline scm X pipeline script를 사용했다는 점 문제의 pipeline script는 다음과 같습니다.pipeline { agent any triggers { githubPush() // 📌 GitHub Webhook을 통한 자동 빌드 트리거 } stages { // 1️⃣ Git Clone (현재 디렉토리에) stage('Checkout') { steps { sh ''' echo "[INFO] 기존 Jenkins 작업..
docker-compose.yml backend: build: context: /var/lib/jenkins/.jenkins/workspace/map-sv.site dockerfile: Dockerfile container_name: backend restart: always depends_on: - db environment: SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/스키마 SPRING_DATASOURCE_USERNAME: 비공개 SPRING_DATASOURCE_PASSWORD: 비공개 ports: - "8080:8080" nginx.conf(default.c..
Could not resolve all dependencies for configuration ':runtimeClasspath'.> Failed to calculate the value of task ':compileJava' property 'javaCompiler'.에러 메시지를 보면 gradle 빌드가 실패하는 이유는 Java 21을 찾을 수 없다는 것이였습니다.Dockefile 에서 openjdk:21-jdk-alpine이미지가 Java 21을 제공하지 않는게 문제여서다음과 같이 수정했습니다.FROM eclipse-temurin:21-jdk-alpine # 다른 OpenJDK 버전 사용 (예: Temurin)# Copy application code into containerCOPY . /ap..
젠킨스와 nginx를 통해서 배포 자동화를 구현해보려고 하였습니다.여기에 관련해서 시행착오가 많았는데 정리하려고 합니다. 일단 구조는 다음과 같습니다. 1. aws ec2 instance jenkins 설치2. docker compose 로 nginx, postgresql, certbot, spring 이미지 빌드 후 실행 이상하다고 생각할 수 있는데, 맞습니다.  1번 방법을 먼저 수행해봤고, 2번 방법으로 나중에 도입했기 때문에 보통은 jenkins도 docker compose로 띄워야 네트워크 이슈도 적고, 관리도 편하다는 것을 나중에 깨달았습니다. AWS EC2 프리티어 기준입니다. 1. SWAP 메모리 설정관련해서 이전에 포스팅을 한 적이 있습니다.https://iii.ad/67bfb72. Do..
업무를 하면서 개인적으로 느낀 점을 서술하겠습니다. 틀린 내용이 있을 수도 있다는 점에서 유의 부탁드립니다. 1. 불필요한 CASE WHEN THEN예시나쁜 케이스SELECT emp_id, CASE WHEN salary >= 5000 THEN 'HIGH' ELSE 'LOW' END AS salary_grade, CASE WHEN dept_id = 10 THEN 'HR' WHEN dept_id = 20 THEN 'SALES' ELSE 'OTHER' END AS dept_name, CASE WHEN job_title LIKE '%Manager%' THEN 'MANAGER' ELSE 'STAFF' END AS job_level, -- 추가적인 C..
특정 비즈니스 로직에 있어서 메일 서비스는 동기적으로 실행을 하는 것보다 비동기적으로 수행되는 경우가 많습니다.클라이언트에게 화면이 멈춰있는 듯한 경험을 할 수 있기 때문입니다. 예를 들어 간단하게 A작업이 있다면, A작업이 수행되어 화면에 반영되고 부가적으로 메일 발송이 이루어진다고 할 때동기적으로 작동하게 된다면 1. 클라이언트 A작업을 수행2. 백엔드 서버에서는 A작업을 수행하면서 동시에 B(메일발송)작업 수행for(MailModel mailModel : mailList) { // A 작업 수행 for (User user : userList) { // B 작업 수행(메일 발송) }}3. B작업이 끝나기 전 까지는 A작업도 계속 멈춰있게 됩니다. 비동기 도입 고려비동기 로직을 고민할..
솜사탕코튼
'분류 전체보기' 카테고리의 글 목록