인프런 커뮤니티 질문&답변

aorri96님의 프로필 이미지

작성한 질문수

Java/Spring 주니어 개발자를 위한 오답노트

스프링에서 OOP와 안티 패턴 : Transaction script

스프링에서 서비스 레이어(Apllication Layer) 테스트에 대한 질문입니다.

해결된 질문

23.06.19 02:50 작성

·

737

1

제 개인 프로젝트를 진행하면서, 서비스 레이어에서는 단순히, 도메인 레이어에 존재하는 다른 객체들을 호출해서 비즈니스 로직을 처리하는 책임만을 담당하다보니, 서비스 레이어에 존재하는 객체를 테스트하는 코드를 작성하게 되면 대부분 테스트할 내용이, 메소드의 실행순서를 올바르게 실행해줬는가? 와 같은 부분만 테스트할게 없었는데 이 부분이 제가 잘못 설계한 부분이 아닌 오히려, 객체간의 책임을 잘 나누고 서비스 레이어의 책임에 맞게 코드를 작성한것 같다는 확신을 강의를 보고나서 알수 있었습니다 좋은 강의 감사합니다😊

답변 2

1

김우근님의 프로필 이미지
김우근
지식공유자

2023. 08. 20. 16:47

안녕하세요. 강의를 좋게 봐주셨다는 내용인데 확인을 못하고 있었어서 ‘좋아요’ 한번 못 누르고 있었네요. 근래에 출판사로부터 좋은 제의를 받아 집필하느라 정신이 없었습니다.

서비스 테스트가 ‘메소드의 실행순서를 올바르게 실행해 줬는가?’ 정도로 된다는 말은 정말 와닿는 말이네요. 이런 생각까지 하셨다면 오히려 좋은 신호라는 생각이 듭니다. 서비스의 역할은 그만큼 약해지고 도메인의 역할은 강해졌다는 의미니까요. 처음부터 이미 잘하고 계신 것 같아 조금 부럽기까지 합니다. 저는 잘못된 습관이 몸에 좀 배어있는 터라 고치는 게 조금 힘들거든요. 😭

개발 재밌게 하시길 바랍니다. 제가 좋은 피드백을 받아 오늘이 좋은 하루가 된 것처럼, 언젠가 이 글 보시고 좋은 하루 되시길 바랍니다. :)

aorri96님의 프로필 이미지
aorri96
질문자

2023. 08. 21. 14:25

제가 좋은 피드백을 받아 오늘이 좋은 하루가 된 것처럼, 언젠가 이 글 보시고 좋은 하루 되시길 바랍니다. :)

 

우근님의 강의 내용과 제 질문에 달아주신 답변을 토대로 파편화 되어 있던 지식, 그리고 제대로 알고 있는지 확신이 없던 지식들이 하나의 통합된 확신을 가질수 있는 지식들로 바뀔수 있는 계기가 된것 같습니다.

 

그리고 이미 너무나도 잘하고 계신 선배 개발자 우근님께서 위 인용구 말처럼 말씀해주셔서 정말 기분 좋은 하루 보낼 수 있을것 같습니다. 정성스러운 강의와 정성스러운 답변 달아주셔서 감사합니다! 집필하시는 책도 나중에 꼭 공지해주세요! ㅎㅎ

신입, 취준생 후배 개발자들에게 선한 영향력을 주고 계신 우근님도 좋은 하루 되시길 바랍니다:) 감사합니다😊

 

 

1

인프런 AI 인턴님의 프로필 이미지

2023. 06. 20. 02:56

안녕하세요, 인프런 AI 인턴이에요.

서비스 레이어에서의 테스트는 매우 중요합니다. 코드의 안정성을 보장하고, 비즈니스 로직이 작동하는 것을 검증하기 위한 과정입니다.

서비스 레이어에서 테스트할 내용이 메소드의 실행순서를 올바르게 실행해줬는가? 와 같은 부분만 테스트한다면, 단위 테스트가 제대로 이루어지지 않은 것입니다. 단위 테스트에서는 각 메소드의 기능이 제대로 동작하는지를 검증해야 합니다. 따라서, 입력 값과 출력 값을 확인하고, 예외 상황에 대한 처리 등을 테스트하는 것이 필요합니다.

그리고, 서비스 레이어에서 사용하는 객체가 외부 의존성을 가지지 않도록하는 것도 중요합니다. Mock 객체 또는 스텁 객체를 이용하여 외부 의존성을 제거하고, 단위 테스트를 수행할 수 있도록 작성하는 것이 좋습니다.

최종적으로, 단위 테스트, 통합 테스트, 시스템 테스트 등 다양한 테스트 방법을 활용하여 비즈니스 로직의 안정성을 보장하는 것이 중요합니다.

더 자세한 내용은 관련 서적이나 강의를 참고하시면 도움이 될 것입니다. 감사합니다.

aorri96님의 프로필 이미지

작성한 질문수

질문하기