Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

마로의 개발일지

프로토콜 캠프 5주차 회고 본문

프로토콜 캠프

프로토콜 캠프 5주차 회고

maro0201 2023. 10. 14. 15:13

 별거 안 한 거 같은데 5주나 지났다. 5주 차에는 별다른 일 없이 프로덕트 빌딩을 진행했고 크립토 교육 세션(AJ Park, Founder of Radius)이 있었다. 프로덕트 빌딩이 시작되고 한동안 정신없이 코드만 짰었다. 내가 해야 할 일이 너무나 많이 쌓여 있기 때문이었다. 그래서 주변을 둘러보지 않고 앞만 보고 달렸었던 것 같다. 그러한 점들을 반성하는 기회가 있었고 그에 따라 생각과 개발 방향도 달라지게 되었다. 늘 하는 말이지만 프캠에서의 일정과 프로덕트 빌딩 과정에서 어떤 일들이 있었는지에 대한 회고이며 지극히 개인적인 경험이고 생각이니 이런 생각도 있구나 정도로 받아들여 주길 바란다.

 

주어진 상황에 맞게 개발하자

 현재 RDB구축 자체가 안되어 firebase의 firestore의 NoSQL DB를 사용하고 있었고, 프론트 엔드에서 직접 firestore를 연결해 데이터를 조회 및 수정하고 있었다. 난 좀 더 완성도 높은 프로덕트를 만들기 위해 RDB를 구축하여 DB저장에 관한 처리를 백엔드에서 하고자 했었고 2개월이면 충분히 가능할 것이라 생각했다.

 하지만 중간에 추가적인 기능에 대한 요구사항이 생겨 해당 기능을 빠르게 만들어야 하는 상황이 되었고, 이후 다른 기능들에 대한 요구사항도 생길 예정이었다. 당장에 새로운 기능들을 먼저 진행하고 싶어도 기존의 기능들이 먼저 선행 개발이 되어야 이후 개발을 진행할 수 있었다. 난 혼자 시간에 대한 압박을 받으면서 개발만 진행했고 그 결과 목표하는 기능까지 대략 80% 정도 완성했다. 하지만 팀원들과 소통이 되지 않아 팀원들은 내가 얼마나 작업했는지 몰랐고 그에 따른 오해가 발생했다.

 오해를 풀기 위해 대화를 나누다 보니 내가 많이 잘못하고 있었다는걸 깨달았다. 진행 사항 공유도 제대로 되지 않았고, 따라서 기능이 개발되기를 기다리는 사람들은 계속 기다릴 수밖에 없었다. 시간이 없으니 빠르게 해야 한다는 생각에 사로잡혀 있었고 대부분의 기능을 완성했지만 앞으로 더 이상 이러면 안 된다는 생각이 들었다.

 RDB 전환은 굳이 할 필요가 없는, 좀 더 완성도 높은 프로젝트를 만들고 싶은 내 욕심이었고 그 욕심으로 인해 문제가 발생했다. 난 지금 주어니 백엔드 개발자의 입장이 아닌 팀 내 유일한 백엔드 개발자였고 그저 개발만 할 수 있는 상황이 아니었다.

 따라서 계속 이런 페이스를 유지해야 하는 RDB 전환을 포기하고 기존의 방식대로 진행하기로 했다. 기존의 방식대로 프론트 엔드에서 직접 데이터 조회 및 수정을 진행하고, 정말 백엔드와의 통신이 필요한 컨트렉트 호출이나 인앱 결제, 인프라 구축 부분을 좀 더 집중적으로 작업하기로 했다. 2주 동안 작업한 게 아까울 수도 있지만, 지금이라도 정신 차리고 꼭 필요한 기능만 구현하기로 한 선택을 해서 다행이라는 생각이 든다.

 또한 주도적으로 개발자들을 조율하는 역할을 해야겠다고 생각했다. PM 분은 개발에 대한 이해도가 아직 충분하지 않으셔서 내가 좀 더 나섰어야 했는데 그러지 못했던 것 같았다. 이제라도 정신을 차리고 내 역할을 제대로 해야겠다.

 

크립토 교육

 Radius(https://www.theradius.xyz/)의 AJ Park님이 교육을 진행해주셨다. 해시드 라운드에서 함께 생활하고 있는 분인지 몰랐는데 공유 오피스에서 일하시는 분이셨다(모르는 사람에게 관심이 없어서 죄송...). zkRollup과 블록체인의 채굴 과정에서 생기는 MEV 문제에 대해서 교육해 주셨고 정말 알찬 내용들로만 구성되어 있어 정말 유익했다.

 우선 MEV(Maximal Extractable Value)가 어떤 것인지와 종류들에 대해 설명해주셨고 그로 인해 사용자들이 피해를 입는 과정에 대해 설명해 주셨다. 채굴 과정에서의 여러 문제점들을 알 수 있었고 듣다 보니 탈중앙화를 외치지만 점점 중앙화되어가고 Miner와 Validator만 배불러가는 현실을 깨닫게 되었다. 이 문제는 해결되어야 하는데 여러 방법이 있지만 Radius는 사용자의 자산을 보호하고 해당 문제를 해결하기 위해 일정 시간동안 tx을 암호화하는 방식을 택했다.

 또한 zkRollup에 관한 강의도 해주셨다. Rollup은 ETH를 높은 보안을 가진 분산 DB로 사용하는 Layer2 chain이라고 생각하면 될 것 같다. zkRollup은 거기서 영지식 증명(zero knowledge proof)을 활용해 트랜젝션의 유효성을 증명하고 Sequncer를 통해 트랜젝션들을 모아 ETH 블록의 트랜젝션으로 만드는 것이다. Rollup을 만들면서 가장 큰 어려움을 겪는 것이 Sequncer의 생성 및 관리인데 Radius는 그것을 좀 더 편하게 해 주기 위해 Sequnce Layer를 만들었다. Sequnce Layer는 DB의 connection pool과 유사한데 공통으로 사용 가능한 Sequncer(connection)를 등록해 주고 Layer(pool)에서 꺼내다가 사용하는 개념인 것 같았다. Sequncer를 공통으로 사용하기 때문에 서로 다른 Rollup끼리의 교환도 용이(가스비가 적게 들고 신뢰성이 보장됨)하다는 장점이 있었다.

 이러한 교육을 들으면서 정말 똑똑한 사람들이 잘만든 프로젝트라는 생각이 들었고, Web3 시장이 활성화되어 Rollup 들이 많이 생기면 잘 될 것 같다는 생각이 들었다. 덕분에 많은 인사이트를 얻었고 기회가 된다면 한 번 참여해서 프로젝트를 개발해 보면 재밌을 것 같다.

'프로토콜 캠프' 카테고리의 다른 글

프로토콜 캠프 7주차 회고  (1) 2023.10.29
프로토콜 캠프 6주차 회고  (1) 2023.10.21
프로덕트 빌딩 - 1  (0) 2023.10.09
프로토콜 캠프 3+4주차 회고  (1) 2023.10.08
프로토콜 캠프 2주차 회고  (1) 2023.09.24
Comments