inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?

미해결

토비의 스프링 6 - 이해와 원리

안녕하세요. 토비님! 강의 정말 잘 듣고 있습니다. 테스트 코드를 작성해본 경험이 많지 않아서 강의 내에서 테스트 단원을 보다가 궁금한 점이 있어서 질문드립니다. 강의의 예제는 paymentService 를 테스트 하는 코드를 작성하시고, 스프링을 이용하지 않는 방법과 스프링을 이용해 DI 를 통한 테스트를 진행합니다. 코드는 paymentService 의 prepare 메소드 하나를 검증하는데, 사실은 3가지 목적. 적용환율, 원화 환산 금액, 원화 환산 금액 유효시간을 테스트 합니다. 실제로 현업에서 사용하는 서비스 에서는 보다 많은 코드와 기능이 존재할테고, 그에 따른 경우의 수도 기하급수적으로 많아질거라고 생각해요. 그렇다면 보통, 어떤 기준을 통해 테스트를 작성하는 것이 바람직한 테스트 일까요 ? 예를들어 제가 생각해본 여러가지 방법은 다음과 같습니다. 단순히 prepare 메소드 하나만. 메서드 단위로 테스트를 진행. 메서드 안에 존재하는 메서드(예시 코드에서는 provider 메서드) 단위. 목적에 따라서. 적용 환율을 잘 가져오는지, 원화 환산 금액이 잘 계산 되는지, 유효시간을 잘 지키는지. 그 밖에 여러가지 방법. 예를들어 기능이 잘 작동하는지 크게 테스트 한 뒤, 내부적으로 변동사항이 있을 법한 코드만 따로 분리해서 테스트. 물론, 프로젝트 특성이나 팀의 컨벤션, 서비스 코드를 작성할 코드의 특성에 따라서 달라지겠지만 테스트 코드를 작성할 때는 너무 작게도, 그렇다고 너무 뭉뚱그려서도 안된다고 이해하고 있습니다. 보편적으로 어떤 기준을 가지고 테스트 코드를 작성하게 되나요 ?

  • java
  • spring
우주 댓글 2 좋아요 0 조회수 91

테스트 문서화 질문입니다

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. BDD 설명하시면서 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 추상화 수준을 권장한다고 하셨는데요 작성한 테스트를 따로 문서화 하기도 하시는지 궁금합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
save 댓글 2 좋아요 0 조회수 155

Spring Legacy Project 생성 불가

미해결

스프링 프레임워크 입문자를 위한 따라하기

전자정부 프레임워크 3.10 버전으로 강사님의 강의를 따라하고 있습니다. 그런데 새로운 프로젝트를 생성할 때 Spring Legacy Project가 뜨지 않아 찾아보니, 전자정부 프레임워크 3.8 버전 이상에서는 따로 설정을 해줘야 하더라구요. 블로그를 찾아보며 설정을 해줬는데도 제대로 동작하지 않아 그냥 Maven 프로젝트로 생성해서 구성을 맞춰가고 있습니다ㅠ 혹시 전자정부 프레임워크 버전을 낮춰서 3.7이나 3.8로 해도 문제가 없을까요?

  • spring
  • jquery
  • 전자정부프레임워크
Ashblack 댓글 1 좋아요 0 조회수 86

Querydsl 도입

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

querydsl이 쿼리를 코드로 작성하여 컴파일 시점에 오류를 감지할 수 있는게 가장 큰 장점인데 Spring JPA와 혼합하여 사용할떄 그 외에 장점이 또 있을까요 레거시 쿼리는 이미 사용되고 있어 이를 전환하기 위해 먼가 더 장점이 필요할 것 같아서요 아니면 레거시는 두고 신규 추가되는 부분만 Querydsl를 도입하는 식으로 가면 될까요?

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
Mola-Mola 댓글 2 좋아요 0 조회수 107

속성 값 설정

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. th:checked="false"로 설정하면 렌더링 후에 checked 속성이 완전히 없어지던데, 이건 타임리프가 내부적으로 속성을 아예 제거해주는 건가요? 아니면 단순히 비워두는 건가요?

  • spring
  • mvc
