2차 프로젝트 회고

여리·2023년 3월 10일
0

프로젝트개요

1-1. 기간 및 인원
기간 : 23년 2월27일 ~ 3월 10일
인원 : Frontend 3명 / Backend 2명
구성원의 역할 : 구성원 중 2명의 PM(Product Manager, Project Mnager)과 3명의 팀원으로 프로젝트 진행
1-2. 프로젝트에 사용된 기술스택
Front-End : React.js, sass, JavaScript, html, css
Back-End : Node.js, Express, JSON Web TOKEN, Bcrypt, My SQL, axios, multer
Common : RESTful API, Git, Github, Trello, Slack, Notion, Postman

프로젝트 컨텐츠 소개

  • 컨텐츠 내용 : Class 101을 모티브로 현재 지식창업과 지식에 대한 재산권이 중요해지고 시장에서 많은 공급과 필요로 함에 따라 교육에 대한 시장의 확장으로 재미있는 경험이 될 수 있을 것 같다고 생각했다. 지식산업에 대해 아주 살짝 경험해볼 수 있는 기회가 될 수 있었다.

[ PET관점에서의 컨텐츠 ]

  • 이 제품이 전달하고자 하는 가치와 그 의미는 무엇인가?
    • 컨텐츠 크리에이터에겐 지적 재산을 공유 할 수 있는 기회를 제공해주고
    • 강의 수강자에게는 원하는 강의를 선택하여 수강할 수 있게끔 해준다. (시간, 공간적 제약 없이)
  • 얼마나 많은 사람이 자주 사용하는가?
    • 이코노미적 관점 : 시간과 장소에 구애 받지 않는 교육 플랫폼을 제공한다.
  • 서비스적 문제가 발생했을 때 어떤 일이 생기는가? (e.g. Server Down, 데이터 소실)
    • 구독서비스를 하고 있는 소비자에게 불편함을 초래해 구독자를 잃을 수 있다.

    • 강의 제공자 입장에서는 수익을 block시킬 수 있다.

      → 백엔드는 이런 데이터 유실 가능성을 최소화하고 자율성을 극대화할 수 있는 방안을 찾으며 데이터베이스 구조를 설계하고자 함

  • 우리의 웹 서비스 기획은 매출 | 수익 관점에서 어떤 영향을 어떻게 미치는가?
    • 구독서비스를 계속적으로 유도한다. (구독 광고 웹사이트가 따로 존재)
    • 구독 버튼을 fixed로 메인 화면에 계속 노출시켜 구독을 유도한다.
    • 카테고리별 노출을 극대화하여 소비자가 원하는 컨텐츠를 바로 찾아볼 수 있도록 한다. (이렇게 많은 카테고리들 중 하나쯤엔 너의 취향이 있겠지! 전략)
      • 카테고리 드롭다운 최상단에 위치
      • 카테고리별 캐러셀들을 메인 레이아웃으로 선정

구현기능

이번 프로젝트를 통해서 구현하고자 하는 기능은 아래와 같다.
1. 메인페이지
2. 상세페이지
3. 회원가입/로그인/소셜로그인
4. host(강의등록) 페이지
5. 강의 수강 페이지

여기서 나는 메인페이지,상세페이지,host(강의등록) 페이지 이다.

메인페이지

메인페이지는 아래 4가지에 대해 고려해서 만들고자 했다.
1. 강의의 다양성을 강조하기 위해 카테고리별 강의들을 메인 화면에 나타낸다.
2. 다양한 관심사를 가진 유저들을 최대한 많이 유입하기 위함이다.
3. 최상단에 위치한 메인배너는 사이트가 가장 강조하고 싶은 강의 및 정보를 노출
4. 유저가 사이트 접속 시 제일 먼저 보게 되는 위치에 있기 때문에 시인성이 좋아아야 한다.

(나는 백엔드니까.. 백엔드의 내용부터 ^^;;)
[BackEnd]

  • 카테고리별 조회 API 와 전체 조회 API를 하나로 묶어서 기능을 구현
    • 두 가지 기능을 하나로 묶어서 리소스를 줄이고 효율성을 극대화 (필요 시에만 카테고리별 API 를 get 해올 수 있음)

