코딩과 결혼합니다

230803 - 파이널 기획 및 S.A (기술 스택 선정과 이유), 오늘 한 일 본문

코딩과 매일매일♥/Seoulvival

230803 - 파이널 기획 및 S.A (기술 스택 선정과 이유), 오늘 한 일

코딩러버 2023. 8. 4. 01:43
728x90

MVP 스펙

Tech Stack Java, Spring, Spring Boot, JPA, Security, JWT
DB MySQL
DevOps AWS EC2, AWS S3, AWS RDS, Git Actions

아직은 미흡해보이지만 스택을 조금씩 더 추가하면서 관계도를 잘 그려봐야겠다.

 

오늘 한 것

  • S3 버킷 만들어서 환경설정
  • My SQL DB 연결
  • Security, JWT 사용하여 사용자 인증 및 권환 관리
  • User 회원가입, 로그인 로직 구현 - 진행중
  • Post  API에 맞게 게시글 등록, 조회, 수정, 삭제 로직 구현 - 잘 돌아가는지 테스트 예정

오늘의 이슈

그동안 대부분 response를 프론트에 보낼때 하나에 다 넣어서 보냈는데, 이번에는 3개의 객체로 따로 만들어서 보내게 되었다. 이렇게 보내본 적이 없어서 당황했는데 정말 아무것도 모르던(지금도 마찬가지이지만) 나를 처음부터 끌고 올라가 주신 ㅋㅋㅋ 감사한 분의 도움으로 저 API의 형식대로 Dto 들을 만들어보게 되었다. 다음에는 당황하지 않고더 잘 만들 수 있겠지!

 

Dto가 참 날이갈수록 늘어나는 구나..

 

이와 동시에 Controller와 Service 부분의 로직도 조금씩 바뀌게 되었는데 참 아직도 많이 부족함을 느낀다. 넘 헷갈려 ㅠ

//controller
    
    //게시물 전체 조회(커뮤니티)
    @GetMapping
    public Page<PostResponseDto> getPosts(@PageableDefault(size = 10)Pageable pageable,
                                          @AuthenticationPrincipal UserDetailsImpl userDetails){
        return postService.getPosts(userDetails.getUser(), pageable);
    }

    //게시글 상세 조회
    @GetMapping("/{postId}")
    public PostResponseDto getPostById(@PathVariable Long postId,
                                       @AuthenticationPrincipal UserDetailsImpl userDetails){

        return postService.getPostById(userDetails.getUser(), postId);
    }
//service

    //게시물 전체 조회(커뮤니티)
    public Page<PostResponseDto> getPosts(User user, Pageable pageable) {
        return postRepository.findAllByOrderByModifiedAtDesc(pageable).map((post) -> new PostResponseDto(post,"게시글 조회 성공", user));
    }

    //게시물 상세 조회
    public PostResponseDto getPostById(User user, Long postId) {
        Post post = findPost(postId);
        return new PostResponseDto(post, "게시글 조회 성공", user);
    }

생성자도 막 이것저것 만들고 어질어질 다시 한 번 로직을 찬찬히 따라가며 익혀보았다.