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

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(&quot;https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png&quot;);"></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(&quot;https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png&quot;);"></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(&quot;https://img1.daumcdn.net/thumb/C88x88/?fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fblog%2Fadmin%2Fprofile_default_01.png&quot;);"></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 + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.