BEB 심화클럽 1기 회고

성훈·2022년 4월 19일
0

Retrospect

목록 보기
1/2
post-thumbnail

심화클럽 회고

Prologue


팀 내에서 적극적으로 밀고 있는 커리어 캠프 중 하나인 심화클럽에 크루로서 참가하게 되었다.

심화클럽의 취지는 커리어 전환으로 포트폴리오가 얼마 없는 수료생들에게 포트폴리오로 사용할 프로젝트를 하나 더 가져가게 한다는 것에 의미가 있다. 포트폴리오 양의 중요성은 같이 소프트웨어 코스를 수료한 동기들에게 전달받아 잘 알고 있는바, 그런 것들을 포함해서 심화클럽의 취지에 공감하고 진행되는 것을 바이스탠더의 입장에서 지켜보고 있었다.

그때 심화클럽을 기획, 운영할 예정이신 동료 크루분들이 인턴으로 있으면서 조금이라도 더 많이 가져가면 좋지 않겠느냐는 의미로 크루 입장에서 참가해보는 것을 권유해주셨고, 소프트웨어 코스를 수료하고 블록체인 코스 팀에 인턴으로 합류한 입장으로선 개인적으로 굉장히 도전적인 목표로 유의미한 성과를 낼 수 있을 것 같아 기쁜 마음으로 응했다.

하지만, 역시 원한다고 쉽게 되면 세상 사람들 다 쉽게 살고 있지 괴로운 사람은 왜 있겠는가?

간사한 과거의 인간이 쌓은 업보는 컸고, 갑작스레 다가온 그 업보에 두들겨 맞은 현재의 인간(나)은 후회했다.

조금 다른 곳으로 세었는데 결론적으로 나머지 팀원분들의 아이디어 제공으로 프로젝트는 궤도에 올랐다.

Pawnshop for NFT


우리 아이디어는 경직된 NFT 시장에 유동성을 제공하자는 것에서 출발했다.

우리의 프로젝트의 시초가 된 아이디어는 현재 이더리움 체인의 NFT 들에 대해 NFT를 담보로 토큰을 빌려주는 서비스(NFTfi)는 이미 존재하지만, 이더리움 체인에 한정되어 있으니 이걸 따와서 클레이튼 체인의 NFT 시장에도 유동성을 공급해 보자는 것이었다.

연사님이 원 페이저를 작성해보라고 말씀해주셨는데, 작성해보니 문제점이 한두 개가 아니었다.

  1. 클레이튼 NFT 시장은 너무 작음(잠재적 타겟 유저가 적음)
  2. 타겟을 암호화폐 투자자로 잡았는데 클레이튼 체인으로 가면 클레이튼 투자자로 범위가 너무 좁혀짐.
  3. 그렇다고 이더리움 NFT, 클레이튼 NFT를 같이 다루자니 볼륨이 6주 프로젝트 볼륨은 아닐뿐더러 생각할 문제가 너무 많음. ( 토큰 문제 )

이런 것들을 하나 둘 씩 생각하다 보니 결국엔 NFTfi 가 왜 이더리움 프로젝트만 앱 내에서 다루는지 이해하게 되어버렸다.

결국 NFTfi를 클론코딩하느냐 마느냐의 선택지에 섰고, 그때 연사님이 피드백을 전달해주셔서 NFTfi와는 조금 다른 방향성으로 가닥을 잡았다.

  1. 현재 NFTfi는 말 그대로 유동성 수요자와 공급자를 모아주는 곳에 불가. 그래서 담보로 대출받은 코인을 받기까지 시간이 얼마나 소요될지 모름.
  2. 고로 몇 가지 고정 옵션을 두고, 풀을 생성하는 것으로 NFT 가격의 50~60% 선으로 즉시 대출 수요가 있지 않을까?

여기까지 소요된 시간이 거의 한 달 넘는 시간이었던 것 같다.
SR 설정이 중요하다는 것은 알고 있었지만, 이번 기회로 더더욱 와닿지 않았나 싶다. 경험이 최고

Wire Frame + Flow Chart


사실 원 페이저를 집중하고 완성한 후 → 와이어 프레임을 짜는 플로우로 진행을 해야 했는데, 원 페이저를 빠르게 넘어가고 와이어 프레임을 짜는 바람에 시간이 두배로 들었다. 세배일지도.

