본문 바로가기
Blog/TIL

2025-01-06 (월)

by 코젼 2025. 1. 6.
728x90
반응형

@ModelAttribute

  • 컨트롤러 메서드의 파라미터바인딩하고, 뷰로 전달할 객체 설정
  • 클라이언트 요청 데이터를 객체로 매핑한다.
    //요청 데이터: /register?name=John&age=30
    @PostMapping("/register")
    fun registerUser(@ModelAttribute user: User): String {
      println("User: $user")
      return "success"
    }
    //바인딩된 객체
    User(name = "John", age = 30)

    @JvmStatic

  • 정적 메서드처럼 호출 가능하게 만들어주는 어노테이션
  • JUnit5@BeforeAll, @AfterAll 은 정적 메서드로 선언해야 한다.

    (@BeforeAll / @AfterAll) vs 객체 직접 생성

    객체를 직접 생성하는 경우

  • 테스트 실행 순서와 관계없이 독립적으로 동작한다.
  • 테스트 클래스 내부에서만 유효하고, 테스트 간 리소스를 공유하지 않는다.
  • 테스트 클래스가 여러 번 실행되거나 객체 생성 비용이 큰 경우 비효율적이다.

    테스트 전후 처리를 하는 경우

  • 초기화된 객체는 모든 테스트에서 공유되고, 동일 객체를 사용하므로 일관성을 유지할 수 있다.
  • 초기화 비용이 큰 작업을 한 번만 수행하므로 효율적이다.
  • 테스트 초기화와 정리 작업이 명확히 분리되어 가독성과 유지보수성이 높아진다.

    Kotest / JUnit 5 의 @BeforeAll, @AfterAll 차이점

  • 라이프사이클 관리 방식과 동작 컨텍스트의 차이
  • Kotest
    • Spec-level (전체 테스트의 시작과 끝): beforeSpec, afterSpec
    • Test-level (각 테스트의 실행 전후): beforeTest, afterTest
728x90
반응형

'Blog > TIL' 카테고리의 다른 글

2025-01-08 (수)  (0) 2025.01.08
2025-01-07 (화)  (0) 2025.01.07
[240907] 이진법  (0) 2024.09.07
[240906] 우선 순위 큐 (PriorityQueue)  (0) 2024.09.06
[240905] 코딩 테스트 풀이  (0) 2024.09.05

댓글