목록분류 전체보기 (134)
나만의 개발 로그 | 고민 로그

젠킨스: 오픈 소스 CI/CD 툴이다. 들어가기 앞서 잡담)이번에 젠킨스를 사용한 이유는 일단 '무료'이기 때문이다.예전 사이드 프로젝트 진행 때는 github actions를 써서 aws ec2에 CI/CD 작업을 진행했는데 이번엔 젠킨스를 쓰게 됐다. 사내 코드는 private Repository로 git 관리가 되고 있고, private repository에서 CI/CD를 구축하는 건 "조건부 무료.."즉 제 기능을 다 쓰려면 유료라고 볼 수 있다. 물론 public repository로 만들면 그런 제한이 없는 걸로 알고 있다. 마침 회사 서버 pc도 여유가 있으니 무료인 젠킨스를 사용해서 CI/CD를 구축하는 건 허락을 받고 진행했다.구축 이유는 개발 단계에서 프론트엔드와의 협업 때문이다. 프론..

풀이 내역(~24.02.21) :인프런 알고리즘 강의 문제 : 총 56문제 풀이 완료프로그래머스 : 총 328문제 풀이 완료백준 : 총 31문제 풀이 완료 띄엄띄엄 풀다 보니 효과가 적은 것 같다.퇴근 후든 언제든 1~2 문제씩이라도 꾸준히 풀어야겠다. 2024년 목표 : 프로그래머스 LV3까지 모든 문제 풀기 * 백준은 java로 풀려니까 입출력이 번거로워서 함수형인 프로그래머스를 애용하게 되는 것 같다. 백준이 등급제도나 깃허브 뱃지는 마음에 드는데 아쉽다.* 백준 허브가 요새 작동을 잘 안해서 깃허브 연동이 안됨..!! 프로그래머스 깃허브를 찾아보니 이슈에 문제 해결 중이라고 하니까 기다려봐야겠다.
SQL 쿼리의 개념적인 실행 순서FROM(+JOIN)WHEREGROUP BYHAVINGSELECTORDER BY나는 당연히 무조건 위에 순서대로 작동하는 줄 알았지만 그게 아니란 걸 깨달았다..!! => 위의 순서는 개념적인 실행 순서일 뿐, 실제 데이터베이스에서는 옵티마이저를 사용해서 최적의 실행 계획을 세우기 때문에 위와 순서가 달라질 수 있다!!! ex) 많은 테이블과 Join 해야 하는 경우 row가 많다면 당연히 부하가 갈테고 만약 Where절에서 인덱스가 걸린 컬럼을 조건으로 하는 경우, 옵티마이저가 이를 감지하고 Where절을 먼저 처리해서 인덱스를 이용한 필터링 작업을 먼저 수행할 수도 있음!! => 최근에 이와 관련된 질문을 받았고, 뒤늦게 기존 작성 내용이 틀렸다는 걸 알게 되어 수정..

최근 로컬 개발 환경에서 PostgreSQL을 Docker로 띄우고 프로젝트를 개발하던 중, 뜻밖의 장애를 마주했다. 테스트 서비스 일부에서 갑자기 500 Internal Server Error를 뱉기 시작한 것이다.🧪 증상에러 로그를 확인해보니 다음과 같은 메시지가 있었다FATAL: sorry, too many clients already 🔍 원인 분석PostgreSQL의 기본 설정은 다음과 같았고max_connections = 100이 프로젝트 환경에서는 아래와 같은 조건이 겹쳤다:PostgreSQL 컨테이너 1개에 여러 명의 개발자가 로컬에서 동시에 접속각 WAS에서 커넥션 풀 기본값인 10개 커넥션을 선점결과적으로 DB 커넥션이 100개를 초과 → DB 접근 불가 → 500 에러 발생🔧 1..