728x90
반응형

TODO 9

[Refactoring] RequestBody Null or Empty 예외 처리

포스트맨으로 테스트 중 아래와 같은 오류 발생 Request로 요청하던 데이터 중 null값으로 잘못보내서 500에러가 발생하였습니다. 2022-07-26 14:53:24.937 ERROR 32748 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: eq(null) is not allowed. U..

Project/Todo 2022.07.27

[AWS EC2 ubuntu] Todo 프로젝트 .jar 배포

.jar 배포 파일 만들기 ./gradlew clean build 을 입력하면 build파일을 지운 후 새롭게 build파일을 구성합니다. 아래와 같이 성공적으로 build가 완료되어 build/libs/server_0.0.1.jar 생성되는 것을 확인 할 수 있습니다. > ./gradlew clean build . . . BUILD SUCCESSFUL in 13s 11 actionable tasks: 11 executed > nohup java -jar *.jar & nohup은 터미널을 꺼도 애플리케이션이 유지되도록 하는 명령어입니다. &은 애플리케이션이 백그라운드에서 실행될 수 있게 하는 명령어입니다. # 단순 로그 출력 > cat nohup.out # 로그 끝 부분을 계속해서 볼 수 있다. (모니..

Project/Todo 2022.07.21

[Spring Boot] Todo 서비스 구현 (3)

투두를 완료했을 때 다르게 표시하기 위해서 투두의 상태를 추가하였습니다. [TodoStatus.java] package hooyn.todo.domain; public enum TodoStatus { NOT_COMPLETE, ING, COMPLETE } [Todo.java] //필드 추가 //데이터베이스에 저장될 때 String으로 저장되게 하기 위해서 EnumType.String으로 설정하였습니다. @Enumerated(EnumType.STRING) private TodoStatus status; //생성 메서드에서 status NOT_COMPLETE 상태로 설정하였습니다. @Builder private Todo(String title, String content, Deadline deadline){ t..

Project/Todo 2022.07.18

[Spring Boot] Todo 서비스 구현 (1)

프로젝트 구성 도메인을 생성할 때 클래스는 한가지 기능만을 하도록 하는 SRP를 지켰고, 관심사를 분리하여 DIP를 지키기 위해 생각을 하며 코딩했습니다. SRP, DIP에 대한 자세한 설명 [Spring] 객체 지향 설계의 다섯 가지 기본 원칙 - SOLID SOLID 다섯 가지 설계 원칙 단일 책임 원칙(SRP: Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다. 책임 영역이 확실해지고, 한 클래스의 변경이 다른 클래스의 영향을 미치지 않습 lakelight.tistory.com [Todo.java] package hooyn.todo.domain; import lombok.AccessLevel; import lombok.Getter; import lom..

Project/Todo 2022.07.17

[Refactoring] 관심사 분리를 통한 DIP 지키기

원래 코드 [기존 Member Service 코드 1] [Spring Boot] Member 서비스 구현 (1) domain/Member.java package hooyn.todo.domain; import lombok.*; import org.hibernate.annotations.GenericGenerator; import org.springframework.security.crypto.password.PasswordEncoder; import javax.pe.. lakelight.tistory.com [기존 Member Service 코드 2] 저장 이렇게 오버라이딩 해서 구현을 할 수 있습니다. */ public UUID save(Member member){ em.persist(member); r..

Project/Todo 2022.07.15

[Spring Boot] Member 서비스 구현 (2)

비밀번호 제약 조건 확인 API [ MemberService.java ] /** * 비밀번호 제약조건 확인 */ public boolean checkPasswordConstraint(String userPW){ Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d).{8,20}$"); return pattern.matcher(userPW).matches(); } → 이전에 만들었던 비밀번호 제약조건 확인하는 로직(영문 숫자 포함 8~20자리)으로 API 설계 [CheckPasswordConstraintRequest.java] import lombok.Getter; @Getter public class CheckPasswordConstraintReques..

Project/Todo 2022.07.13

[기획 및 설계] 프로젝트 테이블 설계 및 예상 API

테이블 설계 ● Member Table Field Type Info member_id UUID Primary Key userID String userPW String Encrypt with Spring Security todo_id Long Foreign Key (1:N) memo_id Long Foreign Key (1:N) member_id 필드는 회원을 식별하기 위한 필드로 UUID를 무작위로 생성해서 자동으로 입력을 할 것입니다. userPW는 Spring Security를 사용하여 암호화 하고 로그인 시에도 복호화 하여 로그인을 진행할 것입니다. todo_id와 memo_id는 member->todo, member->memo, todo->member, memo->member 객체처럼 이동하기 위..

Project/Todo 2022.07.07
728x90
반응형