본문 바로가기

분류 전체보기

(104)
2023-12-28 오늘은 팀프로젝트 3일차이다. 오늘 구현한 기능은 다음과 같다. 1. 어제 고민했던 내용 해결 2. Card Service 및 CardRepository 기능 구현 완료 1. 어제 고민했던 내용이였던 복합기 저장에 대한 고민을 해결했다. 생각을 해보니 CardEntity에 아래와 같이 설정을 했었는데 이러면 Save하기전에 Card Entity에 Worker를 등록만 시켜주면 cascade설정을 통해 영속성 처리가 끝나기전 임시 ID가 Worker에도 등록된다 @OneToMany(mappedBy = "card",cascade = CascadeType.ALL , orphanRemoval = true) private List worker public void createWorker(User user){ Wo..
2023-12-27 오늘은 팀프로젝트 2일차이다. 오늘 진행한 작업은 다음과 같다. 1. Card기능에 대한 전반적인 구조 잡기 및 복합기 생성 1. ERD를 기반으로 오늘 Trello Card Entity와 Controller, Service에 대한 전반적인 코드를 작성했으며 아직 완성은 하지 못했다 Card가 생각보다 고려해야할 부분이 너무 많았다. 주요 고민은 Update과정에서 작업자를 추가해야하는가? 작업자 초대 기능을 구성할 계획이였기 때문에 RestAPI 측면에서 맞는지 모르겠다. 내일 직접 찾아보면서 고민에 대한 해결을 해볼 예정이다. 추가적으로 복합키인 worker와 workerId를 추가하여 복합키 기능을 구현했다. 복합키를 통해 cardId와 userId를 가지고 있는 고유한 workerId 생성했다. ..
2023-12-26 팀프로젝트 1일 차이다. 이번 팀프로젝트는 최종 프로젝트를 하기 전 개인과제에서 진행했던 기능 등을 모두 사용해 trello의 백엔드 기술을 구현해보고자 한다. 오늘 진행한 내용은 다음과 같다. 1. API명세, ERD, wireframe 제작 API명세는 너무 기능이 많아서 따로 올리진 못한다. 따라서 제작한 ERD, wireframe 정도만 설명하려고 한다. ERD는 다음과 같다. trello자체가 보드를 생성하면 칼럼을 생성가능하고 칼럼 안에서 여러 개의 카드를 생성할 수 있다. 따라서 연관관계도 보면 보드를 따라서 쭉 아래로 연관관계가 설정 돼있는 것을 확인할 수 있고 또한 다른 유저를 초대가 가능하기 때문에 초대기능을 위해 board_user의 Entity를 복합기로 생성하여 정보를 가져오는 방..
2023-12-25 크리스마스날 진행한 작업은 다음과 같다. Redis연결 및 이메일 인증 기능 구현 크리스마스날 개인과제 마무리를 하기 위해 챌린지 과제인 이메일 인증 구현을 마무리했다. 마무리한 코드를 바탕으로 동작하는 과정을 적어보려고 한다. 순서가 동작하는 과정을 중심으로 돼있기 때문에 혼동이 올 수 있다. 1. 회원가입을 위해 ToDoUserController의 회원가입 정보에 대한 SignupRequestDto를 입력해 주면 된다. username, password, email정보를 입력했다. 입력한 정보에 따라 URL에 Request를 전송하면 회원 가입 절차를 진행하며 prepareSignup 메서드를 통해 UserRepository에 임시저장을 마치면 EmailMessage를 생성하여 필요한 정보를 입력한 ..
2023-12-22 오늘은 개인프로젝트 4일 차이다 어제 적어야 했지만 피로가 극에 달해 오늘 작성한다. 금요일 진행한 내용은 다음과 같다. 1. 이메일 인증 기능을 위한 초기 설정 세팅 및 기능 구현진행 중 1. 이메일 인증을 구현하기 위해 여러 블로그를 참고하며 기능을 확인했고, 완벽하게 기능을 구현한 단계는 아니라서 다듬은 후 정상적으로 테스트를 하고 정리를 해볼 예정이다. 일단 이메일 인증을 SMTP 계정을 설정해야 한다. 구글을 로그인하고 구글 계정관리 클릭 후 검색창에 앱 비밀번호를 입력한다. 만약 없다면 구글 보안에서 2단계 인증을 진행하면 된다. 이후 앱 비밀번호를 생성하고 받은 코드를 이메일인증을 구현할 application.ymal 파일에 아래의 코드를 추가하면 된다. mail: host: smtp.gma..
2023-12-21 오늘 플러스 주차 개인과제 3일 차이다. 오늘 한 내용은 다음과 같다. 1. 스케쥴러 기능 구현 및 Comment 페이징 기능 구현 1. 오늘은 스케쥴러를 구현해봤다. 스케쥴러는 특정 모듈을 주기적으로 실행해야 될 때 사용하는데 이번 과제에서는 완료처리한 카드가 작성한 지 90일이 지나면 자동으로 삭제처리하는 기능을 위해 구현했다. 구현 방식은 다음과 같다. @Scheduled를 통해 사용할 수 있으며 Spring Bean에 등록이 돼있어야 사용이 가능하다. 따라서 @Component를 사용하여 스케쥴러를 사용할 클래스를 빈으로 등록시킨 후 원하는 코드를 작성하면 된다. package com.sparta.project_todo.scheduler; import java.time.LocalDateTime; ..
2023-12-20 오늘은 개인 프로젝트 2일 차이다. 오늘 구현한 내용은 다음과 같다. 1. 페이징 조회 구현 및 테스트 코드 작성 1. 페이징 조회를 구현하기 위해서 여러 사이트를 찾아보면서 Pagerble로 간편하게 구현이 가능하다고 해서 여러 구글링과 튜터님의 조언을 통해 구현 완료했다. Controller는 다음과 같다. @GetMapping("/todo") public ResponseEntity getPagingCard(Pageable pageable , @AuthenticationPrincipal UserDetailsImpl userDetails){ ToDoPageCardListResponseDto toDoPageCardListResponseDto = toDoService.getPageCard(pageable,..
2023-12-19 오늘은 플러스 주차 개인 프로젝트 과제를 시작한 날이다. 기존에 했던 ToDo프로젝트를 그동안 쌓은 역량으로 업그레이드를 진행하는 과정을 진행하려고 한다. 첫날 진행한 과정은 다음과 같다. 1. 글로벌 Exception 및 ErrorResponse Success Response 리펙토링 각 domain별 Controller 코드 수정 1. 프로젝트 진행 첫날 기존에 있던 ToDo코드를 리펙토링을 진행했다. 처음으로 공통적인 코드를 수정하려고 계획을 정하고 바로 수정을 진행했고, ToDo코드에서 처음 적용했었던 GlobalException 코드를 그동안 배운 경험으로 보다 더 높은 규약이 있는 Response코드로 변경했다. 일단 기본적인 구조부터 수정을 진행했다. 기존의 코드는 레이어 별로 도메인을 나눠..