반응형 SMALL SpringBoot38 JSON 응답 처리 기본 개념: @RestController와 JSON스프링 부트에서 @RestController는 자동으로 객체를 JSON으로 변환하여 응답합니다. 내부적으로 **Jackson(ObjectMapper)**이 작동합니다.예제: DTO를 JSON으로 응답하기@RestControllerpublic class MemberController { @GetMapping("/api/member") public MemberDto getMember() { return new MemberDto("홍길동", "danbi@example.com"); }}DTO 클래스public class MemberDto { private String name; private String email; .. 2025. 4. 15. 유효성 검사와 예외 처리 유효성 검사 (Validation)DTO 클래스에 유효성 조건 추가public class MemberDto { @NotBlank(message = "이름은 필수입니다.") private String name; @Email(message = "유효한 이메일 형식이어야 합니다.") private String email; @Min(value = 10, message = "나이는 10세 이상이어야 합니다.") private int age; // getter/setter 생략}Java Bean Validation(표준) 기반이며, javax.validation.constraints 혹은 jakarta.validation.constraints 패키지를 사용합니다.컨트롤러에서 유.. 2025. 4. 15. 의존성 주입(DI)과 @Service 의존성 주입(DI) 이란?정의의존성 주입은 객체 간의 의존 관계를 개발자가 직접 생성하지 않고,스프링이 대신 주입해주는 설계 패턴입니다.즉, 객체를 직접 new 하지 않고, 필요한 객체를 외부에서 주입받는 것입니다.왜 필요한가? 전통적인 방식 문제점 UserService userService = new UserService();클래스가 스스로 의존 대상을 만들기 때문에 결합도가 높고 테스트 어려움DI를 사용하면 이렇게 바뀝니다:@Servicepublic class UserService { private final UserRepository userRepository; // 생성자를 통해 주입 (Constructor Injection) public UserService(UserReposit.. 2025. 4. 15. 서비스 계층 생성 및 역할 MVC 3계층 구조 이해 계층 설명 Controller사용자 요청/응답 처리 (API 진입점)Service비즈니스 로직을 담당 (주 로직 중심)Repository데이터 저장소(DB)와 직접 통신서비스 계층은 도메인 로직의 중심입니다.단순히 DB에 넘겨주는 수준을 넘어서서, 다양한 검증·처리·계산이 포함됩니다.서비스 계층 생성 예시1. 기본 구조@Servicepublic class MemberService { private final MemberRepository memberRepository; // 생성자 주입 (추천 방식) public MemberService(MemberRepository memberRepository) { this.memberRepository = mem.. 2025. 4. 15. 트랜잭션 처리 트랜잭션(Transaction)이란?정의트랜잭션이란 DB 작업을 하나의 논리적인 단위로 묶는 것입니다.이 작업은 **모두 성공하거나, 전부 실패(롤백)**해야 합니다.특징 (ACID 원칙) 속성 설명 Atomicity (원자성)모두 성공 또는 모두 실패Consistency (일관성)데이터 무결성 유지Isolation (격리성)동시성 충돌 방지Durability (지속성)커밋된 데이터는 영구 저장스프링에서 트랜잭션 처리 방법스프링에서는 @Transactional 애너테이션을 이용하여 매우 쉽게 트랜잭션을 처리할 수 있습니다.기본 사용 방법서비스 클래스에 적용@Servicepublic class MemberService { private final MemberRepository memberReposit.. 2025. 4. 15. 쿼리 메서드 & JPQL 쿼리 메서드(Query Method)정의메서드 이름만으로 쿼리를 생성하는 방식스프링 데이터 JPA가 메서드 명을 분석하여 SQL을 자동 생성합니다.사용 예시public interface MemberRepository extends JpaRepository { List findByName(String name); Member findByEmailAndAge(String email, int age); boolean existsByEmail(String email); long countByAgeGreaterThan(int age); void deleteByName(String name);} 메서드 이름 동작 설명 findByNamename으로 조회findByEmailAndAgeema.. 2025. 4. 14. 이전 1 2 3 4 5 6 7 다음 LIST