앞서 말했듯 NFTfi의 클론 코딩하는 와이어 프레임도 짰다가, 피드백을 받아서 진짜 전당포 앱으로 짰다가, 그 전당포 앱에서도 UX 부분에서 조언받아 수정하는 작업이 상당히 고됐다. 재미도 없었고

나는 개발의 동기 중 흥미를 가장 큰 파이로 생각하기에 늘어지는 SR 과정에서 처음에 흥미를 계속 이어 나가지 못하지 않았나 하는 아쉬움이 있다.

내가 여기에 동기를 조금만 더 가지고, 조금만 더 시간을 부었다면? 하는 생각이 포스팅하는 지금, 이 순간에도 들 정도.

이 포스팅을 볼 미래의 2기분들. 꼭 프로젝트 키 아이템 확실히 정하시고, 원 페이저 확실히 작성하시고, 와이어 프레임을 짜시길 바랍니다. 제발요

플로우 차트는 다른 팀원분들이 애써주시고 피드백 정도만 드려서 대표적인 것 하나만 딱!

연사님은 플로우 차트만 제대로 만들어 놓으면 거기에 따라서 코드를 짜는 것 자체는 얼마 안 걸릴 것이라 해주셨지만.. 세상일이 항상 생각한 대로 흘러간다면 얼마나 좋을까.

dApp 개발이 처음이다 보니 중간에 생각하지 못한 트러블이 생기고, 그에 맞춰서 플로우 차트가 계속해서 수정되는 등 플로우 차트만 두고 개발을 진행하는 것에 무리가 있었다.

여기에서도 나의 너무 빈약해 앙증맞은 블록체인 리터러시가 발목을 잡았다. 업보 청산 100배

Emit 이 뭔지, ERC-20의 기능 중 Approve가 뭔지, Allowance가 뭔지.

전혀 모르던 상황에서 이 국면에 접어들어 다른 팀원분들이 이걸 설명해주시느라 시간을 왕창 잡아먹었다.

심지어 다 이해도 못 해서 따로 공부하는 시간을 가지겠다고 하고 넘기기도 했을 정도.

Coding


이 과정에서도 순탄하지 못했다.

  1. 우선 styled-components로 코드를 짜본 지 너무 오래된 점.
  2. 그로 인해 JS 파일 볼륨이 너무 길어지고 가독성이 떨어짐.
  3. 가독성이 떨어져서 다른 코드 짜는 데 시간이 너무 오래 걸림.
  4. 스택 추가하기 싫어서(Redux) 프롭스 드릴링 엄청나게 함. 자연스레 가독성, 편의성 모두 떨어짐.
  5. 컴포넌트 분리를 너무 안일하게 생각함.

차례대로 돌이켜보자.

1, 2, 3 번 문제

우선 CSS-in-JS로 코드를 짜본 것이 너무 오래되었다.

소프트웨어 코스에서 퍼스트 프로젝트 때 쓴 이후로 쓰지 않아서 쓰는 법만 알지 어떤 식으로 해야 코드 가독성이 좋아지고, 보다 편하게 짤 수 있는지에 대한 고민이 부족했던 것.

그로 인해 무지성 코딩을 하게 되었고, 가독성이 떨어져 시간 가성비가 너무 안 나왔다.

가독성 문제는 스타일 코드를 죄다 export 하단으로 밀어버리는 것으로 어느 정도 해결을 한 것 같지만, 여기에 든 시간도 무시 못 할 정도였다.

여기서 아쉬운 점은 왜 나는 Sass(scss)를 쓰자고 설득하지 않았는가에 대한 아쉬움이다.

기본적으로 CSS 문법과 거의 유사하기에 적응하는 데 시간도 크게 필요하지 않을뿐더러 시간이 필요한 디렉토리 정리 같은 건 그냥 내가 해버렸으면 됐는데.

역시 길어진 SR 시간에서 이어지는 문제로 새로운 스택을 사용하자는 것에 대해 너무 부정적으로 바라본 결과가 아닌가 싶다.

4번 문제

리덕스 스토어 관리하는 것에 너무 고생했던 안 좋은 기억 덕에 괜스레 왜 리덕스를 쓰게 되었는가에 대해 이론상으로 알고 있던 걸 머리 피 흘리며 경험해버렸다.

여기에 대해서 굳이 변명을 해보자면, 프로젝트 볼륨이 이렇게 커질 것을 예상하지 못했다.

