이번에 우리조는 Airbnb를 클론코딩하게 되었다. 그중에서도 나는 게시글의 CRUD를 맡게 되었고, 클론을 하면서 내가 가장 신경을 썼던 부분에 대해서 작성해보려고 한다.
무엇이든 사용자가 하는 행동에 갑자기 예상치 못한 일이 발생하고, 그로인해 하던 행동을 하지 못하게 되었다면 이만큼 기분나쁜일은 없을것이다.
나 역시 이러한 일들을 많이 경험해왔기 때문에 내가 만든 어플에서는 그런 일이 없도록 코드를 짰다. 어떻게 해야 최악을 면할 수 있을까 고민을 했고, 차악을 선택할 수 있다면 어떻게 해야 할까 고민을 했다.
역시나 사진을 넣어야했고, S3를 사용해서 url을 받아왔다. 하지만 여기서 끝나지 않았고, 다수의 사진을 올리고, 원하는 사진만 삭제하고, 메인사진을 무엇으로 선택할지 클라이언트에게 선택권을 주었어야 했다. airbnb에서 그렇게 하고 있었고 나는 내가 맡은 부분에서 90%까지는 airbnb와 똑같이 표현하고 싶었기 때문에 그렇게 하고싶었지만, 메인사진을 선택할수 있게 하는것은 하지 못하게 되었다. 알고리즘을 잘 짜면 할 수 있을것 같았지만 다른 신경쓸 것들도 많았어서 아쉽게도 하지 못하게 되었다.
실제 서비스되고 있는 어플들을 따라하려니 가장 어려운것들 중 하나는 css였다. 애니메이션부터 시작해서 사소한 것까지 모두 따라하기 힘들었다. 개발자도구를 열어서 확인을 해봐도 얻을 수 있는 정보는 제한이 있었고 이러다 보니 화면을 꾸미는데에만 정말 많은 시간을 쏟은것 같다.