IT 개발 관련/[Spring] 8

[Spring] API Gateway

API Gateway사용자가 설정한 라우팅 설정에 따라서 각각 엔드포인트로 클라이언트 대신해서 요청하고 응답을 받으면 다시 클라이언트에 전달해주는 프록시 역할을 하게됩니다. 시스템의 내부 구조는 숨기고 외부의 요청에 대해서 적절한 형태로 가공해서 응답할 수 있는 장점을 가지고 있습니다. 구축하는 방법1. Spring Cloud GatewaySpring Cloud Gateway는 Spring Boot 2.x 이상에서 사용할 수 있는 API Gateway 솔루션입니다. 마이크로서비스 아키텍처를 지원하며, Spring 생태계와의 뛰어난 통합성을 자랑합니다.장점:Spring 생태계와의 통합성: Spring Boot, Spring Security 등과의 원활한 통합.강력한 라우팅 및 필터 기능: 다양한 라우팅과 ..

[Spring] Jmeter 테스트 해보기 (Window)

다운로드 링크 : https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeterDownload Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be avajmeter.apache.org 다운로드 후 압축 해체한 후 폴더로 들어간 후 bin ..

[Spring] Eureka Server (Discovery Server) 생성

Eureka란?Eureka는 Neflix에서 제공한 MSA를 위한 클라우드 오픈 소스이다.Eureka는 Load Balancer와 Middle-tier server에 에러 대응을 위한 Rest 기반 서비스이다.로드 밸런서에 연결 정보 등록에 대한 문제점과 에러 처리를 유연하게 처리하기 위한 기술이다.Eureka는 등록과 해지를 곧바로 적용할 수 있게 도와줍니다. - Discovery : 다른 서비스의 연결 정보를 찾는 것이다.- Registry : 서비스의 연결 정보를 등록하는 것이다.- Eureka 구성  - Eureka Server : Eureka Client를 관리하는 서버이다.  - Eureka Client : 각각의 서비스에 해당하는 모듈이라고 생각하면 됩니다.  실제 흐름 예시로1. Eurek..

[Spring] MSA(MicroService Architecture) 란?

마이크로서비스 아키텍처 (MSA) 란?마이크로서비스 아키텍처(MSA)는 소프트웨어 애플리케이션을 여러 개의 작은, 독립적으로 배포 가능한 서비스로 구성하는 소프트웨어 개발 접근 방식입니다. 이 아키텍처는 최근 몇 년간 소프트웨어 개발에서 큰 인기를 얻고 있으며, 특히 대규모 시스템의 유연성, 확장성 및 유지보수성을 향상시키는 데 유용합니다. 특징느슨한 결합도 : MSA는 느슨하게 결합되어 있어, 각 서비스가 독립적으로 동작하고, 다른 서비스에 최소한의 영향을 미칩니다.독립적 배포 : 각 서비스는 독립적으로 배포될 수 있어, 시스템의 일부분만 수정하고 배포할 수 있습니다.특정 기능 수행 : 각 서비스는 특정 기능을 수행하도록 설계되어, 단일 책임 원칙(Single Responsibility Principl..

Thymeleaf를 이용한 Header, Footer 재사용 및 유지보수성 향상

헤더(header)와 푸터(footer) 같은 UI 요소는 대부분의 페이지에 동일하게 포함된다.코드의 중복을 줄이고 유지보수성을 높이기 위해 템플릿 엔진을 사용하는 것이 효과적이다.Thymeleaf를 이용하여 헤더와 푸터를 재사용하는 방법과 그로 인한 유지보수성 향상에 대해 글을 작성하려고 한다. 1. Thymeleaf란?Thymeleaf는 Java 기반 웹 애플리케이션에서 HTML 템플릿을 쉽게 작성할 수 있게 해주는 템플릿 엔진입니다. HTML 파일 안에 Thymeleaf 문법을 사용하여 동적으로 콘텐츠를 생성할 수 있다. 2. Header와 Footer의 분리 및 재사용헤더와 푸터의 HTML 코드를 분리된 파일로 작성하여 재사용 가능한 형태 예시 코드이다.header.html S..

[Spring] Swagger 라이브러리 가이드

Swagger란?Swagger는 API를 설계, 빌드, 문서화, 소비 및 검증하기 위한 강력한 오픈 소스 프레임워크입니다. 주로 RESTful API에 적합하며, API의 설계 및 개발 프로세스를 효율적으로 관리하고 문서화할 수 있도록 지원합니다. Swagger는 개발자들이 API를 쉽게 이해하고 사용할 수 있도록 API에 대한 명세를 제공하고, 이를 기반으로 자동으로 API 문서를 생성할 수 있습니다. Springboot에 Swagger 적용하기실습환경Spring boot 2.7.14 build.gradle// swaggerimplementation 'io.springfox:springfox-boot-starter:3.0.0'implementation 'io.springfox:springfox-swag..

[Spring] Spring Security, PasswordEncoder 구현하기

PasswordEncoder를 이용한 Spring Security 비밀번호 암호화비밀번호는 사용자 인증 시스템에서 가장 중요한 요소 중 하나로, 이를 안전하게 저장하는 것은 매우 중요합니다. 비밀번호가 평문으로 저장될 경우, 데이터베이스가 해킹 당했을 때 사용자 계정이 쉽게 노출될 위험이 있습니다. 이를 방지하기 위해 비밀번호를 단방향 암호화하여 저장하는 것이 필수적입니다. Spring Security비밀번호를 안전하게 저장할 수 있도록 비밀번호의 단방향 암호화를 지원하는 PasswordEncoder 인터페이스와 구현체들을 제공 Spring Security를 이용한 구현과정Spring Security 의존성 주입build.gradledependencies { implementation 'org.spri..

[Spring] Binding Result 사용 가이드

Binding Result는 Spring Framework에서 사용되는 인터페이스로 사용자 입력 값을 검증하고 결과를 처리하는데 사용된다. Binding Result를 사용하면 사용자 입력값이 유효하지 않은 경우, 해당 입력값에 대한 오류 정보를 제공하고 다음 단계로 진행하지 않도록 막을 수 있다.1. @Valid 어노테이션을 사용하여 검증 대상 객체를 지정, BindingResult를 매개변수로 삽입2. 검증 대상 객체 내부에서 검증 규칙을 설정3. Biding Result 객체의 hasErrors() 메서드를 사용해서 오류여부를 확인if(bindingResult.hasErrors()){ //유효성 검사 return "member/joinForm";}4. 오류 발생시 오류 메시지를 전송 (Thymele..