[FrontEnd]

  • 카테고리별 캐러셀 기능 구현해서 최대한 다양한 카테고리별 강의들을 노출
  • Nav바에 전체 카테고리 드롭다운을 생성해서 전체 카테고리 목록을 한번에 확인할 수 있도록 구현

상세페이지

상세페이지는 아래 두가지(세부내용 포함)를 고려해서 만들어보았다.
1.관심(좋아요) 수를 통해 얼마나 많은 고객들이 해당 강의에 관심을 보이고 있는지를 나타내고 있고 유저의 ‘관심목록’에 추가한다.
- 해당 수치로 강의에 대한 관심도 및 인기도를 가늠해볼 수 있음.
- 하트를 누른 유저는 마이페이지에서 관심 있는 강의 목록에서 확인할 수 있음 + 관심 있는 강의 바탕 알람 전송 (노출증가)
2. 공유하기, 선물하기 버튼
- 관심 있을 거 같은 지인에게 공유하기 및 선물하기 버튼을 통해 해당 강의를 널리 퍼뜨릴 수 있음 → 바이럴 효과, 유저 유입 증가 목표

[BackEnd]

  • 하나의 페이지에서 해당 강의에 대한 모든 정보를 유저에게 전달할 수 있게 유저의 니즈를 충족해줄 수 있는 데이터들을 하나의 API로 구현

[FrontEnd]

  • 가장 먼저 나타나는 썸네일은 유저가 강조하고 싶은 이미지이기 때문에 제일 큰 사이즈로 구성
  • ‘구독하기’ 버튼을 포함한 Aside 바는 화면을 스크롤해도 계속해서 쫓아다닌다.

호스팅페이지

[[[용량상 호스팅 페이지는 링크로 남겨놓는다 ㅠㅜ..]]]

호스팅 페이지는 크게 3가지를 고려해서 만들어보았다.
1. 미리보기 버튼을 통해 업로드 전 모습을 확인할 수 있게 함
- 실제 업로드 전 실수를 방지하기 위함 (검토 기능)
2. 업로드의 피로감을 줄이기 위해 최대한 단순하고 간결한 UI를 구성함
- 각각의 input 창마다 ‘입력 정보’와 ‘편집’ 버튼 존재
- 필수 입력 정보 존재
- 커버 이미지, 클래스 제목, 카테고리, 클래스 소개, 크리에이터 소개
3. 유저가 구독 및 결제를 결심하는데 있어서 최소한으로 필요한 필수 정보라고 분류
- 호스트가 모든 정보를 입력해야 할 피로도를 줄여줌

[BackEnd]

  • 각각의 입력값이 저장되게끔 각각의 API를 생성하여 데이터 저장의 자율성을 제공
    • 데이터를 따로 관리하기 때문에 데이터 분실 우려가 적어진다
    • 데이터가 분산되어 저장되기 때문에 여러가지 기능 구현의 선택폭이 넓어진다 (예: 고객 분석 등)

[FrontEnd]

  • 각각의 입력값이 저장되게끔 만들어서 유저에게 편리함을 제공
    • 많은 값들을 한번에 모두 입력해서 저장하는 방식은 입력하다가 중단할 경우 데이터가 날아갈 우려가 존재하기 때문에 각각 저장 기능을 부여

프로젝트를 통해서..(잘한점, 아쉬운점, 마무리)

잘한점