김병화 댓글 1 좋아요 0 조회수 49

단위테스트 질문이 있습니다

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 단위테스트할때 항상 궁금했던 점이 단순한 CRUD도 테스트코드를 구현해주는 게 맞는걸까요? JPA 기능을 그대로 적는? 느낌이 나서 굳이 필요한 테스트코드인가 하는 생각이 항상 드는데 왜 구현했는지에 대한 시나리오를 @DisplayName 적곤 하지만 뭔가 불필요하다는 생각이 가끔 들기도 하는데 다 적는 게 맞는거겠죠??

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
woo93xna 댓글 2 좋아요 0 조회수 142

fetch join DISTINCT 중복제거

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

fetch join 부분이 조금 어렵게 느껴져서, gpt에게 물어보며 공부했습니다. 강의에서 fetch join으로 나온 중복 데이터를 DISTINCT 키워드를 이용해서 제거해주시는 부분을 보았는데, gpt가 다음과 같이 설명해주는 것을 보았습니다. DISTINCT 키워드가 SQL과 JPA 양쪽에서 다르게 동작하기 때문에 완전한 중복 제거가 보장되진 않습니다. 이 말이 맞다면 현업에서는 이런 문제를 어떤 식으로 해결하는지 궁금합니다!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
박지원 댓글 2 좋아요 1 조회수 127

순수 webflux 프로젝트의 가독성 팁 그리고 향후 kotlin을 활용한 프로젝트 계획이 있는지 궁금합니다.

미해결

Spring WebFlux + LLM 실전 구현

안녕하세요. 좋은 강의로 덕분에 webflux에 대해 쉽게 이해할 수 있었습니다. 저는 현재 kotlin으로 개발하는 프로젝트가 있어, webflux를 사용할때는 coroutine을 함께 사용하는데요, 이렇게 하면서 코드를 함수형처럼 짤 수 있어 보다 쉽게 동료들에게 보여줄 수 있었습니다. 혹시 강사님께서도 coroutine을 함께 사용하기도 하시는지, 그렇다면 java가 아닌 kotlin을 사용한 강의 계획이 있는지 궁금합니다. 또한, 강의에서 쉽게 설명해주셨지만 비즈니스 로직이 좀 더 추가되는 경우 코드가 많이 복잡하고 가독성이 어려워지던데, 가독성을 위한 팁들이 있는지 궁금합니다. ps. webflux 2 프로젝트에는 사용 가능한 gmemini api key가 입력되어 있습니다. 😅

  • java
  • spring
  • webflux
  • chatgpt
  • llm
보링 댓글 2 좋아요 0 조회수 179

인메모리 DB, 테스트 컨테이너 선택 기준이 있으신지 궁금합니다

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

강의에서는 H2 인메모리 DB를 이용해 테스트를 진행하셨는데, 실무에서는 테스트 환경에서 실제 MySQL이나 PostgreSQL 같은 실제 운영 DB와 동일한 컨테이너 기반 테스트 DB를 사용하는 경우도 많은 것 같습니다. 실무에서는 인메모리 DB와 컨테이너 DB 중 어떤 상황에서 어떤 것을 선택하시는지, 선택 기준이나 장단점에 대해 조언을 받을수 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
서진 댓글 2 좋아요 0 조회수 77

OutBox 패턴에 대한 질문입니다.

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

안녕하세요 ! 강의 잘 듣고 있습니다. 최근 OutBox 패턴을 사용해보려고 시도중입니다 ! CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다. ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행 이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다. 여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다. 어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
김승수 댓글 2 좋아요 0 조회수 155

kafka 컨슘은 실시간 인가요?

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

실시간 이라면 stream하고 어떻게 차이가 나는걸까요?

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
핵심국사 댓글 2 좋아요 0 조회수 111

8강 도메인 모델과 DDD 내용에 대해 질문있습니다.

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

8강 도메인 모델과 DDD 에서 코드의 내용이 도메인에도 반영이 되어야 할 때도 있다고 하셨는데 예시를 들어 주실 수 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
penelope 댓글 2 좋아요 0 조회수 68

