728x90
반응형
SMALL

Spring 21

Spring Cloud MSA

Spring Cloud MSAMSA란?MSA (Microservices Architecture)는 소프트웨어 아키텍처 패턴 중 하나로,애플리케이션을 작고 독립적인 서비스들로 나누어 구성하는 방식입니다.각 서비스는 특정한 비즈니스 기능을 담당하고, 다른 서비스와 독립적으로 배포, 개발, 운영이 가능하도록 설계됩니다.특징독립적인 서비스분리된 배포와 개발자율적인 기술 스택독립적인 데이터베이스API를 통한 통신운영 및 관리의 복잡성 증가Spring Cloud ConfigSpring Clound Config를 사용하여 마이크로서비스의 구성 파일을 중앙 집중식으로 관리Git Repository SSH 연결방식 GitHub 리포지토리 비공개로 생성마이크로 서비스별로 파일 분리파일명은 service-name.yml ..

Spring 2025.01.23

MapStruct

MapStructJava 애플리케이션에서 객체 매핑을 컴파일 타임에 자동으로 생성해주는 라이브러리입니다. 이를 통해 객체 간의 매핑을 효율적으로 수행할 수 있습니다.객체 매핑을 컴파일 타임에 자동으로 생성해주어 성능과 타입 안전성 몇에서 뛰어남.MapStruct 의존성 추가implementation 'org.mapstruct:mapstruct:1.5.5.Final'#롬복과 같이 사용시에 롬복 annotationProcessor 밑에 추가annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'빌더 사용 예시UserEntity@Getter@Entity@DynamicInsert@DynamicUpdate@NoArgsConstructor@Table(..

Spring 2025.01.02

Flyway

Flyway데이터베이스 마이그레이션 도구로, 애플리케이션의 데이터베이스 스키마 변경을 관리하는 데 사용됩니다. Flyway를 사용하면 데이터베이스 변경 내역을 버전 관리하고, 자동화된 마이그레이션을 통해 지속적인 통합(CI)과 배포(CD)에 도움을 줄 수 있습니다.Spring Boot 프로젝트에서 Flyway를 활용하면 마이그레이션 스크립트 작성과 실행을 간소화하고, 데이터베이스 변경 사항을 효율적으로 관리할 수 있습니다.Flyway 의존성 추가//flyway//특정 DB 호환성을 높이기 위한 별도의 의존성 추가implementation 'org.flywaydb:flyway-mysql'implementation 'org.flywaydb:flyway-core'Flyway 전역설정 (application.y..

Spring 2025.01.02

Undertow

Undertow vs Tomcat특징UndertowTomcat성능고성능, 비동기적 처리로 높은 동시성 지원상대적으로 덜 효율적, 동기식 처리 방식설정 및 사용 용이성간단하고 모듈화된 설정많은 설정 옵션, 설정이 복잡할 수 있음비동기 처리비동기 처리 기본 지원, I/O 작업에 강점비동기 서블릿 지원(8버전 이상), 상대적으로 덜 효율적확장성매우 모듈화되어 있어 필요한 기능만 추가 가능안정적이나 대규모 트래픽 처리에는 더 무겁고 복잡함기능 및 지원HTTP, WebSocket, HTTP/2 등 지원, 플러그인 방식으로 기능 확장Servlet, JSP, WebSocket 등 전통적인 기능 지원사용 사례마이크로서비스, RESTful API 서버, 경량화된 환경전통적인 웹 애플리케이션, 엔터프라이즈 환경커뮤니티 및..

Spring 2025.01.02

Spring Security 내부 필터

DisableEncodeUrlFilterDefaultSecurityFilterChain에 기본적으로 등록되는 필터로 가장 첫 번째에 위치한다.필터가 등록되는 목적은 URL 파라미터에 세션 id가 인코딩되어 로그로 유출되는 것을 방지하기 위함이다.//비활성화 방법http .sessionManagement((manage) -> manage.disable());WebAsyncManagerIntegrationFilterDefaultSecurityFilterChain에 기본적으로 등록되는 필터로 가장 첫 번째에 위치한다.SecurityContextHolder가 ThreadLocal 전략을 사용하여 동일한 쓰레드에서만 사용하는데서블릿단에서 비동기 작업을 할 때 위 필터로 동일한 SecurityConte..

Spring 2024.10.24

Spring Security 내부 흐름

Spring Security란?스프링 프레임워크의 보안 모듈로, 애플리케이션의 인증(Authentication)과 인가/권한 부여(Authorization)를 담당합니다. 이는 웹 애플리케이션 및 서비스의 보안을 강화하고, 다양한 보안 기능을 쉽게 구현할 수 있도록 돕습니다.필터필터의 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러필터체인HTTP 요청 -> WAS -> 필터1 -> 필터2 ->필터3... -> 서블릿 -> 컨트롤러의존성 추가dependencies { implementation "org.springframework.boot:spring-boot-starter-security"}동작원리클라이언트로부터 요청이 들어오면 DelegatingFilterProxy가 이를 가로..

Spring 2024.10.22

Spring Data JPA

스프링 데이터 JPA 리포지토리공통 인터페이스 분석공통 인터페이스 설정@Configuration@EnableJpaRepositories(basePackages = "jpabook.jpashop.repository")public class AppConfig {}>스프링부트 사용시 @SpringBootApplication 위치를 지정(해당 패키지와 하위 패키지 인식) 만약 위치가 달라지면 @EnableJpaRepositories 필요 @Repository 애노테이션 생략가능스프링 데이터 JPA 기반 리포지토리public interface MemberRepository extends JpaRepository {}>JpaRepository 인터페이스 : 공통CRUD 제공 제네릭타입 설정제네릭 타입- T: 엔티..

Spring 2024.09.30

Spring JPA (1)

JPAJava Persistence API자바 진영의 ORM 기술 표준ORM (Object-relational mapping) JPA는 애플리케이션과 JDBC 사이에서 동작데이터베이스 방언JPA는 특정 데이터베이스에 종속적이지 않다.각각의 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다른데JPA는 'hibernate.dialect' 속성에 지정하여 해당 방언들을 지원한다.엔티티 매니저 팩토리와 엔티티 매니저출처:자바 ORM 표준 JPA 프로그래밍 - 기본편 (김영한)EntityManagerFactory//엔티티 매니저 팩토리 생성, 비용이 많이 들어 하나만들어서 공유해서 사용//hello는 JPA설정파일 네임EntityManagerFactory emf = Persistence.createEntit..

Spring 2024.09.30
728x90
반응형
LIST