Jenkins로 CI/CD 구축 및 트러블슈팅: Exec exit status [127] 및 Permission Denied 오류 해결
·
개발 꿀팁
CI/CD 도구로 팀시티를 사용하다가 Jenkins로 마이그레이션 하게 되었다. Jenkins는 오픈 소스, 방대한 플러그인 생태계, 유연성, 커뮤니티 지원 등 여러 면에서 강력한 장점을 가지고 있다. 또한 무료로 사용할 수 있어 예산이 제한된 팀이나 복잡한 CI/CD 요구사항이 있는 팀에게 매우 유용할 수 있다. 아직 복잡한 CI/CD 요구사항은 없지만 향후 지속적으로 사용할것을 고려하여 시도해보았다.Jenkins 설치 및 설정방법에 대해 설명하고 밑에 내가 마주했던 문제들에 대해 정리해보려고한다.1. Jenkins 설치 및 초기 설정 방법1. ec2에 Jenkins 설치sudo apt-get update && sudo apt-get upgrade# Jenkins는 Java로 제작된 오픈 소스이기에..
504 Gateway Timeout 오류 해결방법: 로드밸런서 Connection idle timeout
·
개발 하나둘셋
최근 프로젝트에서 api를 구현하고 테스트하는 과정에서 '504 Gateway Timeout' 오류를 만났다. 로컬 환경에서는 문제없이 잘 동작했는데 개발 서버에 배포된 후 사용자로부터의 요청에 대한 응답 시간이 60초가 넘어가면 '504 Gateway Timeout'을 뱉어냈다. 이번 포스팅에서는 해당 문제를 해결했던 과정을 정리해보고자 한다. 1. 문제점 '504 Gateway Timeout'은 웹 서버가 클라이언트로부터의 요청을 받았으나, 게이트웨이나 프록시 서버를 통해 다른 서버로부터 시간 내에 적절한 응답을 받지 못했을 때 발생한다. 문제가 발생한 api는 외부 api로부터 stt처리를 하고 해당 데이터를 저장하는 로직으로 영상 길이에 따라 처리시간이 1분 이상이 걸리는 구조였다. 처음엔 코드의..
Spring Boot 3.x 주요 변경 사항과 마이그레이션 방법
·
개발 하나둘셋/Java & Spring
2022년 11월 기존의 Spring framework 5와 Spring Boot 2.X를 대체하는 Spring framework 6와 Spring Boot 3가 릴리즈되었다. 새로들어가는 회사 프로젝트와 사이드프로젝트에서 Spring Boot 3버전을 사용하기에 오늘은 Spring Boot 3버전의 주요 업데이트 내용과 레거시 방법에 대해서 알아볼려고 한다. 1. Spring Boot 3.x 주요 업데이트 내용 Java 17 버전 이상만 지원: Spring Boot 3.0은 최소 Java 17을 필요로 하며, Kotlin 1.7 이상도 지원 Java EE를 Jakarta EE로 대체: javax.*에서 jakarta.*로 변경. 기존에 java는 오라클이 상표권을 갖고 있기 때문에 Jakarta로 이름..
Redis 서버 재시작 시 데이터 초기화 문제와 해결 방법: RDB와 AOF
·
개발 하나둘셋/Java & Spring
오늘은 Redis 서버가 재시작될 때 발생하는 데이터가 삭제되는 문제를 다룰려고 한다. 실제로 redis로 조회수 구현 로직을 작성했을 때 조회수이기 때문에 유지가 되어야하는데 서버를 재시작할 때마다 리셋이 되서 조금 당황했던 경험이 있다. 왜 데이터가 삭제되는지, 해결방법에는 어떤 것이 있는지 정리해보겠다.1. 문제점: 서버 재시작 시 데이터 삭제Redis는 메모리 기반의 데이터 스토어로서, 기본 설정 상태에서는 서버가 재시작되면 메모리에 저장된 모든 데이터가 삭제된다. 이는 내가 사용했던 Sorted Set뿐만 아니라 모든 자료형의 데이터에 적용되는 문제이다.2. 해결 방법: Redis 설정 변경을 통한 데이터 영속성 확보데이터를 디스크가 아닌 메인 메모리에 저장하고 관리하는 "In-memory D..
Redis를 활용한 효율적인 조회수 관리 방법
·
개발 하나둘셋/Java & Spring
오늘은 Redis를 활용하여 조회수를 관리하는 기능을 구현해보려고한다. 부끄럽게도 기존에는 사용자가 거의 없기 때문에 DB로만 관리해왔다. 이 글을 통해 기존 방식에서 Redis로 변경한 이유와 그 과정에 대해 기록해보고자 한다. 1. 기존의 DB 방식에서 문제점 기존에는 데이터베이스를 사용하여 조회수를 관리했다. 사용자가 웹 페이지를 조회할 때마다 해당 페이지의 조회수를 1씩 증가시키는 방식이었다. 하지만 이 방식에는 문제점이 있다. 동시성 문제: 여러 사용자가 동시에 같은 페이지를 조회할 경우, 조회수의 정확성을 보장하기 어렵다. 동시에 조회수를 업데이트하려다 보면 한 사용자의 조회가 누락되는 경우가 발생할 수 있다. 데이터베이스 부하: 조회수 업데이트는 매우 빈번한 작업이다. 많은 사용자가 활동하는..
도커 & 쿠버네티스 스터디 3주차
·
기록/스터디
12월 13일부터 시작한 도커, 쿠버네티스 스터디 오늘로 3주째! 유데미의 【한글자막】 Docker & Kubernetes : 실전 가이드 강의를 일주일에 한 챕터씩(2~3시간 분량) 듣고 github 레포에 정리(요약 및 정리, 이야기하고 싶은 부분) -> 레포에 피드백 -> 스터디 날 2명씩 랜덤발표 -> 질의 및 토론하는 온라인 스터디이다 수요일팀과 일요일팀이 있는데 나는 수요일 팀에 참여 중! 글또에서 만들어진 스터디인데 강의가 있어 스터디 모집한다길래 날름 신청했다 한분이 주도적으로 진행해 주셔서 그에 보답하고자 더 열심히 참여 중이다! 레포로 공부기록을 남기는 것도 좋고 랜덤발표도 적당히 부담스러워서 좋다.(첫 번째 스터디날 첫번째 발표 당첨😅) 스터디 중에 이야기할 때도 심장이 두근두근 댈 ..
유리코딩
유리코딩