프로젝트 구조 설명 - 프로젝트 구조는 이전과 같습니다. 파일 설명 pom.xml 태그 안에 다음과 같이 modelmapper 의존성을 추가해줍니다. org.modelmapper modelmapper 2.3.5 BoardService.java 이전의 서비스 로직에서의 코드는 아래와 같이 직접 setter를 통해 하나하나 매핑을 했었습니다. @Transactional public Object getBoard(Long seq){ return boardRepository.findById(seq).map(boardEntity -> { Optional results = boardRepository.findById(seq); return results.isPresent() ? results.map(boardEnti..
프로젝트 구조 설명 configuration 패키지 생성. - response 구조를 커스텀할 클래스들 생성. 1. RestResponse : 200 코드를 반환할 때 사용 2. ErrorResponse : 에러 발생시 사용 configuration.aspect 패키지 - RestControllerAspect 클래스 : RestController 역할의 클래스를 감싸는 역할. - ServiceExceptionAspect : 서비스 로직에서 발생하는 에러를 모두 잡는 역할. configuration.controlleradvice - RestControllerExceptionAdvice : RestController에서 발생한 에러를 최대한 모두 잡는 역 할. 파일 설명 pom.xml 4.0.0 org.sp..
프로젝트 구조 설명 - controller, model, service, repository로 패키지 구조화 - model 패키지의 경우 DTO, VO 같은 데이터 클래스가 정의되어있는 패키지 인데, 이것을 * 컨트롤러에서 파라미터로 받는 Param, * DB에서 select문의 결과로 반환될 Entity, * ResponseEntity Json형태로 반환될 Result 객체로 구분 - service 클래스는 인터페이스를 클래스가 구현하는 형태가 아닌 직접 클래스가 역할을 하는 쪽으로 함. -> 인터페이스를 이용하여 다형성을 구현하는 형태가 아니라 일종의 루틴처럼 사용되는 경향이 있어보여서 과감히 탈피. - 이전 챕터에서 진행했던 home 클래스는 삭제해도 됨. - API 테스트를 진행할 BoardCon..
안녕하세요. 스프링 부트를 이용한 REST API 게시판 서버 만들기 예제를 진행해보려고 합니다. 초급수준으로 진행하며 JUnit을 이용하여 테스트 코드를 작성할 것이고, Jacoco 코드 커버리지도이용해보고자 합니다. 코드 커버리지란 테스트 코드를 수행할 때 테스트하지 않은 부분을 퍼센트(%)로 측정할 수 있게 하는 부분입니다. pom.xml에 설정을 통해서 서버를 실행할 때 특정 퍼센트를 넘지 않으면 빌드할 수 없도록 설계도 가능합니다. 모든 소스는 이곳에서 확인하실 수 있습니다. 간단한 예제로 먼저 소개해보겠습니다. 프로젝트 스펙 - 스프링 부트 2.2.2 버전 - 자바 1.8 - 롬복 - JPA - H2 - spring-restdoc - JUnit(4.12) - jacoco(0.8.5) - spr..
필자는 인텔리제이라는 IDE를 사용합니다. 대략 2-3개월정도 되었는데요. 이클립스로 개발할 때는 주로 스프링 레거시 프로젝트로 프로그래밍을 하곤 하였는데, 인텔리제이로 갈아타면서 스프링부트를 접하게 되었습니다. 프로젝트를 생성하고 나니 resources 폴더 밑에 application.properties 파일이 자동적으로 생성이 되어 있더라구요. 이 파일은 스프링부트에서 Configuration을 잡을 때 대체할 문자/숫자 데이터를 적어 두고 추후에 활용하는 파일입니다. 예를 들어, 디비정보, 앱 버전정보, 에러설정정보, 포트정보 등입니다. 뭐 이러한 것들은 실제 Config 자바 파일에서도 설정이 가능한 부분이 존재합니다. 일부는 스프링부트에서 글로벌 변수처럼 등록해서 활용하는 것들도 있구요(ex/ ..