2021-04-16-TIL

프로젝트 데모 활동이 있는 날입니다. 데모는 가볍게 어떤 것을 의도해서 어떤 것을 만들었는지 공유해주세요. 덧붙여서 팀활동을 하면서 기술적인 도전, 힘들었지만 극복했던 에피소드, 가장 잘한 일이 무엇인지 팀 활동에서 자랑거리 1-2개를 소개해주세요.

발표대본

안녕하세요? temm08의 발표를 맡게된 august입니다. 우선 간단한 설명 후 데모를 하도록 하겠습니다. API 설계와

시나리오

  • 각 card의 action(add, remove, move, update)에 대해서 수행한 후, 히스토리 목록을 보여준다.
  • 웹 페이지 상에서 실제 데이터가 같다는 것을 /api/histories /api/cards 를 통해 확인한다.

프론트 엔드

어려웠던 점 : 1.조별과제이므로, BE가 완성된 기능을 구현하였는데, FE에서 사용을 못하는 경우가 두려워 빠르게 구현해야 했음. 때문에, 좋은 설계 구조와 확장성, 재사용성을 충분히 갖춘 method를 구현하는데 소홀 했다. 2.충분한 학습을 진행하기 어려웠던 점. 3.codeConvention을 어느정도까지 deep하게 정해야 하는 지

좋았던 점 : 1.FE,BE가 협의가 필요했던 api 및 data의 설계를 Issue화 하여 서로 충분한 이해와 명확한 설계 목표를 가질 수 있었던 점. 2.gather나 project협업 방식을 BE에서 전해받았는데 선진 문물을 받은느낌

백엔드 어려움

  • CardDTO를
  • boolean 타입을 받는 문제 -> 쿼리문을 직접 작성하여
    • @Query("SELECT CID, CARDID, TITLE, CONTENT, DATE, POS, COLUMNID, AUTHOR, IF(CARD.ISAPP, 'true', 'false') as ISAPP from CARD WHERE CARDID=:cardId;")
  • aws 서버와 로컬의 MySQL 환경 불일치로 인한 각종 문제들(upper case, )

기능 명세

  1. 하나의 VC로 3개의 column을 컨트롤 함.
  2. 각 column의 + 버튼을 눌러 등록 modal을 띄울 수 있고, 이를 통해 셀의 title과 content를 넣어 새로운 card를 등록 할 수 있음.
  3. card를 슬라이드 하여 제거 할 수 있음.
  4. 드래그 앤 드랍을 사용하여 이동 가능 함.
  5. 최신 순 정렬을 구현하기 위해, position이라는 변수가 cardData에 존재. 이를 기준으로 카드를 정렬함. 각 카드들은 추가될 경우 맨 위에 생성됨, 이는 최신 순 정렬에 속한 기능. 두 기능을 통하여 최신 순으로 정렬하며, 사용자가 원하는 대로 이동한 결과를 저장함. 이는, trello에서 사용된 알고리즘을 참조하여 구현된 내용임.
  6. 우측 상단의 3line 버튼을 눌러 히스토리를 확인 할 수 있음. 히스토리를 transition하는 방법은 여러 방법 중 mainView 위에 HistoryView를 만들어 animation을 부여함. 버튼을 누를 때마다 DB에서 history data를 가져와 확인. 사용자 사진과 name은 제외. 얼마 전에 실행된 내용인지 확인 가능.
  7. context메뉴의 기능은 위의 기능들을 종합하여 실행 됨.

데모 시나리오

  • 공팔이는 해야할 일, 하고 있는 일, 완료한 일을 구분하여 관리하고 싶다.
  • ‘공부하기' 라는 카드를 해야할 일(ToDo) 목록에 추가한다.
  • ‘운동하기' 라는 카드를 해야할 일(ToDo) 목록에 추가한다.
  • 공부를 하기로 결정하고 ‘공부하기'를 Doing으로 이동한다.
  • 공부를 할 시간이 부족해서 ‘운동하기'를 포기하기로 결정해서 삭제를 했다.
  • ‘요리하기', ‘밥먹긔'를 하면 추가된 순서가 최신 순으로 유지되는 것을 볼 수 있다.
  • 오늘 한 일들을 보기 위해 히스토리 목록을 보면 잘 반영이 되어있다.
  • ‘밥먹긔'를 잘못 입력하여 ‘밥먹기'로 카드 수정을 한다.
  • Doing에 있던 ‘공부하기'를 완료하여 꾹 눌러서 완료한 일로 이동시킨다. 나머지도 모두 완료했다. 오늘하루 끝.

마치며

아무쪼록 싸우지않고 잘 마무리되어서 다행이다. 어제 마지막으로 성공적인 연동을 마치고 최종 테스트를 성공했을 때의 희열은 한 편의 드라마 같았습니다. 마치 인터스텔라의 도킹 장면 처럼.. 이 맛에 개발하고 협업하는구나 했습니다. 발표자료를 준비하면서 회고를 할 수 있어서 좋았다.