표준 예외와 커스텀 예외 사용 전략 질문

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요. 수업 내용과는 크게 관계가 없지만... 예외처리 관련 내용에 대한 질문을 드립니다. 스프링이 제공하는 표준 예외( IllegalArgumentException , IllegalStateException )와 비즈니스 로직을 표현하는 커스텀 예외( NotFoundUserException ) 사이에서 표준 예외를 사용하는 경우와 커스텀 예외를 사용하는 경우에 대한 기준을 알 수 있을까요? 감사합니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩터링
김민우 댓글 3 좋아요 0 조회수 155

도메인의 응집도와 모델 복잡도간 밸런스 고민

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

강의 너무 재미있게 듣고 있습니다. 도메인이라는 개념에 대해서 고민하다가 궁금한 사항이 생겨서 질문드립니다. "도메인 모델이 비즈니스 규칙을 모두 내포하면 응집도는 높아지지만, 복잡도도 함께 커집니다. 이때 어디까지를 도메인 모델에 포함시키는 게 적절할까요?"

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • domain
sr 댓글 2 좋아요 0 조회수 101

Application Service와 Domain Service를 명확하게 이해한 건지 궁금합니다.

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

Application Service에서는 흐름을 관리하고 (예를 들면 DB에서 데이터를 가져오는 등) Domain Service는 복잡한 비즈니스 로직을 처리하는 역할로 이해를 했는데 이해한 것이 맞을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
서울자바맨 댓글 2 좋아요 0 조회수 302

빈약한 도메인 모델을 보완하기

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요. 빈약한 도메인 모델에 관하여 질문이 있습니다. 현재 개인적으로 진행하는 프로젝트에서 데이터 홀더 역할정도만 하는 빈약한 도메인 모델이 있습니다. repository에는 테이블의 상태 컬럼을 업데이트하는 메소드가 존재하는데 이를 도메인 모델 내부에 메소드를 만들어 업데이트하고 repository의 save를 통해 엔티티의 상태를 update하는 것이 강의에서 의도한 내용으로 이해했는데 맞을까요? 추가로 이런 경우(비즈니스 로직이 복잡하지 않은)에 꼭 도메인 모델이 없어도 될지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
1q2w3e4r 댓글 2 좋아요 0 조회수 67

JPA entity와 도메인 모델을 분리하는 케이스에 대한 질문입니다.

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

JPA entity와 도메인 모델을 분리하는 케이스에서 데이터 저장 기술이 바뀌는 경우 Spring Data를 사용하면 해당되지 않는다고 하셨는데 JPA에서 MyBatis로 변경하는 경우도 Spring Data로 커버가 가능한가요? 회사에서 JPA로 개발을 진행중인데 MyBatis로 마이그레이션을 해야할수도 있어서 질문드립니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • mybatis
타이한 댓글 2 좋아요 0 조회수 97

메세지 저장 관련 질문입니다

해결됨

카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka

카프카 메시지 저장 방식에 대한 질문 카프카에 대해서 잘 알지 못할때 카프카에 메시지가 저장되어 편리하다는 이야기를 들었습니다. 그래서 AWS SQS에서 카프카로 전환하면 별도의 메시지 저장소가 필요 없을 것 같았는데, 강의를 들어보니 장기 보관이 필요하면 결국 따로 저장해야 하는 것 같더라고요. 질문: 장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요? 카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?

  • java
  • spring
  • kotlin
  • spring-boot
  • kafka
dlkfjan 댓글 2 좋아요 0 조회수 68

컨트롤러는 모킹을 한 이유가 궁금합니다.

미해결

Practical Testing: 실용적인 테스트 가이드

강사님은 Classicist 쪽에 속하셔서 Service를 테스트할 경우 Repo도 포함한다고 하셨었는데 Controller에서는 MockMvc를 활용하셔서 따로 테스트한 것으로 알고 있습니다. 컨트롤러 - 서비스, 레포지토리의 관계와 서비스 - 레포지토리의 관계에서 어떤 차이점 때문에 이렇게 구성하신 것인지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
jaljayo85 댓글 2 좋아요 0 조회수 136

인기 태그

인프런 TOP Writers

주간 인기글