아쉬운 점에도 표현이 되어있지만 소통에 대해서 구성원들과의 소통부분에서는 이전에 개선해야겠다고 생각했던 점을 실천으로 옮길 수 있었다는거에 대해서 의의를 두고싶다. 이전에 느꼈고 개선해야겠다고 생각한 것들에 대해서는 행동으로 하지않으면 성장했다는 느낌이 들지 않을 수 있는데 실천함에 따라 성장할 수 있었던 하나의 과정이 되었다고 생각한다. 앞으로는 느낀점에 대해 깊이감있고 섬세하게 접근해서 문제해결을 풀어나갈 수 있는 유연성을 길러야 겠다고 생각했다.
이전에 내가 이것만큼은 꼭 해야겠다고 생각한 것이 분야가 다른 구성원에게 제공해야하는 정보에 대해서 불필요함을 줄 수 있는 상황을 개선해야겠다고 생각했었는데 그런부분에 있어서 시도해봤다는 것이다.(물론 부족함이 훨씬 더 많았었지만..) 불필요함은 늘 어떻게 발생할지 예측되지 않는 경우가 현재시점에서는 더 많다. 성장하면서 서로에게 피로감을 주지 않고 서로의 영역에서 명확하게 지켜주어야 할 것과 지켜주었으면 하는 것에 대해서 표현할 줄 아는 사람이 되어야 겠다는 생각을 했다.

아쉬운점

늘 소통에 대한 아쉬운점은 발생한다.
결국 해야하는 일이 혼자하는게 아닌 '같이'하는점이 제일 큰 부분인데 모든 소통이 이루어지면서 혼자만의 일도 있지만 큰 틀에서는 소통 이후에 각자의 혼자의 일을 하고 중간중간에 소통하는 부분이 제일 중요했다.

그리고 각 할당해야 하는 일에 대해서 게릴라 식으로 진행한 점이 앞으로 마감기한에 대해서 영향을 미쳤다는 것이다. 해야하는 일들에 대한 난이도에 집중하지 못한 부분도 있어서 마감이 가까워 질수록 일에 대한 매몰이 심해졌다.

그리고 협업에 있어서도 리드할 수 있는 부재가 다소 존재하는 부분이 있어서 그게 아쉬웠다.
지식의 깊이에 따라 딥한 영역이 됐을때의 구성원이 있는 경우에는 identity가 명확해지고 그 일에 대한 리더십과 팔로우십도 상승하고 명확해지는 것 같다.
그런 부분에서 나도 더 딥한 영역의 구성원이 되어야겠다는 생각이 많이 들었다.

기술적인 부분에 있어서는 많은 도전에 대해 소극적이지 않았을까하는 생각도 들었다.
이번 프로젝트에서 처음 도전해보는 기능(트랜잭션, formdata, testcode)을 경험해보았지만 그에 대한 깊이가 없어 퀄리티가 좋지 않았다는 점이 아쉬웠다.

또한 개선해야겠다고 생각한 점에 대해서 너무 매몰되어있는 생각을해서 정작 본인이 해야하는 일에 대해 집중하지 못하는 상황도 발생하다보니 내가 해야하는 일에 대해 깊게 고민하는 시간을 가져보고 고민한 내용으로 어떻게 활용해야할 것인지를 제대로 파악하지 못하고 그냥 해야하는 일에 대해서만 생각하다보니 내가 무얼해야하고 무얼하고있는지에 대한 방향성을 잠시 잃게 됐는데 그럴 때일수록 refresh로 매몰된 생각에서 빠져나오는 시간을 줄여야 겠다고 생각했다.

유난히 이번 프로젝트는 잘한점 보다는 아쉬운점이 많았다는 생각이 들었다.
아쉬웠던 점을 통해 내가 배워야할 것이 어떤것인지를 명확하게 인지할 줄 알고 이를 개선하는데에 집중하는 경험을 빌드업 시켜야겠다.
이런 생각은 내가 그래도 개발에 대해서 고민하고 생각하고 있다는 것 아닐까하는 긍정회로를 돌려본다.😅

마무리

모든게 output에 대비해서 시간이라는 정해진 물리적인 양이 존재한다.
정해진 시간에 대해 내가 할 수 있는것에 대한 명확한 가능성을 판단하지 못한것이 이번에 가장 크게 작용한 아쉬운 점이 됐다고 생각한다.
일에는 기한과 마감이 존재한다.
상항에 따라 나의 컨디션에 따라 주변환경에 따라 해야하는 일에 적응하는데에 시간적인 부분에서 나 자신을 좀 더 냉정한 관점과 프로젝트에 대해 빌드업을 미리 구상하고 딥다이브할 수 있는 관점을 좀 더 빌드업해야겠다는 생각을 했다.

profile
beckend developer

0개의 댓글