확장성을 고려한 설계 vs 주제넘는 욕심

https://blog.kakaocdn.net/dn/cnktd2/btrR79ZA0WO/cD3eZkyqoGsS7G4q5ci0W1/img.png

팀원들의 깊은 배려 끝에 나는 이번 주에 거의 온전히 에디터 구현에 집중할 수 있었다. 이전부터 너무 고대해왔던 일이라 너무 신났는데, 역시 내가 하는 모든 코딩이 그렇듯 일이 술술 풀리지는 않았다. 에디터를 직접 구현하기 위해 div 태그에 contenteditable 속성을 넣어서 구현했는데, 굳이 input이나 textarea를 쓰지 않은 이유는 혹시 나중에 syntax highlighting을 구현할 기회가 있을까? 하는 생각에서였다. textarea가 너무 못생겼다는 부차적인 이유도 있었지만..

하지만 그 댓가가 너무 컸다. 우선 input, delete, 붙여넣기 등의 동작이 내 뜻대로 되는 게 하나도 없어 다 직접 구현해 주어야 했으며, 그렇게 구현하고 나니 너무 많은 케이스에서 다양한 버그가 일어났다. 가장 기억에 남는 건 내가 목요일인가 회의 때 '보이는 버그들만 좀 잡고 PR 올릴게요~' 했는데 보이는 버그가 너무 많아서 그 날 새벽 4시에 PR을 올렸다.

재미는 있었지만 팀의 작업 일정을 생각해 보면 전혀 좋은 선택이 아니였다. 내가 이러고 있는 동안 내가 했어야 할 일들은 온전히 팀원들이 떠맡게 되는데, 너무 이기적이게 일주일을 보낸 것 같다. 내가 혼자 하는 프로젝트였으면 아 너무 재밌어 했을텐데 그런 생각을 하니 과도한 오버엔지니어링이라는 느낌이 들었다.

디자인은 개발이 아니다. 그치만..

https://blog.kakaocdn.net/dn/lhhET/btrR8uPUXS7/ykRSAjABIBGofIEzIYrqk1/img.png

그렇다. 사실 회원가입 텍스트가 로그인 박스와 정렬이 어긋나있다.

다른 조의 결과물을 어쩔 수 없이 보게 된다. 마스터 님들도, 운영진 분들도 항상 외관적으로나 서비스적으로 반짝이는 것 보다는 학습과 성장에 집중하라고 입이 닳도록 이야기 하신다. 그치만 프론트엔드라는게 원래 보이는 것을 만드는 일인데 외관에 신경쓰지 않기란 정말 어렵다. 특히 다른 조들의 너무나도 이쁜 디자인들을 보고 있노라면..

애초에 컨셉이나 컴포넌트 디자인을 좀 더 명확하게 잡아놓을걸, 하는 생각이 많이 든다. 지금 초기 기획과 실제 구현 과정에서 발생하는 차이도 이런 불확실한 디자인에서 기인하는 부분도 분명 있고, '이거 이쁘다!' 하는 생각 없이 만들다 보니 레이아웃을 구현하면서도 확신이 없다. 기회가 된다면 꼭 반드시 디자인에 대해 공부해보고 싶다. 내가 프론트엔드 개발자로 살아간다면 이건 언젠가는 풀어야 할 숙제다.

★☆할일은행에 어서오세요☆★

https://blog.kakaocdn.net/dn/cbx80e/btrR9GBMKXu/4JCW9Zx9WgfN38ivvdoKhK/img.png

우리 기획은 사실 잘 한 기획은 아니다. 기획 주간에 그 고생을 했지만 빠진게 정말정말 많다. 옛날에 소프트웨어공학 팀플 때와 비교해도 문서의 디테일 차이가 몇 배로 차이가 나는데, 소공 할 때도 빠뜨린게 많았던 걸 생각하면 지금은 구멍송송 스폰지 수준이다. 자기 비난이 아니라 문제가 뭐냐면, 매 주 기능을 구현해 나갈 때 마다 우리가 정하지 않았던 무언가 때문에 회의가 필요해 지거나, 해결되지 않은 이슈들이 생겨난다. 매 주 회고를 쓰면서 레포지토리 이슈를 쭉 보는데 점점 그 수가 늘어나고 있다..

그 중에는 내가 해야 하는 일들도 너무 많다. 그러니까 음.. 내가 짠 코드에 빠진 부분은 내가 채우는게 가장 효율적이기도 하고, 그 코드를 어떻게 남 읽어서 고치라고 시키냐 하는 생각이 든다. 팀원분이 나는 코드를 좀 막 짜고 나중에 고치는 스타일이라고 했는데 진짜 딱 그 마인드여서 할 말이 없음..

아무튼 팀 차원에서도 '이거는 그럼 나중에 하죠' 라고 말해놓고 까먹는 일도 생기고 하다 보니 팀에 이슈나 백로그와는 별도로 할 일 은행을 만들었다. 이게 뭐냐면.. 위에 말했던 '나중에 하죠'들을 쌓아놓는 곳이다. 이제 다들 다른 팀원의 PR을 기다리거나 하는 시간에 효율적으로 하나 씩 고쳐나갈 수 있겠지 하는 생각을 하고 있다.

떨지 말고 천천히 말씀해 보세요

https://blog.kakaocdn.net/dn/ItwuI/btrSarKQODS/5XXbWw17rtSwoFoUTRBiN1/img.png

우리 팀은 뭐가 있나? 금요일에 데모 발표할 사람을 뽑아 놓으면 그 사람이 기술공유 발표에 걸리게 되는 묘한 마법이 있다. 허 참 정말.. 아무튼 나는 개인적으로 내가 즉흥적으로 말하는 건 못해도 외워서 말하는 건 잘 한다고 생각하고 있었는데 왜 그렇게 온몸이 떨렸는지 모르겠다. 특히 발표자료를 노션으로 띄워놓고 이야기하려니까 스크롤 내리랴 옆에 대본 보랴 정신이 없어서 팀원분이 거의 랩 하는 줄 알았단다 ㅋㅋ;;

스스로에게 크게 실망하고 정신을 차려보니 기술공유 발표를 해야 하는데, 뭘 발표해야 할지 알수가 없다. 내가 이번주에 겪은 일들은 너무 지엽적이고 특수한 케이스인 것 같고, 팀의 메인 토픽이였던 인덱싱은 사실 아직도 나의 숙제 은행에 있었다. 심지어 오늘 우리 조에는 내가 너무 존경하는 분들이 가득 모여 계셔서 준비도 안한 상태로 발표를 하는게 너무 부담이였다. 무슨 이야기를 할까 하다가 window.getSelection() 함수는 어딘가에는 또 쓸일이 있지 않을까 싶어서, 내가 쓴 학습 정리를 보여드리면서 썰을 풀듯이 이야기를 했다. 다행히 시간도 적당한 선에서 끝났고, 발표에 앞서 제가 긴장을 너무 많이 했어염 하고 양해를 구했더니 안쓰러웠던 건지 내용이 생각보다 잘 전달됐던 건지 다들 너무 좋게 이야기해 주셔서 기뻤다. 발표하면서 줌으로 보이는 채팅들이 정말 너무 감사한 것들이구나..