드릴링을 해봐야 1, 2단계겠지라는 안일한 생각에서 이어진 굳이 새로운 스택을 써야 할까 하는 그 오만한 생각이 문제였던 것이다. 그런데 지금 코드를 보라. 굳이 세보진 않았지만 4단계까지도 보내고 있는 것 같다.

안 그래도 복잡한데( 컴포넌트 네이밍 룰도 안정해서 그냥 어지럽다. ) 그거 하나하나 거슬러서 어디부터 내려오고 있는지 찾는데 한세월이다.

결국엔 한번 셋업하고 나면 그 뒤로는 편했을 텐데 결국엔 그거 한번 하기가 싫어서 일을 더 크게 벌인 셈이 아닌가.

만약 3주 전으로 보내준다면? 아묻따 리덕스 셋업.

5번 문제

컴포넌트 분리를 안일하게 생각한 게 뭐냐면, 어차피 재활용 안 할 것 같은 자식 컴포넌트를 그냥 부모 컴포넌트에 같이 코드 작성했다. 왜냐? 임포트 해주기 싫어서.

결론만 말하자면 너무 근시안적인 생각이었다.

꼭 말 안 듣고 하라는 대로 하기 싫어하는 나 같은 사람들이 직접 머리 깨지고 피 흘리면서 “아하! 이렇게 하면 머리가 깨지는구나!” 하며 배우는데 우리 코스에서 컴포넌트 분리해라 스토리북 써라 하는 이유가 다 있다.
물론 경험하는 것이 가장 빠르게 배우는 법이라는 것은 극동의하는 부분

정리하면서 디렉토리 정리도 같이 정리했는데, 아무래도 협업해서 짠 코드다 보니 중간중간 어디 쓰이는지 모르겠지만 어딘가엔 쓰이고 있는 컴포넌트들이 있어 완전히 정리하지는 못했다.

이 역시 컴포넌트 네이밍 룰이라던가 규칙을 정했어야 했는데 너무 시간에 쫒겨 진행된 것이 문제가 아닐까 싶다.

Epilogue


아무래도 소프트웨어 코스를 수료하고 이론까지만 진행하고 실습 진행을 하지 않은 상태에서 진행하다 보니 web3.js를 쓴다던가, 오픈씨 API를 사용한다든가 하는 곳에서 문제가 자잘하게 생겼다.

web3.js를 안 써봐서 스택을 처음부터 공부한다던가, 본래 오픈씨에서 제공하는 API를 이용해 보유 NFT를 렌더할 생각이었지만, 벽에 막혀 NFTbank를 이용하기로 하기로 한 것이라던가. 역시 디테일이 부족해 이러한 문제들이 산발하지 않았나 싶다.

이 후기 역시도 앱이 완전히 완성되지 않은 상태에서 작성하자니 기분이 조금 이상한데 이 포스트를 볼 미래 기수분들은 여기서 내가 겪은 시행착오를 겪지 않았으면 하는 마음으로 작성한다.

여기부턴 개인적인 소감을 몇 자 더 끄적이자면, 좋게 봐줘도 핑계지만, SEB 코스에서 넘어온 인턴이 바로 팀에 기여할 수 있는 분야는 운영 업무라 생각했고, 그쪽으로만 생각하고, 집중하다 보니 자연스레 블록체인 공부는 등한시하게 되었다.

그 결과 프로젝트 주제 선정을 위해 브레인스토밍 시간을 가질 때도 내 빈약한 블록체인 리터러시로는 심화클럽 미팅 때마다 리액션 인형마냥 ‘아 좋네요!’, ‘그거 괜찮은 것 같아요!’, ‘동의합니다.’ 만 반복할 수밖에 없었고, 그런 스스로를 보며 자괴감을 느끼는 것밖에 할 수 없는 게 안타까웠다.

그런 의미에서 심화클럽은 어느새 안주하려고 하는 간사한 인간을 다시금 일어나게 해주었다는 의미로도 크게 다가온 것 같다.

마지막으로 6주+1주간 너무 고생 많으셨던 프로젝트 팀원분들과 연사로 많은 도움을 주신 Hopae의 심재훈 연사님을 샤라웃하며 포스팅을 마치겠다. 나도 고생 많았어.. (토닥

profile
어떻게 이걸 풀어낼 수 있을까

0개의 댓글