TO-DO List (solo project)

SJW·2023년 4월 9일
post-thumbnail

https://github.com/sksjw95/todolist

다들 많이 시도하는 to-do-list 만들어 보고자 한다.
물론 아직 모르는 부분이 많아서 다른 분들이 한 자료를 보고 따라하며 부족한 부분을 정리하고 구글링+코드스테이츠 학습자료 또한 참고하고자 한다.

요구사항은 (https://velog.io/@heewonim/IntelliJ-To-do-List-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%EC%A0%95%EB%A6%AC%EC%99%80-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%84%A4%EC%A0%95) 여기있는 것을 참고한다.

  • project에서 build.gradle의 역할?
    gradle은 그루비(Groovy)를 기반으로 한 빌드 도구이다.
    의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다. 그루비(Groovy)는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.
    즉, build.gradle은 의존성이나 플러그인 설정 등과 같은 빌드에 필요한 설정을 하게 된다.
  1. https://start.spring.io/ 를 통해

    처럼 설정을 해준다. (Dependencies 주의!!)
    generate - 압축풀기 - 인텔리제이에서 프로젝트 오픈

2.build.gradle 클릭

다음처럼 설정변경

3.일단 먼저 Entity의 역할을 이해하고 넘어가자(https://wildeveloperetrain.tistory.com/101)
{@Data = @Getter,@Setter, @ToString, @EqualsAndHashCode와 @RequiredArgsConstructor, @Value -@Data는 가급적 지양할것!}
DB 테이블과 매핑되는 클래스를 만든다.

4.요청을 받아오기 위해 필요한 클래스를 만든다.

5.응답하기 위해 필요한 클래스를 만든다.
응답할 때 Entity의 모든 값을 정의해주어야 하기 떄문에 Entity의 모든 변수들을 선언한다. 요청을 편리하게 처리하기 위해 TodoEntity를 파라미터로 받는 생성자를 추가한다.

  1. 다음의 패키지와 인터페이스를 만든다.
  2. 데이터베이스와 데이터를 주고 받기 위한 인터페이스를 정의한다.

8.TodoService 클래스에 다음의 6가지를 정의한다.

1.todo 리스트 목록에 아이템을 추가
2.todo 리스트 전체 목록을 조회
3.todo 리스트 목록 중 특정 아이템을 조회
4.todo 리스트 목록 중 특정 아이템을 수정
5.todo 리스트 목록 중 특정 아이템을 삭제
6.todo 리스트 전체 목록을 삭제

public List searchAll() {return this.todoRepository.findAll();} --> 의미: 리스트화된(?) TodoEntity 객체 전부 검색 그리고 TodoRepository에서 객체를 전부가져오고 전부 반환!

9.컨트롤러(요청에 따라서 어떤 작업을 처리하고 응답을 내릴 지 구현하는 부분이다.) 구현한다.

1) 컨트롤러 뼈대를 먼저 구성한 뒤 구조가 작동하는 지를 우선 확인 후에,

2) 컨트롤러 메서드 내용을 구현하고, Postman과 Todo 페이지에서 기능이 잘 작동하는지 테스트를 해 볼 것이다.

  1. @RestController(컨트롤러 표시), @CrossOrigin(CORS 이슈 해결) 등 필요한 어노테이션을 추가한다.
    실질적인 메서드 내용은 API 구조가 정상적으로 작동하는 지 확인 후에 구현할 것이다.

  2. 실행

  3. postman을 이용하여 API 테스트를 한다.

  4. ObjectUtils.isEmpty(Object object) --> object가 빈객체 이거나 null이면 true 아니면 false
    API가 정상적으로 작동하는 것을 확인! 컨트롤러를 구현한다.

19.이제 다시 Postman에서 Body > raw > JSON 선택 후, todo 아이템 내용을 입력하고 테스트 요청을 보내면 다음과 같이 1번 id로 아이템이 추가된 것을 확인할 수 있다.



PATCH를 진행중 갑자기 이러한 에러가 발생...

405에러의 문제 원인은 메서드 매칭이 되지 않았기 때문에 발생

메서드를 유심히 살펴보니 내가 @PatchMapping("{id}")라고 써야하는걸
@PatchMapping({"id"}) 이런식으로 작성했었다...


드디어 정상적으로 출력이 된다....ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


DELETE도 정상 출력이 된다.


20.https://todobackend.com/에서 다시 확인해본다.
(우리가 만들 ToDo-App의 클라이언트(View)가 되어줄 사이트)
https://todobackend.com/client/index.html?http://localhost:8080/ 를 입력한다.

0개의 댓글