반응형

분류 전체보기 1103

[SpringBoot] REST API

🌱 REST API란?REST는 Representational State Transfer라는 용어의 약자로서 REST의 원리를 따르는 API를 의미한다.📖 REST HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.📖 API(Application Programming Interface)데이터와 기능의 집합을 제공하여 컴퓨터 프로그램 간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것을 의미한다.📖 CRUD Operation- Create : 생성(POST)- Re..

IT 2025.01.19

[SpringBoot] 모니터링 환경 구축 #3 - Grafana

📺 모니터링 환경 구축이번 포스팅에서는 Grafana를 설치하고 대시보드를 구성하는 방법에 대하여 소개할 예정이다. Spring Actuator 설정 및 Prometheus 설치 및 설정 방법은 이전 포스트를 참고하자.  📺 Grafana란?Grafana는 메트릭을 시각화 해주는 오픈소스 도구이다. Graphite, Prometheus, InfluxDB 등 다양한 데이타베이스와 메트릭 수집 시스템을 지원하고, 하나의 대쉬보드에 동시에 여러 메트릭 시스템들의 지표를 표시할 수 있다.   📺  Grafana 설치 및 실행- Grafana 설치https://grafana.com/grafana/download로 이동하여 서버 스펙에 해당하는 파일을 다운로드한다.다운로드가 완료되면 압축을 푼다.  - Gra..

IT 2025.01.19

[SpringBoot] 모니터링 환경 구축 #2 - Prometheus

📺 모니터링 환경 구축Spring Boot 기반의 애플리케이션을 사용 중이라면 Prometheus로 메트릭을 수집한 후 Grafana를 사용하여 대시보드를 구성하여 애플리케이션에 대한 모니터링을 할 수 있다. 아래의 순서대로 모니터링 환경을 단계적으로 구축해보자.Spring Boot 프로젝트 생성 (생략)Spring Actuator 설정Prometheus 설치 및 설정Grafana 설치 및 대시보드 구성   📺 Spring Actuator 적용Spring Boot에는 운영 중인 애플리케이션을 HTTP나 JMX를 이용해서 모니터링하고 관리할 수 있는 기능을 제공하는데 이를 Spring Actuator라 한다. Spring Actuator 적용 방법은 이전 포스트를 참고하자.     📺 Promethe..

IT 2025.01.18

[SpringBoot] 모니터링 환경 구축 #1 - Spring Actuator

📺 Spring Actuator 란?Spring Boot에는 운영 중인 애플리케이션을 HTTP나 JMX를 이용해서 모니터링하고 관리할 수 있는 기능을 제공하는데 이를 Spring Actuator라 한다.   📺  Spring Actuator 적용- build.gradle의존성을 명시해 준다.dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-actuator' ...} - application.ymlyaml파일에 노출할 엔드포인트와 노출하지 않을 엔드포인트를 설정할 수 있다.management: endpoints: web: exposure: include: "*" #모..

IT 2025.01.18

[SpringBoot] Bucket4j를 이용한 트래픽 제한

🪣 Bucket4j 란?Bucket4j는 Token bucket 알고리즘을 기반으로 하는 Java 속도 제한 라이브러리이다.트래픽을 제어하여 과도한 요청으로부터 서버의 자원을 보호할 수 있다.Token Bucket 알고리즘- Token이 담긴 Bucket을 정의하고, 요청을 처리하는 비용으로 Token을 지불하는 방식으로 처리에 제한을 설정한 알고리즘이다.- Bucket에 남겨진 Token이 부족하면 요청은 거절된다.- Bucket에 Token은 일정 시간이 지나면 다시 채워진다. 🪣 Bucket4j 기능 소개Bucket4j 라이브러리를 구성하고 있는 대표적인 클래스에 대해서 알아보자.Refill- 일정시간마다 몇 개의 Token을 충전할지 지정하는 클래스이다.Bandwidth- Bucket의 총 크..

IT 2025.01.18

[SpringBoot] REST Docs

