Jiihyun's log
close
프로필 배경
프로필 로고

Jiihyun's log

  • 분류 전체보기
    • CS
      • DB
    • Spring
    • [Mingle] Project
    • Reflection
    • Clean code
    • Language
      • Java
      • Kotlin
스프링에서 응답을 보낼 때 ResponseEntity를 사용하자!

스프링에서 응답을 보낼 때 ResponseEntity를 사용하자!

들어가며스프링을 사용할 때, ResponseEntity 객체를 통해 클라이언트에게 응답을 보내본 경험이 많으실 겁니다.클라이언트에게 데이터를 전달할 때, 단순히 객체만 반환하지 않고 왜 ResponseEntity를 사용하여 응답을 구성할까요?이에 대한 궁금증을 해결하고자 글을 작성합니다. ResponseEntity란?ResponseEntity는 HttpEntity를 상속받아 구현된 클래스로, 본문(HttpBody),헤더(HttpHeaders),HTTP 응답의 상태 코드(HttpStatus)를 포함합니다. ResponseEntity 클래스를 살펴보면, 사진과 같이 status(HTTP 상태 코드) 만 자체 필드로 가지고 있습니다.나머지 두 필드인 headers(헤더) 와 body(본문) 는 상위 클래스인..

  • format_list_bulleted Spring
  • · 2025. 3. 28.
  • textsms

@Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 의 차이

테스트 더블이란?외부 의존성이 있는 코드나 복잡한 비즈니스 로직을 테스트할 때, 실제 객체를 사용할 경우 테스트가 어려워지거나 비효율적일 수 있다. 테스트 더블은 테스트 진행이 어려운 상황에서 이를 대신해 테스트를 수행할 수 있도록 만들어진 객체를 의미한다.쉽게 이해할 수 있는 예로는 스턴트맨이 있다.스턴트맨은 배우를 대신해 특정 상황에서 연기를 수행하는데, 이를 영어로 스턴트 더블이라고 한다.이 개념을 테스트에 적용하면 테스트 더블이 된다. 테스트 더블 종류Dummy: 아무 것도 하지 않는 깡통 객체객체는 존재하지만 내부는 비어있을 수 있어 정상 동작은 보장하지 않는다.Fake: 단순한 형태로 동일한 기능을 수행하나, 프로덕션에서 쓰기에는 부족한 객체(e.g., FakeRepository-메모리 맵)S..

  • format_list_bulleted Spring
  • · 2025. 3. 27.
  • textsms
직렬화(Serialization)와 역직렬화(Deserialization)

직렬화(Serialization)와 역직렬화(Deserialization)

들어가며현재 콩콩밥밥이라는 스터디를 통해 초록 스터디의 스프링 입문과정에 참여하고 있습니다.미션을 구현하는 중 InvalidDefinitionException 에러를 만났습니다.그 이유는 객체 내 필드 접근이 불가하여 직렬화(JSON->객체로 변환)를 할 수 없었기 때문에 발생했습니다. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class roomescape.entity.Reservation and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EM..

  • format_list_bulleted Spring
  • · 2025. 3. 27.
  • textsms
DTO는 무엇이고, 왜 필요할까?

DTO는 무엇이고, 왜 필요할까?

들어가며현재 콩콩밥밥이라는 스터디를 통해 초록 스터디의 스프링 입문과정에 참여하고 있습니다.미션으로 방탈출 프로그램의 예약 CRD API를 구현하던 중, 단순히 View에 전달해야 하는 데이터가 Entity의 모든 필드와 동일하다는 이유로 Controller 메서드의 반환값으로 Entity를 그대로 사용했습니다.@RestController@RequestMapping("/reservations")public class ReservationController { private final ReservationService reservationService; public ReservationController(final ReservationService reservationService) { ..

  • format_list_bulleted Spring
  • · 2025. 2. 22.
  • textsms
PUT, PATCH의 차이점 (feat. 멱등성)

PUT, PATCH의 차이점 (feat. 멱등성)

들어가며현재 콩콩밥밥이라는 스터디를 통해 초록 스터디의 스프링 입문과정에 참여하고 있습니다.미션을 구현하며 API를 설계하던 중, 값을 수정해야 하는 상황에서 관성적으로 HTTP Method로 PUT을 사용해왔다는 점을 깨달았습니다.이를 계기로 PATCH와 PUT의 차이점은 무엇인지? 왜 PUT method를 더 선호하는지? 에 대해 알아보고자 합니다. PUTRFC 문서에 의하면 PUT의 정의는 다음과 같습니다:The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message cont..

  • format_list_bulleted Spring
  • · 2025. 2. 15.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기
    • CS
      • DB
    • Spring
    • [Mingle] Project
    • Reflection
    • Clean code
    • Language
      • Java
      • Kotlin
최근 글
인기 글
최근 댓글
태그
  • #HttpMessageConverter
  • #aws sdk v2
  • #Data Transfer Object
  • #ResponseEntity
  • #s3 presigner
  • #멱등성
  • #presigned url
  • #HTTP 응답
  • ##객체 지향 5원칙
  • #ResponseBody
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바