[웹 스터디] 2.3 서비스 개발 및 실습

박준수·2022년 11월 25일
0

[웹 스터디]

목록 보기
12/19

Create Todo 구현

퍼시스턴스 구현

  • TodoRepository를 사용한다. JpaRepository를 상속하므로 JpaRepository가 제공하는 메서드를 사용할 수 있다. 엔티티 저장을 위해서 save 메서드를 사용하고, 새 Todo 리스트를 반환하기 위해 findByUserId() 메서드를 사용한다.

서비스 구현

  • Validation(검증) : 넘어온 엔티티가 유효한지 검사하는 로직
  • Save() : 엔티티를 데이터베이스에 저장한다. 로그를 남긴다.
  • findByUserId() : 저장된 엔티티를 포함하는 새 리스트를 남긴다.

컨트롤러 구현

컨트롤러는 유저에게서 TodoDTO를 요청 바디로 넘겨받고, 이를 TodoEntity로 변환해 저장해야 하며 또 TodoService의 create()이 리턴하는 TodoEntity를 TodoDTO로 변환해 리턴해야 한다.

TodoController createTodo로직

Retrieve(Read) Todo 구현

퍼시스턴스 구현

Create Todo 구현과 마찬가지로 findByUserId()메서드를 사용한다.

서비스 구현

TodoService retrieve메소드 구현

컨트롤러 구현

TodoController의 retrieve TodoList 메서드 구현

1. 서비스 메서드의 retrieve 메서드를 사용해 Todo 리스트를 가져온다.
2. 자바 스트림을 이용해 리턴된 엔티티 리스트를 TodoDTO 리스트로 변환한다.
3. 변환된 TodoDTO 리스트를 이용해 ResponseDTO를 초기화한다.
4. ResponseDTO를 리턴한다.

Update Todo 구현

퍼시스턴스 구현

마찬가지로 TodoRepository에서 save(), findByUserId() 메서드를 사용한다.

서비스 구현

TodoServic의 update메소드 구현

1. 저장할 엔티티가 유효한지 확인한다
2. 넘겨받은 엔티티 id를 이용해 TodoEntity를 가져온다. 존재하지 않는 엔티티는 없데이트할 수 없기 때문이다.
3. 반환된 TodoEntity가 존재하면 값을 새 entity의 값으로 덮어 씌운다.
4. 데이터베이스에 새 값을 저장한다.
5. 유저의 모든 Todo 리스트를 리턴한다.

컨트롤로 구현

TodoController의 updateTodo 메서드 구현

Delete Todo 구현

퍼시스턴스 구현

마찬가지로 TodoRepository에서 delete(), findByUserId() 메서드를 사용한다.

서비스 구현

TodoServic의 delete메소드 구현

컨트롤로 구현


1. TodoEntity로 변환한다.
2. 임시 유저 아이디를 설정해준다.(지금은 인증과 인가 기능이 없으므로 한 유저만 로그인 없이 사용 가능한 애플리케이션인 셈이다.)
3. 서비스를 이용해 entity를 삭제한다.
4. 자바 스트림을 이용해 리터된 엔티티 리스트를 TodoDTO 리스트로 변환한다.
5. 변환된 TodoDTO리스트를 이용해 ResponseDTO를 초기화한다.
6. ResponseDTO를 리턴한다.
7. 혹시 예외가 나는 경우 DTO 대신 error에 메시지를 넣어 리턴한다.

profile
방구석개발자

0개의 댓글