ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11/29 TIL | 레벨 테스트 작업 일지 Day 2. 풀스택 개발자로 떠나는 여행🕺🏻
    📝 기록/작업 기록 2022. 11. 29. 22:51

    🔙 이전 시리즈

     

    11/28 TIL | 레벨 테스트 작업 일지 Day 1. 기획 및 Rest API 설계!

    드디어 이제 포폴 주간 직전의 레벨 테스트 주간! 2주 동안 그간의 배운 지식들을 모두 활용해서 기프트샵 웹 애플리케이션을 만들어야 한다. 오늘부터 2주간 마카오 기프트샵 작업 일지로 TIL을

    bohyunkang.tistory.com


    오늘 작업 목표 달성률(75%)

    ✅ 페이지 라우팅 처리 및 reset, GlobalStyle 적용(PR)
    ✅ 모든 페이지에 대한 인수 테스트 코드 작성(PR)
    ✅ 헤더, 기본 홈 화면 마크업 및 스타일링(PR)
    🟩 로그인, 회원가입을 제외한 페이지 마크업(작업 중💬)

    작업 회고

    오늘 작업 목표는 위와 나열한 것과 같이 총 4개였는데, 3개 달성하였다. 왜 모두 해내지 못했나 생각해보면 인수 테스트 코드를 작성하는 데에 시간이 많이 걸렸기 때문이다. 처음에 기본 홈 페이지 작성할 때는 간단했지만, 점점 시나리오가 복잡해지다 보니 중복되는 것들을 발견했고, steps_file에 뒤늦게 옮기고, 중간중간 Backdoor API로 사용할 만한 것이 생각나면 그것도 문서에 추가하는 등... 중간에 방해(?) 요소가 많았다(물론 추후 작업에 다 필요한 것들이지만 ㅎㅎ). 그래서 오전 중으로 작성을 완료하고 싶었으나 점심 먹고 와서 3시쯤에야 완료할 수 있었다.

    마카오톡 선물하기 메인 페이지

    그러고 나서 바로 마크업 작업을 시작했는데, 사실 스타일링은 모든 로직이 구현이 된 후에 마지막으로 작업할 생각이었지만, 메인 페이지는 달라지는 화면이랄 것이 없는 데다가 헤더는 그냥 처음에 모습을 잡고 가면 좋을 거 같아 메인 페이지만 후딱 작업하였다. 히어로 이미지는 내가 좋아하는 월레스와 그로밋으로 ㅎㅎ 곧 크리스마스니까 그거에 맞는 사진으로 해봤다..ㅎ(CSS는 이런 소소한 재미가 있다!ㅋㅋㅋ)

    집에 와서는 엄마가 해준 김장김치에 수육을 맛나게 먹고(= 겨울철 필수템)! TIL을 쓰러 앉았다. 쓰다 보니 일과 시간에 집중력이 별로 좋지 못한 것 같다는 생각이 낭낭하다.. 내일부터는 뽀모를 25분 작업, 5분 휴식으로 책정하고 쉬는 시간마다 성과 체크를 해야겠다!


    그리고 오전에 쥬쥬랑 얘기를 하다가 내가 어제 TIL로 고민했었던 주문이 성공 시 store 잔액에서 차감, 실제 서버 잔액에서 차감되는 방식에 대해서 의문점이 생겼다.

    아직 구현을 시작하지 않은 상태지만 막연히 마카오 기프트샵 주문이 성공하면 store의 잔액을 차감하고, 실제 서버에서도 차감해야겠다~ 생각했었다. 근데 현재의 경우에는 단순히 금액을 차감하는 문제이기에 연산이 간단하지만, 나중에 서비스가 확장돼서 쿠폰 적용 등 할인을 받게 된다든지 연산이 복잡해지게 되는 경우가 됐을 경우를 가정해보면 이때는 백엔드에서 모두 처리하고 해당 금액을 돌려받는 식으로 해야 하는 것이 맞지 않나? 하는 생각이 문득 드는 것이다. 똑같은 연산이 프론트, 백 두 번 처리되는 것이 맞나? 하는 생각이 들어서였는데.. 그래서 메가오버플로우에 바로 질문을 남겼고, 아샬님이 바로 답변을 달아주셨다.

    일부만 캡쳐!

    오히려 내가 생각했던 것과 정반대로 쿠폰 적용은 사용자 경험에 있어 중요한 부분이기 때문에 프론트에서도 즉각적으로 미리 결과를 보여줘야 한다는 답변을 주셨다. 일전에 13주차 강의에서는 게시판 새 글 등록하는 경우에서 게시판에 새 글이 등록되었을 때에도 store가 가지고 있는 배열에다가 새 글을 배열에 추가해서 프론트에서 즉각적으로 반영이 될 수 있는 방법도 소개해주셨는데, 이 부분이 당장의 사용자 경험을 위해서 필요한 부분이었던 것!

    반면 마카오 기프트샵의 경우, 아직 처리 중인 결과를 미리 화면에 반영한다면 동기화가 어긋나게 될 수도 있다. 때문에 주문의 성공/실패 여부를 확실히 보여주는 것이 맞다(앞서 말했던 새 글 등록의 경우는 동기화가 어긋나도 상관이 없는 경우). 결국 이 또한 나의 서비스에 맞는 UX가 무엇인지를 고민함으로써 구현 방식 또한 결정할 수 있는 것이다! 그리고 어떤 경우든 간에 백엔드는 모든 것을 검증할 수 있게 포괄적으로 만들어놓아야 하고, 프론트엔드에서는 어떻게 처리해야 사용자 경험이 더 좋아질 수 있는지 고민하면 된다!

    확실히 레벨 테스트를 하면서 구현에 대해 많은 고민을 해보고 궁금한 점도 많이 생기는 것 같다. 요 며칠 동기들이랑 어떤 방식이 좋은지, 어떻게 구현할 건지에 대해서 막히는 부분은 함께 논의하고, 우리끼리 결론이 나지 않는다면 메가오버플로우에 질문을 남기고 답변을 받는 방식으로 작업을 진행하고 있다.

    근데 우리가 하는 질문들이 너무 한쪽(프론트 or 백)에 치우친 질문들이어서 그때마다 아샬님이 한쪽에 치우친 생각을 해선 안된다는 답변을 주셨다. 클라이언트와 서버를 모두 배웠으니 사고를 스위칭하면서 생각할 수 있어야 한다는 것!! 앞으로는 질문하기 전에 내가 과연 클라이언트 사이드와 서버 사이드 두 가지 측면을 모두 고려했는지에 대해서도 한번 체크를 해야겠다.

    뭔가 내 두뇌를 괴롭히는 느낌이 아주 좋으다!!! 끊임없이 고민하고 사유하고 내린 결론들로 좋은 코드를 작성하는 사람이 되자!!! 이제 마저 남은 페이지 마크업을 하고 자야겠다. 내일도 파이팅!💪