728x90

분류 전체보기 146

Spring에서 Swagger 사용 방법

Spring에서 Swagger(현재는 OpenAPI 명칭 사용)는 REST API를 자동으로 문서화해주는 도구.백엔드 개발할 때 API 명세를 따로 작성할 필요 없이, 소스 코드의 어노테이션 정보로 API 문서를 자동 생성해줌.Swagger(OpenAPI)란?Spring 프로젝트에서 API 문서화, 테스트, 공유를 쉽게 할 수 있도록 도와주는 라이브러리입니다.특히 Swagger UI는 API를 웹 브라우저에서 바로 테스트할 수 있도록 예쁜 화면을 제공합니다.Swagger(OpenAPI)를 쓰면 좋은 점기능설명API 문서 자동 생성@RestController, @GetMapping 등 어노테이션 기반으로 자동 문서화Swagger UI 제공브라우저에서 API 테스트 가능Client 코드 자동 생성Java, ..

개발/Spring 2025.11.16

Docker GitLab root 패스워드 변경

1. 컨테이너 ID 또는 이름 확인cmd 에서 실행 중인 GitLab 컨테이너의 이름 또는 ID를 확인해야 합니다.docker ps출력 결과에서 gitlab/gitlab-ce 또는 gitlab/gitlab-ee 이미지를 사용하는 컨테이너의 CONTAINER ID 또는 NAMES 열의 값을 확인합니다. (예시: 컨테이너 이름이 gitlab이라고 가정)2. Rails Console 실행확인된 컨테이너 이름(또는 ID)을 사용하여 docker exec 명령어로 GitLab Rails Console을 실행합니다.docker exec -it gitlab-rails console예시:docker exec -it gitlab gitlab-rails consoledocker exec: 실행 중인 컨테이너 내에서 명령..

개발/Docker 2025.11.05

Spring에서 인터셉터(HandlerInterceptor) 와 AOP(Aspect Oriented Programming) 차이

Spring에서 인터셉터(HandlerInterceptor) 와 AOP(Aspect Oriented Programming) 는 비슷하게 보이지만, 적용 범위와 동작 방식이 달라요. 정리해드릴게요.1. 공통점둘 다 횡단 관심사(Cross-cutting concern) 를 처리할 때 사용됨.(ex: 로깅, 인증/인가, 성능 측정, 트랜잭션 처리 등)특정 로직을 반복해서 작성하지 않고 공통 모듈로 관리할 수 있음.2. 차이점구분 인터셉터 (HandlerInterceptor) AOP (Aspect Oriented Programming)적용 대상Spring MVC의 컨트롤러 요청/응답 흐름 (DispatcherServlet → Controller)Spring Bean(메서드 실행) 전/후/예외 처리동작 레벨웹 계..

개발/Spring 2025.10.03

스프링(Spring) 인터셉터(Interceptor)

스프링에서 인터셉터(Interceptor)는 주로 프레젠테이션 계층(Presentation Layer), 즉 웹 계층(Web Layer)에 위치하며, 클라이언트의 요청이 컨트롤러(Controller)에 도달하기 전과 후의 처리를 담당합니다.이는 서블릿 컨테이너 레벨에서 동작하는 필터(Filter)와 달리, 스프링 MVC 컨텍스트 내부에서 동작하여 Dispatcher Servlet이 컨트롤러를 호출하기 전후에 특정 작업을 수행할 수 있도록 해줍니다.1. 인터셉터의 위치 및 역할인터셉터는 스프링 MVC 요청 처리 흐름에서 Dispatcher Servlet과 Controller 사이의 세밀한 지점을 가로채는 역할을 합니다.인터셉터는 세 가지 주요 메서드를 통해 요청 생명 주기(Lifecycle)의 세 단계에 ..

개발/Spring 2025.10.03

젠킨스 pipeline script - subversion

2025.09.24 - [개발] - 젠킨스 pipeline script, settings.xml, pom.xml 샘플 젠킨스 pipeline script, settings.xml, pom.xml 샘플젠킨스 pipeline script 샘플pipeline { agent any tools { jdk 'jdk-8' // Jenkins에서 설정한 JDK 이름 maven 'maven 3.9.11' // Jenkins에서 설정한 Maven 이름 } stages { stage('Git Checkout') { steps { git branch: 'master', credentialsId: 'gitpiterjk.tistory.com pipeline { agent any tools { jdk 'jdk-8' /..

카테고리 없음 2025.09.30

젠킨스(pipeline) 환경 설정 항목 설명

상단 설정 (General)Do not allow concurrent builds: 이 Job이 동시에 여러 번 실행되는 것을 방지합니다. 즉, 하나의 빌드가 끝나기 전에는 다음 빌드가 시작되지 않습니다.Do not allow the pipeline to resume if the controller restarts: 젠킨스 컨트롤러가 재시작될 경우, 진행 중이던 파이프라인이 중단되고 재개되지 않도록 설정합니다.GitHub project: 이 Job이 특정 GitHub 프로젝트와 연결되어 있음을 명시합니다. GitHub와 연동하여 커밋이나 PR 이벤트에 반응할 때 사용합니다.Pipeline speed/durability override: 파이프라인의 속도(Speed) 또는 내구성(Durability) 설정..

개발 2025.09.24

시스템 모니터링(Prometheus + Grafana)

🏗️ 기본 구조Prometheus 서버 1대모든 서버에서 메트릭을 수집하는 중앙 저장소 역할prometheus.yml 설정에서 여러 서버의 Exporter 주소를 등록Node Exporter (각 서버 설치)각 서버에서 CPU, 메모리, 디스크, 네트워크 등 기본 메트릭을 제공보통 :9100 포트로 메트릭 노출Prometheus가 주기적으로 스크랩Grafana 서버 1대Prometheus를 데이터 소스로 연결시각화 대시보드 구성(선택) Alertmanager특정 임계치 이상일 때 알림 (Slack, 이메일, 카카오톡 Webhook 등)⚙️ 설치 절차 (운영 서버 다수 기준)1. Prometheus 설치 (중앙 서버 1대)# Linuxwget https://github.com/prometheus/prom..

개발 2025.09.17

MSA 환경(JAR)에서 실행 가능한 Spring Interceptor 기반 중복 방지 + 버튼 비활성화

1️⃣ Interceptor 구현package com.example.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;/** * 동일 세션 내 중복 요청 방지 Interceptor */@Componentpublic class DuplicateRequestInterceptor implements HandlerInterceptor { private static final String ..

개발/Spring 2025.09.12
728x90