전체 글
-
CascadeType.ALL 과 REMOVE의 차이스파르타코딩클럽/스프링 팀 프로젝트 - Trello 2023. 12. 27. 15:15
보드를 구현하면서 보드를 삭제할 때 아래에 종속된 카테고리와 댓글을 같이 정리해야하므로 엔티티 애너테이션에 cascade를 붙여두었다. 하지만 CascadeType을 정할때 REMOVE를 사용할지 ALL을 사용할지 판단이 쉽지 않았다. 먼저 Cascade 란? JPA에서 엔티티의 상태변화를 관련 엔티티에 전파하는 옵션이다. SQL에서는 외래키 제약조건으로 쓰이는데, 참조 무결성을 유지하기 위해 부모 테이블에 변경사항이 생길때 자식 테이블에 자동으로 동일한 작업을 수행하도록 할 때 사용된다. 스프링에서 CascadeType 종류엔 뭐가 있나 CascadeType.ALL // 모든 cascade 옵션을 적용 CascadeType.PERSIST // 부모엔티티 저장 시 연관된 자식 엔티티도 함께 저장 Casc..
-
심화프로젝트 프로젝트협업툴 만들기 1일스파르타코딩클럽/스프링 팀 프로젝트 - Trello 2023. 12. 26. 21:46
Board를 맡게 되었다. 보드 생성 -> 간단한 Create 보드 수정 보드 이름 배경 색상 -> Trello에서는 배경색 뿐만 아니라 이미지도 지정할 수 있어서 S3 업로드를 통한 이미지업로드를 추가할 예정 설명 -> Trello에서는 설명부분이 없었기에 삭제 보드 삭제 생성한 사용자만 삭제를 할 수 있습니다. -> 간단한 Delete 보드 초대 특정 사용자들을 해당 보드에 초대시켜 협업을 할 수 있어야 합니다. -> 회원가입 시 받아오는 email을 입력하여 Repository에 있는 사용자인 경우 초대 성공 인데 초대방식을 메일전송으로 할지 단순입력으로 할지 고민했으나, 다른 기술을 적용해보는것이 우선순위가 높다고 판단해서 보류. 26일 당일에 필수구현을 모두 끝내두고, 27일에는 S3 이미지 업..
-
다했으면 리팩토링 이어서 해야지?스파르타코딩클럽/스프링 개인 프로젝트 - 복습 2023. 12. 22. 17:32
이번 금토일 3일 연휴동안 복습프로젝트를 끝내고 이어서 할 리팩토링 프로젝트이다. 개인적으로 필요하다 생각하지 않는 것들은 제외하였고, 복습 프로젝트를 진행하면서 구현한 것들 또한 미리 제외하여두었다. 1. Controller, Service 패키지 내 클래스 개선 Controller Advice 로 예외 공통화 처리하기 완료 2. Service 인터페이스와 구현체 분리하여 추상화 하기 Service 클래스를 인터페스와 구현체로 분리하고 인터페이스 메서드에 주석을 친절하게 달아주세요! 할 생각 없음. (대신 관련 자료를 찾아볼 것) 3. CustomException 정의 RuntimeException 을 상속 받아서 CustomException 을 상황에 맞게 만들어보세요. ErrorCode와 ApiEx..
-
23/12/21 레디스를 왜 도커에서 써야해?오늘/Today I.. 2023. 12. 21. 16:28
레디스를 왜 도커에서 써야해?? 레디스 사용방식은 어떤것을 선택해야해? 1. Embedded Redis provided by Spring 2. Install Redis by yourself. 3. Redis in Docker 그중에서 뭐가 좋아? The Best. Redis in Docker 도커는 환경변수로 세팅하기 때문에 레디스 추가가 필요하면 포트만 변경하고 도커를 또 띄우면 된다. The Worst. Embedded Redis provided by Spring 스프링 기본 제공 레디스는 정말 추천하지 않는 방식이다. 레디스를 사용해볼 거라면 레디스에 있는 모든 기능을 사용하는게 좋은데 기본으로 제공하는 레디스는 너무 컴팩트하고 기능이 부족하다. 그냥 H2를 쓰는것과 다를게 없는.. Second W..
-
12/20스파르타코딩클럽/스프링 개인 프로젝트 - 복습 2023. 12. 20. 21:50
2일차 닉네임, 비밀번호를 request에서 전달받기 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤, 하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요."라는 에러 메세지를 response에 포함하기 -> JPA 사용하기 로그인 성공 시, 로그인에 성공한 유저의 정보를 JWT를 활용하여 클라이언트에게 Cookie로 전달하기 -> JWT 활용해서 AuthController에서 적용 3일차 제목, 작성자명(nickname), 작성 날짜를 조회하기 작성 날짜 기준으로 내림차순 정렬하기 -> JPA , auditing 설정하고 desc (챌린지 과제) 전체 조회가 아닌 페이징 조회를 할 수 있도록 해보기 -> pageable 설정 (챌린지 과제) 페이징 +..