핀포인트 웹에 안 들어가지거나 연결이 안 됨 ps -ef | grep java# 시스템에서 실행 중인 모든 프로세스 중에서 "java"라는 문자열을 포함하는 프로세스들의 정보를 보여주는 데 사용 나의 이슈는 hbase가 안 떠져있어서 연결이 안 됐었다. 핀포인트 웹은 들어가지는데 애플리케이션이 안 된다면 로그가 뜰 테니 그걸로 디버깅해 보거나 아예 들어가지 지도 않는다면 agent > logs, collector > logs, web > logs를 다 확인해봐야 한다. 그렇지만 대부분의 경우 필요한 것들이 다 잘 실행 중이고, Agent 부분에서 config를 잘 설정했고, 인바운드 설정도 잘했다면 문제가 없을 가능성이 크다. (3가지를 잘 확인해 보자.) `REAL TIME > Active Reques..
기존에 CI/CD를 구성하며 올려줬던 WAS에 분산 환경 APM 도구이며 네이버에서 만든 pinpoint를 도입하며 겪었던 경험을 공유하고자 한다. Spring Boot: 3.0.11 java: 17 WAS EC2: t4g.small (vCPU: 2, RAM: 2) (AMI: Amazon Linux 2 AMI (HVM)) APM EC2: t4g.small (vCPU:2, RAM: 2) (AMI: Amazon Linux 2 AMI (HVM)) 더보기 처음에는 APM EC2는 t2.micro로 구성했는데 RAM 1기가 이상을 사용해서 바로 터져버려서 t4g.small로 업그레이드.. 😅 (2기가도 부족한 것 같다, 매우 불안정..) APM EC2 구성 AMI: Amazon Linux 2 AMI (HVM)를 ..
우선 우리의 테스트 환경 구성은 두 가지 핵심 추상 클래스, ControllerTestSupport와 IntegrationTestSupport에 의존한다. 이 두 클래스를 통해 통합 테스트 환경을 구축했다. 중요한 점은, 이 구조를 통해 스프링 부트 인스턴스를 단 두 개만 로드하도록 설정했다는 것이다. 이렇게 함으로써, 테스트 환경의 효율성과 관리의 용이성을 동시에 달성할 수 있었다. 문제 상황 문제상황 인지: 평소와 같이 테스트를 돌려보고 테스트가 조금 느려진 것 같아서 확인해 보니 스프링 부트가 3개가 올라가 있었고, 테스트 코드를 확인해 봤다. @ActiveProfiles("test") @SpringBootTest public class ConfirmEmailServiceTest { @Autowir..
우선 배포과정을 설명하기 전에 전체적인 구조부터 보자. 조금은 추상적일 수도 있는 배포과정을 전체적으로 정리해보려고 한다. 1. GitHub Actions Workflow 트리거: Merge가 완료되면, `.github/workflows/cicd-deploy.yml`에 정의된 GitHub Actions Workflow가 자동으로 트리거 된다. 이 Workflow는 배포 프로세스를 자동으로 실행하기 위한 단계들을 포함하고 있다. 2. 깃 서브모듈 및 시크릿 설정: Workflow가 실행되면서 먼저 깃 서브모듈을 초기화하고 업데이트하여 의존하는 외부 또는 공유 코드 라이브러리를 가져온다. 그다음에 GitHub Secrets에 저장된 비밀 설정 파일(예: 환경 변수, 인증 키 등)을 사용하여 애플리케이션에 필..
프로젝트에 대한 후기 처음에 요구사항을 작성할 때는 시스템에 대한 이해가 부족한 입장에서 적는 것이 미숙했던 것 같다. 시스템을 잘 모른다고 생각하고 요구사항을 작성했다면 더 좋았을 것이라는 생각이 든다. 이를 최대한 보완하여 더욱 상세하게 작성하려 노력하고 있다. 그런데 여기서 한 가지 고민이 생겼는데, 사실 요구사항에 모든 것을 상세하게 기술하지는 않았다. 일부로 이 시스템에서 꼭 알아야 하는 중요한 부분은 추상적으로 남겨뒀다. 그 과정에서 풀어가는 과정을 보고 싶었는데 이것을 어디까지 적어야 할지 경계를 정하는 일은 계속 어려운 부분으로 남을 것 같다. 더보기 사실 프로젝트마다 후기를 요청하고 싶었지만 부담을 느끼실까 봐 전체 프로젝트의 중간에서 후반정도의 진도일 때 후기를 받았다. 번외 가끔 흥미..
Gitub Actions를 통해 PR이 올라오면 자동으로 테스트를 돌려주는 기능을 적용하면서 삽질을 했던 것을 풀어보려고 한다. 아직 완벽하게 해결하지 못한 문제가 있어서 밤이 깊어가는데도 마음 한구석에 찝찝하고 아쉬움이 남았다. 이 과정에서 배운 것도 많고, 앞으로 더 개선할 부분에 대한 고민도 많이 하게 되었다..🤣 삽질을 해야 얻는 게 많아, 너무 잘 풀리면 배우는 게 없어 ~ (라고 세뇌 중....) 12/06 결국 해결완료🔥🔥 workflows에서 Actions이 작동이 안 한다!? name: Java CI with Gradle on: pull_request: branches: [ "main" ] permissions: contents: read jobs: test: runs-on: ubuntu..
온보딩이란? 출처: team.modusign 온보딩이란 원래 '배에 탄다' 또는 '승선한다'는 의미의 단어에서 유래했다. 이 개념은 조직 내에서 신규 구성원이 조직의 문화, 직무에 잘 적응할 수 있도록 돕는 과정을 의미한다. 즉, 신규 입사자가 회사에 수월하게 적응할 수 있도록 업무에 필요한 지식, 기술, 문화 등을 안내하고 교육하는 과정을 말한다. 온보딩 도입 첫 번째 온보딩 우리 회사에는 처음에 온보딩 과정이 마련되어 있지 않았다. 시간이 지나고 경험이 쌓이면서, 새로운 구성원들이 들어오는 것을 보고 이들이 보다 원활하게 적응할 수 있도록 도울 필요성을 느꼈다. 나의 아쉬웠던 경험을 바탕으로, 새롭게 온보딩 프로세스를 도입하려고 고안했다. 처음에는 노션을 사용하여 사진과 같이 우리 서비스를 설명하고,..
이해를 돕기 위한 기존 시스템 간단 설명 기존시스템은 EC2에 MongoDB를 구축해서 사용하고 있었고, 데이터 보호와 복구를 위해, crontab을 사용해서 일정 시간마다 MongoDump를 하고 S3로 옮기고 삭제하는 방식을 사용하고 있었던 것 같다. 문제 상황 분석 및 예상 갑작스럽게 MongoDB 서비스가 다운되는 상황이 생겼다. 확인해 보니 EC2 인스턴스 용량 부족으로 다운이 됐었다. 그래서 EC2 인스턴스 용량을 확인해 보니 20GB였고 데이터를 확인해 보면 아직 충분히 여유가 있는 용량이었다. 명령어를 통해 어떤 폴더의 용량이 가장 큰지 파보니 백업 dump가 매우 크게 잡아먹고 있었다. 백업 스크립트들을 보며 분석해 봤는데 백업파일이 1시간마다 실행되고 S3로 옮기고 삭제하는 스크립트는 ..