AppCenter
-
TodoList - RestControllerAdvice + ExceptionHandler를 이용한 예외처리AppCenter/TodoList 2023. 7. 11. 22:48
자바에서 모든 예외 클래스는 Throwable 클래스를 상속받고, Exception 클래스는 Checked Exception과 Unchecked Exception으로 나뉨 Checked Exception : 반드시 예외 처리가 필요한 예외로, 컴파일 단계에서 확인이 가능한 예외, (IOException, SQLException...) Unchecked Exception : 예외처리가 강제되지는 않는 예외로, 런타임 단계에서 확인이 가능한 예외 (RuntimeException, NullPointerException, IllegalArgumentException...) -> 간단하게 보자면 RuntimeException을 상속받는 Exception class = Unchecked Exception, 아니면 ..
-
3. [TodoList] - dto 설계AppCenter/TodoList 2023. 5. 17. 22:41
도메인, 서비스, 레포지토리를 설계해보았으니 이번엔 dto를 설계해보자. dto 를 써야하는 이유 api 통신시 반환 값으로 엔티티 그대로를 반환하면 되지 왜 dto를 사용할까?? 지금은 간단한 TodoList 프로젝트지만 만약 프로젝트가 매우 커져서 User 테이블에 10개 이상의 필드가 들어간다고 가정해보자. 사용자 이름과 게시한 글 수를 보여주는 화면을 출력하기 위해 데이터를 요청한 뒤 User 엔티티를 반환할 경우 전체 속성을 조회해 반환하기 때문에 요청한 화면에서는 필요없는 속성까지 넘겨주게 되는것이다. 이렇게되면 API 응답에서 필요 이상으로 많은 속성을 넘겨주기때문에 속도 또한 느려진다. 이것말고도 dto를 사용했을때 여러가지 장점에 대해 잘 정리된 포스트가 있어 아래 링크를 걸어두겠다. h..
-
2. [TodoList] - Service & Repository 설계AppCenter/TodoList 2023. 5. 16. 11:52
지난 포스팅에서 도메인을 설계했으니 이번엔 서비스와 레포지토리를 설계해 보겠다. Task 와 User 도메인을 설계했으니 그에 따른 TaskService, TaskRepository, UserService, UserRepository를 설계하면 된다. Repository vs Service 역할의 차이 repository 패키지는 DB에 접근하는 모든 코드가 모여있다고 생각하면 된다. Service 패키지는 DB에 접근하는 코드는 repository에 위임하고, 비즈니스 로직과 관련된 모든 코드가 모여있는 것이다. 이렇게 구분해두면 비즈니스 로직 문제가 생겼을때는 service 패키지만 확인하면 되고 DB 접근 문제가 생겼을때는 repository만 확인하면 되는 장점이 있다. TaskRepository..
-
1. [TodoList] - 도메인 설계AppCenter/TodoList 2023. 5. 15. 23:51
앱센터 프로젝트로 만들게 된 TodoList API 간단한 프로젝트지만 여러가지 기술을 사용해 볼 수 있는 좋은 기회니 하나하나 정리해보자. 프로젝트 내용 User, Todo CRUD API 구축 사용 기술 1. Spring JPA 2. Spring Security + JWT 3. MySQL 시작하기에 앞서 User 와 Todo ERD를 설계해보았다. 처음 설계해보는 ERD 라 어떻게 설계할지 고민이 많았는데 마침 ERD 클라우드 라는 좋은 설계 사이트가 있어서 쉽게 만들 수 있었다. https://www.erdcloud.com/ User 클래스 HTML 삽입 미리보기할 수 없는 소스 @NoArgsConstructor 의 엑세스 레벨을 PROTECTED로 설정했다. 이렇게 할 경우 무분별한 객체 생성을 ..