프로젝트 진행 (1)

Nam_JU·2022년 8월 5일

MoMoProject

목록 보기
4/5

벌써 모모 프로젝트를 시작한지 4개월이 되었다.
그사이에 많은 변화들이 있었기에 어떤 것들이 바뀌었는지 기술하고자 한다


프로젝트 진행 배경

2022-04-18 ~ 2022-04-27

멋사에서 진행한 협업 프로젝트 모모는 기획자4, 백엔드2, 프론트2명인 구성원으로 시작했다. 약 2주동안 구현을 하였고 결과적으로 1등을 할 수 있었다.

개인적인 견해

기획자님께서 활발하게 피드백을 주셨기에 팀원 모두가 그에 부응하고자 밤낮으로 연락을 하면서 오류부분을 해결했다. 결과적으로 가장 완성도가 높아 1등을 할 수 있었다고 생각한다. 하지만 서버팀끼리만 코드를 비교했을때 우리팀의 코드 난이도가 상당히 낮았다는 것을 알 수 있었다.

스프링부트를 이제 막 시작한 단계이기에 예외처리, 구현 로직, 도메인의 역할, ERD 등을 충분히 설계하고 제작하지 못했던 점이 아쉽다고 생각한다.

개발일지

2022-04-18 개발상황

2022-04-19 개발상황

  • AWS 서버 구축 Nginx 설치
  • Topic CRUD API 생성
  • 프론트님과 API 구동 테스트

2022-04-20 개발상황

  • CORS 에러 해결 상세내용
  • Topic Entity CreateAt 추가 (프론트님 요구사항)
  • Topic CRUD 서버 업데이트

2022-04-21 개발상황

  • User CRUD API 생성
  • Post CRUD API 생성
  • Swagger 적용
  • POST CRUD 수정 + DB변경 (프론트님 요구사항)

2022-04-22 개발상황

  • CORS 에러 해결 2 (시큐리티)
  • 로그인 API 테스트

2022-04-23 개발상황

2022-04-24 개발상황

  • swagger 명세서 업데이트
  • 데이터베이스 초기 데이터 삽입 (기획자님 요구사항) 상세내용
  • JWT 토큰 로그인 회원가입 구현

2022-04-25 진행상황

  • 회원가입, 로그인 오류 수정

2022-04-26 진행상황

  • 기획자님과 미팅 (최종 피드백)

2022-04-27 FinalDay

  • 시큐리티를 적용한 페이지와 메인 페이지를 병합
  • ReactApp과 서버 최종 테스트

이전 프로젝트의 문제점

  • 단기간에 제작을 해야했고 단순한 구조라 ERD설계를 하지않고 진행하였다
  • ORM을 사용하면서 양방향 매핑을 사용했다는 점
  • Entity부분에 Setter도 넣음으로서 데이터베이스의 값을 변화시킬수있는 위험성이 있었다
 @Override
    public PostDto create(Long topicId, PostDto dto) {

        if (!this.topicRepository.existsById(topicId))
            throw new ResponseStatusException(HttpStatus.NOT_FOUND);

        if (!this.userRepository.existsById(dto.getUserId()))
            throw new ResponseStatusException(HttpStatus.NOT_FOUND);

        TopicEntity topicEntity = this.topicRepository.findById(topicId).get();
        UserEntity userEntity = this.userRepository.findById(dto.getUserId()).get();

        PostEntity postEntity = new PostEntity();
        postEntity.setContent(dto.getContent());

        postEntity.setWriter(userEntity);
        postEntity.setTopicEntity(topicEntity);
        postEntity = this.postRepository.save(postEntity);

        return new PostDto(
                postEntity.getPid(),
                postEntity.getContent(),
                postEntity.getWriter().getUid(),
                postEntity.getTopicEntity().getTid(),
                postEntity.getTopicEntity().getTitle(),
                postEntity.getCreateAt()
        );
    }
  • 코드를 보면 set으로 값을 변경시켜 주기위해 entity 속성에 setter를 넣을수 밖에 없었다. 이부분의 개선이 필요

협업프로젝트 그 이후

개발자 팀원 모두가 학생이거나 취업준비생이었기 때문에 좋은 경험을 했다고 생각하며 각자의 할일을 하고 있었다. 그러던 5월, 기획자님께서 베타서비스를 제의해 주셨고 감사하게도 참여하게 되었다.

팀원은 백엔드 3, 프론트 1명으로 인원이 변동되었다.

6월

  • 기존의 유저 기능뿐만이 아닌 관리자 기능까지 확장된 부분을 기획자님께 전달받았다
  • ERD와 기능 명세가 필요하여 백엔드 개발자끼리 이벤트 스토밍을 진행했다
  • ERD 설계 완료

    카카오 클라우드 스쿨을 다니면서 내 부족한 부분을 직면할 수 있었던 달이기도 하다. 너무도 잘하는 사람들 사이에서 자바에 대해 하나도 모른 상태였다는것을 알게되었다. 스프링 부트도 코드를 따라칠줄만 아는 상태였던 것!
    교육을 받으면서 부족한 부분을 채우고 프로젝트에 제대로 적용할 수 있는 실력을 얻는게 목표가 되었다.

7월

  • 7월 중순부터 파트를 분담하여 본격적인 구현을 시작하려고 했으나 개발자 전원 바쁜 일정으로 시간이 늘어졌다
  • 매주 온라인이었던 회의를 격주는 오프라인으로 변경
  • 8월 24일 초기버전 완성을 계획
    9월 7일 최종 테스트 예정

8월

  • 현재 (8/7) 멋쟁이사자 개발자분과 미팅을 하여 수정해야할 부분을 노티 받음

  • 열심히 구현중인 기능들...!
    구현도 구현이지만 기존 플젝보다 더 나은 방향은 무엇일까, 더 좋은 설계가 없나 살피기만하다 시간이 많이 지난것 같아 반성을 하게되었다. 1순위는 구현이라는걸 명심하기


만약 개발자끼리 혹은 또래끼리 기획하고 런칭을 하고자 하였다면 이만큼의 시너지가 나오기 힘들었을 것이라고 생각한다. 서비스의 이념, 구현하고자 하는 방향과 스토리텔링, 시장분석 등 기획자님들께서 진심으로 아이디어를 사랑하고 커뮤니케이션을 해주신 덕분에 좋은 자극을 받는것 같다.

profile
개발기록

0개의 댓글