pumpb.tistory.com
Open in
urlscan Pro
27.0.236.143
Public Scan
URL:
https://pumpb.tistory.com/
Submission: On June 20 via api from US — Scanned from DE
Submission: On June 20 via api from US — Scanned from DE
Form analysis
3 forms found in the DOM<form style="margin: 0px;">
<div class="tt-area-write">
<div class="tt-box-thumb"><span class="tt-thumbnail" style="background-image: url("https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png");"></span></div>
<div class="tt_wrap_write">
<div class="tt-box-account"><input type="text" title="이름" placeholder="이름" maxlength="32" value=""><input type="password" title="비밀번호" maxlength="12" placeholder="비밀번호" value=""></div>
<div class="tt-box-textarea">
<div class="tt-inner-g"><textarea id="comment" placeholder="로그인 댓글만 허용한 블로그입니다"></textarea></div>
</div>
<div class="tt-box-write"><label class="tt-xe-label"><input type="checkbox" id="secret"><span class="tt_img_area_reply tt-xe-input-helper"></span><span class="tt-xe-label-text">비밀글</span></label><button type="submit" class="tt-btn_register"
disabled="">등록</button></div>
</div>
</div>
</form>
<form style="margin: 0px;">
<div class="tt-area-write">
<div class="tt-box-thumb"><span class="tt-thumbnail" style="background-image: url("https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png");"></span></div>
<div class="tt_wrap_write">
<div class="tt-box-account"><input type="text" title="이름" placeholder="이름" maxlength="32" value=""><input type="password" title="비밀번호" maxlength="12" placeholder="비밀번호" value=""></div>
<div class="tt-box-textarea">
<div class="tt-inner-g"><textarea id="comment" placeholder="로그인 댓글만 허용한 블로그입니다"></textarea></div>
</div>
<div class="tt-box-write"><label class="tt-xe-label"><input type="checkbox" id="secret"><span class="tt_img_area_reply tt-xe-input-helper"></span><span class="tt-xe-label-text">비밀글</span></label><button type="submit" class="tt-btn_register"
disabled="">등록</button></div>
</div>
</div>
</form>
<form style="margin: 0px;">
<div class="tt-area-write">
<div class="tt-box-thumb"><span class="tt-thumbnail" style="background-image: url("https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png");"></span></div>
<div class="tt_wrap_write">
<div class="tt-box-account"><input type="text" title="이름" placeholder="이름" maxlength="32" value=""><input type="password" title="비밀번호" maxlength="12" placeholder="비밀번호" value=""></div>
<div class="tt-box-textarea">
<div class="tt-inner-g"><textarea id="comment" placeholder="로그인 댓글만 허용한 블로그입니다"></textarea></div>
</div>
<div class="tt-box-write"><label class="tt-xe-label"><input type="checkbox" id="secret"><span class="tt_img_area_reply tt-xe-input-helper"></span><span class="tt-xe-label-text">비밀글</span></label><button type="submit" class="tt-btn_register"
disabled="">등록</button></div>
</div>
</div>
</form>
Text Content
열심히보다 어려운 건 꾸준히 * 분류 전체보기 (3) * 인프라 (1) * AWS (1) * Spring Framework (1) * QA (0) * 웹 기반 지식 (0) * 문서화 양식 (1) * 홈 * 태그 1 / 0 / 28 블로그 내 검색 전체 글 * Spring Batch 모니터링 도구 조사 2024.06.17 * API 문서 양식 2024.06.05 1 * [AWS] 로드밸런서 설정 팁 - 교차 영역 로드밸런싱 활성화 2024.05.31 SPRING BATCH 모니터링 도구 조사 PumpB 2024. 6. 17. 11:45 2024. 6. 17. 11:45 Batch 작업의 경우 코드 상에서 cron으로 Job 스케줄링을 진행하고 있음. 이 스케줄에 따라 수행된 Job과 Step을 모니터링 할 수 있는 배치 관리 도구를 리서치하여 사용하고자 함. 결론: Jenkins / Spring Cloud Data Flow / TeamCity 중 선택 JENKINS * 장점 1. 대시보드 / 이력관리 등 관리를 위한 도구가 기본으로 제공됨 >> 모니터링 용도로 적합 2. Email, Slack 등 여러 소프트웨어와 통합해 알림 설정 가능 >> 모니터링 용도로 적합 3. 다양한 Job 실행 방법을 제공 >> 모니터링으로만 사용한다면 중요하지 않음 1. cron 스케줄링 2. 직접 수동 실행 3. HTTP API 4. Job Trigger : 현재 Job 실행 후 지정된 배치를 후속 실행시키는 것도 가능 4. 풍부한 레퍼런스 1. 오래되고 인기 있는 소프트웨어라, 관련 커뮤니티/자료/플러그인이 활성화 되어 있어 다양한 기능을 쓸 수 있고 정보를 얻기 쉬움 1. Monitoring >> 모니터링 용도로 적합 * Jenkins HTTP API 응답시간, 메모리, CPU 등을 모니터링 해주는 플러그인 5. 파이프라인 >> 모니터링으로만 사용한다면 중요하지 않음 1. Step이 아닌 Job을 최소 단위로 사용한 파이프라인을 만들어 순차 실행, 병렬 실행, 병렬+순차 실행 등으로 실행 순서를 다양하게 설정할 수 있음 2. 파이프라인에서 간단히 반복문으로 날짜를 변경해 Loop 실행이 가능 6. Master-Slave Node 환경을 이용한 배치의 분산 실행 (본래 용도는 분산 빌드) >> 모니터링으로만 사용한다면 중요하지 않음 1. 여분의 서버가 있고 SSH로 연결이 가능하다면, Master 젠킨스가 별도의 실행 환경을 구성해 Slave Node로 batch 분산 처리를 해 줌 1. 예를 들어, Slave Node로 특정 일자를 4등분하여 처리하는 것도 가능 * 단점 1. 검색 기능/페이징 기능이 빈약해, 원하는 실행 기록을 찾는 것이 어려움 2. 모니터링을 위해 배치 실행 기록을 검색하는 데 구현할 것이 많다 (초기 설정이 많이 필요) 1. Jenkins API를 이용해 배치 실행 기록을 검색하는 데 API호출이 많이 필요하므로, 이것을 좋은 성능으로 보여주기 위해 내부에 코드로 작성할 부분이 있음 [참고 자료] https://jojoldu.tistory.com/489 https://wbluke.tistory.com/61 SPRING CLOUD DATA FLOW * 장점 1. Spring Framework와 매우 밀접하게 사용할 수 있음 1. 배치 프로젝트에 @EnableTask를 붙여 Spring Cloud Data Flow에 Task로 쉽게 등록하는 등 => 스프링 클라우드 테스크와 스프링 배치를 통합시켜 테이블을 연결해 모니터링이 가능 2. Batch 모니터링이 수월하다는 평가 (대시보드와 UI가 잘 되어 있고 활용이 편리) 1. 필요하면 GUI를 이용해 배치를 설정하는 것도 가능 2. 세부 상태 리포트 조회, 실패 잡 재시작 기능 제공 3. Cloud Foundry와 Kubernetes 환경에서 스트리밍(Streaming) 및 일괄 처리(Batch Data Processing) 파이프라인을 구축하기 위한 툴킷 >> 배치 모니터링에는 배치 관련 기능만 사용 4. Docker와 Kubernetes 연동이 가능 * 단점 1. 국내에서 사용하기 시작한지 얼마 되지 않아서, 사용 방법에 대한 레퍼런스가 많지 않음 1. 구축에 시간이 얼마나 걸리는지 알 수 없음 2. 문제가 생겼을 때 해결에 시간이 걸릴 수 있음 [참고 자료] https://programmer-chocho.tistory.com/13 https://luvstudy.tistory.com/255 https://ppaksang.tistory.com/38 https://bldev2473.github.io/spring/scdf https://dataflow.spring.io/ https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/ TEAMCITY * 장점 1. IntelliJ와 통합되어 모니터링이 원활 1. 친절한 UI/UX, 인텔리제이에서 바로 확인이 가능한 UI 2. Docker와 연동이 쉬움 3. Job, Step 실행 순서의 제약 없이 원하는 부분만 외부에서 실행시킬 수 있음 4. 운영 환경에서도 잘 동작하는지 확인하는 테스트를 로컬에서 원격으로 실행시킬 수 있어, 동작 확인을 위한 배포가 필요하지 않음 1. remote로 테스트하면서 관련 로그를 인텔리제이를 통해 알려줌 5. 무중단 배포가 가능 * 단점 1. 유료이다. 1. 하지만 무료 버전으로도 기능이 충분하다고 함 [참고 자료] https://songkg7.tistory.com/98 https://jojoldu.tistory.com/448 https://www.jetbrains.com/help/teamcity/teamcity-documentation.html GITLAB CI/CD * 장점 1. 소스 코드와 CI/CD 파이프라인을 한 곳에서 관리하는 통합된 환경 1. .gitlab-ci.yml 파일 사용으로 파이프라인을 정의. 이 파일은 프로젝트 소스 코드에 포함되어 있으므로 개발자들이 별도의 화면 전환 없이 코드와 함께 파이프라인을 설정하고 업데이트 할 수 있음 2. 설정 파일 자체를 검증할 수 있고, 잘못 설정하더라도 이전 상태로 돌아가기 쉬움 2. GitLab 설치 즉시 사용할 수 있는 간편함 3. 다양한 러너 지원 1. Docker 러너를 사용해 수많은 기능을 바로 사용 4. 젠킨스와 달리 셀프 호스팅이나 SaaS 제공이 됨 * 단점 1. Jenkins에 비해 플러그인 생태계가 좁다. = 원하는 기능을 사용하기 어려운 경우들이 있어 작은 프로젝트에 적용하는 것이 좋다는 의견이 있음 [참고 자료] https://insight.infograb.net/blog/2023/08/10/gitlab-jenkins-comparision/ https://sunrise-min.tistory.com/entry/Gitlab%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%9C-CICD https://somaz.tistory.com/202 AWS CODEPIPELINE + AWS BATCH * 장점 1. AWS 서비스인 Batch를 사용해, Batch 작업을 GUI를 이용해 만들 수 있음 2. AWS Batch를 CodePipeline 서비스와 연결하면 Batch 작업 모니터링이 가능 3. AWS Batch는 추가 비용이 없고 무료, Batch가 돌아갈 때 사용한 AWS 리소스에 대한 가격만 지불(EC2 등) * 단점 1. Batch 코드상에 있는 내용을 AWS UI로 옮겨서 작성이 필요. 이 때 이미 작성한 Batch 코드를 삭제하고 AWS의 서비스 상에 세팅을 해야하는데, 이미 batch 코드를 작성해 둔 프로젝트의 진행 상황 상 시간이 걸리고 불필요한 작업이 될 것이라 예상 [참고 자료] https://docs.aws.amazon.com/ko_kr/batch/latest/userguide/what-is-batch.html https://techblog.tabling.co.kr/aws-batch-%EC%98%88%EC%A0%9C%EB%A1%9C-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0-3b45fd9eebab 좋아요1 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기열심히보다 어려운 건 꾸준히 열심히보다 어려운 건 꾸준히pumpb 님의 블로그 입니다.구독하기 댓글0 비밀글등록 API 문서 양식 PumpB 2024. 6. 5. 18:24 2024. 6. 5. 18:24 API문서, api문서양식, it신입 백엔드에서 작업한 API를 사용하기 위한 기본 정보를 프론트엔드에 API 문서로 전달하는 것이 여러 모로 보기 좋고 의사소통에도 도움이 된다. * API 문서 작성 이유 API 문서화 도구인 Swagger를 사용하기도 하지만, Swagger만으로는 전달하는 정보에 한계가 있다. 예를 들면, ENUM 값을 어떤 것들을 넣을 수 있는지, Response body에서 어떤 값들이 필수인지 아닌지 등이다. * API 문서 작성 위치 보통은 팀에서 사용하는 업무용 위키에 올려 공유하면 편하다. 현재 팀에서는 Confluence를 사용 중이다. 그래서 업무를 하면서 사용하기 좋았던 API 문서 양식을 글로 작성해 보았다. *혹시 더 좋은 양식이 있다면 댓글로 의견 주세요!! (API 이름) GETADETAIL -------------------------------------------------------------------------------- REQUEST URL Method URL 인증 방식 GET /A/{AId} accessToken PATH PARAMETER Name Type Description Required AId Long A의 ID O HEADERS Authorization: Bearer ${accessToken} Name Type Description Required Authorization String 사용자 인증 수단, 엑세스 토큰 값 O REQUEST BODY Request body가 있을 경우 입력 json 양식 등 Name Type Description Required userId String 유저 id O ... ... ... ... RESPONSE BODY Response body가 있을 경우 입력 json 양식 등 Name Type Description Required id Long id O Title String 타이틀명 O placeCoordinate List<String> 주소의 위도, 경도 O ... ... ... ... ERROR CODE Code Type Description ME0004 NOT_FOUND Not found email auth info. ... ... ... 좋아요2 공유하기 게시글 관리 구독하기열심히보다 어려운 건 꾸준히 열심히보다 어려운 건 꾸준히pumpb 님의 블로그 입니다.구독하기 댓글0 비밀글등록 [AWS] 로드밸런서 설정 팁 - 교차 영역 로드밸런싱 활성화 PumpB 2024. 5. 31. 12:01 2024. 5. 31. 12:01 로드 밸런서를 생성한 후, 작업 > 'Load Balancer' 속성 편집에 들어가면, 활성화된 모든 가용 영역의 정상 대상 간 트래픽을 어떻게 주고 받을 지 설정을 할 수 있다. 교차 영역 로드 밸런싱을 활성화하면, 로드 밸런서가 각 가용 영역(AZ)에 있는 모든 대상 그룹에 트래픽을 고르게 분배할 수 있도록 한다. 이 기능을 사용하면 가용 영역 간 트래픽 분포가 고르게 되어 특정 가용 영역에 과부하가 걸리는 것을 방지할 수 있다. 교차 영역 로드 밸런싱의 장점 1. 고른 트래픽 분배: 각 가용 영역의 인스턴스에 트래픽이 균등하게 분배된다. 2. 높은 가용성: 특정 가용 영역에 장애가 발생해도 다른 가용 영역의 인스턴스가 트래픽을 처리할 수 있다. 3. 성능 향상: 모든 인스턴스가 고르게 부하를 분담하므로 성능이 최적화된다. 그러나 설정을 할 때 어떤 로드밸런서이냐에 따라, 그리고 비용에 따라 주의할 점이 있다. 주의사항 * Application Load Balancer (ALB): ALB는 기본적으로 교차 영역 로드 밸런싱이 활성화되어 있으며, 이를 비활성화할 수 없다. * Network Load Balancer (NLB): NLB에서는 기본적으로 비활성화되어 있으며, 활성화하려면 명시적으로 설정해야 한다. * Classic Load Balancer (CLB): CLB에서는 선택적으로 활성화 할 수 있다. 비용 NLB와 CLB의 경우, 원래 비활성화 되어 있던 교차 영역 로드 밸런싱을 활성화하면 트래픽 분배와 관련된 추가 네트워크 비용이 발생할 수 있으므로 사용 시 이를 고려해야 한다. -------------------------------------------------------------------------------- 참고자료 ChatGPT 3.5 좋아요2 공유하기 게시글 관리 구독하기열심히보다 어려운 건 꾸준히 열심히보다 어려운 건 꾸준히pumpb 님의 블로그 입니다.구독하기 댓글0 비밀글등록 PREV 이전 1 NEXT 다음 + RECENT POSTS * Spring Batch 모니터링 도구 조사 * API 문서 양식 * [AWS] 로드밸런서 설정 팁 - 교차 영역 로드밸런싱⋯ Powered by Tistory, Designed by wallel Rss Feed and Twitter, Facebook, Youtube, Google+ 티스토리툴바 열심히보다 어려운 건 꾸준히구독하기 관리메뉴열기 개인정보 * 티스토리 홈 * 스토리 * 포럼 * 로그인 닫기 단축키 내 블로그 내 블로그 - 관리자 홈 전환 Q Q 새 글 쓰기 W W 블로그 게시글 글 수정 (권한 있는 경우) E E 댓글 영역으로 이동 C C 모든 영역 이 페이지의 URL 복사 S S 맨 위로 이동 T T 티스토리 홈 이동 H H 단축키 안내 Shift + / ⇧ + / * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.