

이번 강의에서는 기존에 구현하였던 페이지 기능의 테스트를 정의하는 시간을 가졌다. 게시판 리스트 불러오기, 키워드에 따라 검색된 게시글 목록 불러오기, 게시글 상세 페이지 불러오기 등 비즈니스 로직이 들어가는 service 클래스를 구현하였다. 컨트롤러가 사용자의 요청을 어떻게 처리할지 제어하는 부분을 담당한다면, 서비스는 데이터의 생성, 조회, 삭제, 수정 등 로직을 처리하는 부분을 담당한다고 볼 수 있다. 실제 회사에서도 Spring MVC 를 기반으로 앱이 구축되어 있는데, Controller와 Service로 나누어 로직을 처리하고 있다. 실무에서 소스코드를 분석하고 수정하다보면, 컨트롤러와 서비스가 담당하는 역할이 반드시 지켜지는 것 같지는 않지만, 해당 내용을 학습하였으니, 앞으로는 최대한 준수하면서 유지보수를 해야겠다는 생각이 들었다. 또한, 대부분 프로젝트에서는 서비스 단에서 DB에 접근할 때, 보통 dao 객체를 별도로 만들어서 해당 객체를 통해 데이터 수정, 생성, 조회, 삭제를 처리하도록 위임하는 방식을 선택한다. 이 역시, 객체 지향의 기본 철학인 책임을 단일화한다는 내용을 지키기 위함이라는 생각이 든다. 이러한 방식은 자바, 스프링으로 구현된 프로젝트라면 모두 공통되게 도입되어있으니, 이번 학습을 통해 잘 알아두는 것이 좋을 것이다.
이 외에도, DTO 하는 객체를 만들어서, 데이터를 받아와 담을 때, 처리할 때 사용하는 방식도 학습하였다. DTO는 Data Transfer Object의 약자로서 비즈니스 로직을 갖지 않고, 속성과 setter와 getter만 있으며, 각 계층간 데이터 전달을 담당하는 역할을 위해 사용되고 있다. DTO는 데이터베이스의 각 레코드에 매핑되어 비즈니스 로직을 처리할 때, 데이터를 보다 안전하고 규격에 맞게 전달하기 위해 사용된다고 보면 된다. 실제로 회사에서 소스코드를 변경하거나 리팩토링 하는 과정에서 데이터의 형태를 깨뜨려서 오류가 발생하는 경우가 있는데, DTO를 기준으로 명확하게 데이터의 포맷을 잡아놓으면 이러한 이슈를 방지할 수 있을 것이다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.