JPA
-
[Springboot] SQL Injection 이란? 해결 방안은?Server/Spring Boot 2025. 4. 21. 17:28
🔐 SQL Injection이란?SQL Injection은 사용자의 입력값이 검증 없이 SQL 쿼리에 포함될 때 발생합니다...💥 SQL Injection 발생 예제 (Spring Boot)// 취약한 코드 예시@RestController@RequiredArgsConstructorpublic class UserController { private final JdbcTemplate jdbcTemplate; @GetMapping("/user") public String getUser(@RequestParam String username) { String sql = "SELECT * FROM users WHERE username = '" + username + "'"; ..
-
MapStruct 의 다양한 사용에 대해 알아보자Server/Spring Boot 2025. 4. 16. 13:08
🚀 MapStruct 고급 매핑 예제이번엔 MapStruct를 좀 더 깊이 있게 사용하는 예제들을 소개합니다.List 매핑, @AfterMapping, @Named, @InheritInverseConfiguration 등 실제 프로젝트에서도 매우 유용한 기능들이에요.1️⃣ List 매핑컬렉션 타입도 자동 매핑 가능합니다.// 단일 DTO 매핑 메서드UserDto toDto(User user);// 리스트 매핑List toDtoList(List users);단, 단일 객체 매핑 메서드가 정의되어 있어야 리스트 매핑도 동작합니다.---2️⃣ @AfterMapping - 매핑 후 추가 작업 처리매핑이 완료된 후 후처리를 하고 싶을 경우 @AfterMapping을 사용합니다.@Mapper(componentMo..
-
[Springboot] web+jpa vs webflux+r2dbc 비교 (1)Server 2022. 12. 4. 12:47
기존의 개발 방식으로 많이 사용하는 starter-web + starter-data-jpa 라이브러리를 사용하여 servlet stack 방식을 많이 사용하고 있을 것이다. 최근 webflux + r2dbc 라이브러리를 이용하여 비동기(async) & 논블로킹(non-blocking)으로 구현하는 reactive stack 알게 되어 구현해보고 비교해보려 한다. 각각의 stack방식의 코드 작성은 어떻게 할까? 필자는 mariadb와 연결해서 테스트를 위해 각각 blocking 방식 non-blocking 방식을 지원하는 db connection 라이브러리도 포함해서 진행한다. servlet-stack 코드 기본적인 controller, service, repository, entity를 구성 contr..