📚 Spring REST Docs 란?Spring Rest Docs는 테스트 코드를 기반으로 자동으로 API 문서를 작성할 수 있게 도와주는 프레임워크이다.테스트 기반으로 동작하기 때문에 반드시 Test가 통과되어야 문서가 작성된다는 장점이 있다.  📚 Swagger VS REST Docs자바 문서 자동화에는 주로 Swagger 와 Spring REST Docs이 사용된다.각 각의 장단점을 살펴보자.Swagger+ API를 테스트 할 수 있는 화면을 제공한다.+ 적용이 쉽다.- 어노테이션을 통해 명세를 작성하기 때문에 양이 많아질수록 가독성이 떨어진다.- 테스트 기반이 아니기에 문서가 100% 정확하지 않을 수 있다.REST Docs+ 제품코드에 영향이 없다.+ 테스트를 성공해야 문서가 만들어진다.-..

IT 2025.01.18

[Security] JWT 구현

🔐 JWT(Json Web Token)- JWT란?   JWT는 하나의 인터넷 표준 인증 방식으로 인증에 필요한 정보들을 암호화시킨 JSON 형태의 토큰을 말한다.- JWT를 사용한 인증방식    이전 포스팅에서 JWT의 개념에 대해서 알아보았다. 이번 포스팅에서는 스프링부트를 사용한 실제 적용방법을 알아보자. [Security] JWT 소개🔐 HTTP의 특징 및 쿠키(Cookie)와 세션(Session)의 등장 JWT를 소개하기 전에 HTTP의 특징과 쿠키와 세션의 등장 배경에 대하여 알아보자. 기본적으로 HTTP 프로토콜 환경은 'Connectionless', 'Stateless'한 특caffeineoverflow.tistory.com   🔐 프로젝트 구조전체 프로젝트 구성은 아래와 같으며, 각..

IT 2025.01.18

[Security] JWT 소개

🔐 HTTP의 특징 및 쿠키(Cookie)와 세션(Session)의 등장JWT를 소개하기 전에 HTTP의 특징과 쿠키와 세션의 등장 배경에 대하여 알아보자.기본적으로 HTTP 프로토콜 환경은 'Connectionless', 'Stateless'한 특성을 가지고 있다.Connectionless(비연결성)- 클라이언트가 서버에 요청 후, 요청에 대한 응답을 받으면 바로 TCP/IP 연결을 끊는다.(연결을 유지하지 않는다.)Stateless(무상태)- 서버가 클라이언트의 이전 상태를 보존하지 않는다.이러한 특성으로 인하여 서버는 클라이언트가 누구인지 매번 확인을 해야하는 번거로움이 있었다.이를 보완하기 위해서 쿠키와 세션 개념이 도입된 것이다.🔐 쿠키(Cookie)와 세션(Session)- 쿠키란?쿠키는 ..

IT 2025.01.18

[Spring] 스프링 AOP

🌱 스프링 삼각형 이전 포스팅 중 '스프링 개요'에서 스프링을 구성하는 핵심 요소에 대하여 알아봤었다.오늘은 그중에서 AOP에 대하여 조금 더 상세하게 포스팅하려고 한다.   🌱 AOP(Aspect Oriented Programming)AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 흩어진 관심사(Crosscutting Concerns)를 모듈화하여 제공하는 프로그래밍 기법이다.아래의 그림을 통해서 자세하게 살펴보자.  Class A, Class B, Class C의 주황, 파랑, 빨강 부분은 각 클래스에서 동일한 코드라고 가정해보자. 만약 주황색 블록에 해당하는 코드를 수정해야 한다면 Class A, Class B, Class C의 주황색 부분..

IT 2025.01.18

[Java] 자바 개발환경 준비 - JDK 설치 및 환경변수 설정

💻 JDK 설치하기1. JDK 다운로드    - 오라클 홈페이지에서 원하는 버전을 선택 후 다운로드한다.   2. 압축풀기    - 다운로드한 ZIP 파일을 압축 해제한다.3. 설치경로 확인    - 압축해제한 폴더로 이동한 후 경로를 확인한다.  💻 환경변수 설정1. 시스템 변수 등록    - '내 PC'를 우클릭하여 [속성]을 클릭한다.    - 설정 > 시스템 내의 [고급 시스템 설정]을 클릭한다.    - 시스템 속성 화면에서 [환경 변수] 버튼을 클릭한다.    -  시스템 변수 영역의 [새로 만들기] 버튼을 클릭하고, 변수 이름과 변수 값에 각 각 'JAVA_HOME'과 JDK를 설치한 디렉토리 경로를 입력한다. 2. 환경 변수 편집    - 시스템 변수 항목 중 'Path'를 선택하고 [..

IT 2025.01.18
반응형