스프링에서 서비스 레이어(Apllication Layer) 테스트에 대한 질문입니다.
제 개인 프로젝트를 진행하면서, 서비스 레이어에서는 단순히, 도메인 레이어에 존재하는 다른 객체들을 호출해서 비즈니스 로직을 처리하는 책임만을 담당하다보니, 서비스 레이어에 존재하는 객체를 테스트하는 코드를 작성하게 되면 대부분 테스트할 내용이, 메소드의 실행순서를 올바르게 실행해줬는가? 와 같은 부분만 테스트할게 없었는데 이 부분이 제가 잘못 설계한 부분이 아닌 오히려, 객체간의 책임을 잘 나누고 서비스 레이어의 책임에 맞게 코드를 작성한것 같다는 확신을 강의를 보고나서 알수 있었습니다 좋은 강의 감사합니다😊
回答 2
2
안녕하세요. 강의를 좋게 봐주셨다는 내용인데 확인을 못하고 있었어서 ‘좋아요’ 한번 못 누르고 있었네요. 근래에 출판사로부터 좋은 제의를 받아 집필하느라 정신이 없었습니다.
서비스 테스트가 ‘메소드의 실행순서를 올바르게 실행해 줬는가?’ 정도로 된다는 말은 정말 와닿는 말이네요. 이런 생각까지 하셨다면 오히려 좋은 신호라는 생각이 듭니다. 서비스의 역할은 그만큼 약해지고 도메인의 역할은 강해졌다는 의미니까요. 처음부터 이미 잘하고 계신 것 같아 조금 부럽기까지 합니다. 저는 잘못된 습관이 몸에 좀 배어있는 터라 고치는 게 조금 힘들거든요. 😭
개발 재밌게 하시길 바랍니다. 제가 좋은 피드백을 받아 오늘이 좋은 하루가 된 것처럼, 언젠가 이 글 보시고 좋은 하루 되시길 바랍니다. :)
0
제가 좋은 피드백을 받아 오늘이 좋은 하루가 된 것처럼, 언젠가 이 글 보시고 좋은 하루 되시길 바랍니다. :)
우근님의 강의 내용과 제 질문에 달아주신 답변을 토대로 파편화 되어 있던 지식, 그리고 제대로 알고 있는지 확신이 없던 지식들이 하나의 통합된 확신을 가질수 있는 지식들로 바뀔수 있는 계기가 된것 같습니다.
그리고 이미 너무나도 잘하고 계신 선배 개발자 우근님께서 위 인용구 말처럼 말씀해주셔서 정말 기분 좋은 하루 보낼 수 있을것 같습니다. 정성스러운 강의와 정성스러운 답변 달아주셔서 감사합니다! 집필하시는 책도 나중에 꼭 공지해주세요! ㅎㅎ
신입, 취준생 후배 개발자들에게 선한 영향력을 주고 계신 우근님도 좋은 하루 되시길 바랍니다:) 감사합니다😊
1
안녕하세요, 인프런 AI 인턴이에요.
서비스 레이어에서의 테스트는 매우 중요합니다. 코드의 안정성을 보장하고, 비즈니스 로직이 작동하는 것을 검증하기 위한 과정입니다.
서비스 레이어에서 테스트할 내용이 메소드의 실행순서를 올바르게 실행해줬는가? 와 같은 부분만 테스트한다면, 단위 테스트가 제대로 이루어지지 않은 것입니다. 단위 테스트에서는 각 메소드의 기능이 제대로 동작하는지를 검증해야 합니다. 따라서, 입력 값과 출력 값을 확인하고, 예외 상황에 대한 처리 등을 테스트하는 것이 필요합니다.
그리고, 서비스 레이어에서 사용하는 객체가 외부 의존성을 가지지 않도록하는 것도 중요합니다. Mock 객체 또는 스텁 객체를 이용하여 외부 의존성을 제거하고, 단위 테스트를 수행할 수 있도록 작성하는 것이 좋습니다.
최종적으로, 단위 테스트, 통합 테스트, 시스템 테스트 등 다양한 테스트 방법을 활용하여 비즈니스 로직의 안정성을 보장하는 것이 중요합니다.
더 자세한 내용은 관련 서적이나 강의를 참고하시면 도움이 될 것입니다. 감사합니다.
주니어 개발자가 더 나아가기 위한 조언을 부탁 드려도 될까요?
0
89
1
Repository 인터페이스 위치
0
71
1
Rest API - 많이하는 실수 에서 복수형
0
402
1
패키지 구조에 대한 질문
0
131
1
의존하는 객체 final 선언 질문드립니다.
0
159
1
의존성 주입에서 파라미터 주입과 필드 주입 관련 질문 드립니다.
0
183
1
강의내용 중 Fake Repository 질문
0
284
1
변하는 값을 추상화 시켜라
0
306
1
외래키를 지양하라는 질문에 대한 궁금증
0
2995
2
안녕하세요 아랫분 질문에 서 궁금한점이 있어서 질문드립니다
0
452
2
@Entity != RDB Table에 대한 질문입니다.
1
496
2
의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?
0
462
2
MySQL 사용에 대한 조언 질문있습니다.
0
865
2
강의와 크게 상관은 없지만 공부의 방향성에 대해서 질문합니다.
1
635
2
진짜 객체지향과 테스트하기 쉬운 코드를 위헤서는 jpa가 의미없는게 아닌가하는 생각이 들어요
2
1855
2
c. Collection,Map 질문
1
536
2
fake Repository로 테스트를 진행하려고 합니다,
1
1175
3
DB 엔티티와 도메인 분리
3
4700
2
도메인 객체 질문
1
582
2
Controller / application Service / Domain 의 역할 구분
1
1413
2
테스트 하기 쉬운 코드에서 테스트의 범위?
1
675
2
Repository 대신 Reader / Writer 사용 질문있습니다!!
1
709
2
ProductService부분에서 리팩토링 언급 질문
1
387
2
IoC != DI에 대한 질문입니다.
1
833
2

