내가 프론트 앤드 개발자라고 말하면 아무도 안믿는다. 그럴만도 하다. 보여줄게 아무것도 없기 때문이다. 집에서 혼자 코드를 뚜닥거리는건 재미있다. 하지만 그 뚜닥거린걸 남들에게 공개하기가 매우 어렵다. 정리가 안된 코드를 올리는게 참 마음이 어렵다. 그런데 깃헙을 보면 난장판이다. 코드를 올리는게 부끄러운 사람이 맞는지...
그래도 나는 어딜가서 프론트 앤드 개발자라고 이야기한다. 대학교 1학년 때, 로버트 로드리게즈라는 영화 감독의 책을 읽은 적이 있다.
로버트 로드리게즈는 어디가서 영화 감독이라 말하고 다니라고 한다. 심지어 명함도 파라고 한다. 그게 중요하다고 말한다. 그래서 한동안(?) 영화 감독이라고 말하고 다녔었다. 사람들은 어떤 영화 만들었냐고 대뜸 물어본다. 그러면 독립 영화 한편 만들었다고 말했었다. 사실 스무살이니까 가능했던 것 같다. 그때는 어렸고, 잠재력이 무한한 청년으로 사람들이 봐줬기 때문에 나는 자신감있게 '나는 영화 감독입니다.'라고 말하고 다녔다. 그래서 그런지 마법 같이 매년 영화를 만들었다. 생각해보면 한 해도 쉰적이 없었다. 영화 만드는게 너무 좋았고, 보고, 쓰고, 느끼고, 말하고, 다시 만들고 하는 과정이 그냥 미치도록 좋았다.
개발자는 항상 뭔가를 만들어보면서 왜 이게 이렇게 작동하고 작동하지 않고 그럼 이 문제를 해결하려면 어떤 방법을 써야하는지 고민하는 사람이라는 말이 너무나 매력적이었다. 내 실력 앞에 직면한 사소한 문제를 아주 진지하게 파보는건 정말 재미있는 일이다. 하지만 해결하지 못한 과제들이 점점 하나 둘씩 쌓이고, 나는 재능이 없는 인간인가 고민하며 머리를 쥐어 뜯다보니 어느새 퇴사한지 1년이 다 되어가고 있었다. 이력서를 막상 쓰려고 해도 뭘 보여줘야하는건지, 프로젝트는 내가 지금까지 한 사소한 걸 다 보여주면 되는건지 혼란스러웠다. 그렇게 나는 점점 모놀리틱한 사람이 되어가고 있었다.
어느 날, 코로나가 갑자기 세상을 덮쳤다. 나는 교회에서 봉사를 하는데 항상 사람들과 만나서 대화, 토론, 의사 결정을 하는 것에 매우 익숙했었다. 하지만 지금은 그럴 수 없는 상황이었다. 이전에 종이로 주보를 계속 만들어왔는데, 비대면 예배가 지속되면서 정보를 공유하는 일이 꽤 어려운일이 되었다. 그래서 방송실에서 항상 사소한 실수가 반복됐다.
내 친구는 간단하게 주보를 공유할 수 있는 웹 사이트의 필요성을 계속 말했다. 물론 몇 년 전부터 구글 드라이브를 통해서 정보를 공유하고 있지만 모두에게 균일하게 공개되는 것도 아니고, 공유를 했다가 다시 공유를 끊는 일이 번거로웠다. 그래서 나는 그냥 간단하게 주보만 볼 수 있는 교회 홈페이지를 만들기로 했다.
처음에는 생각을 하다보니 서비스를 하고 싶은게 많아졌다. 그러다 보니 또 다시 나는 모놀릭하게 생각이 흘러가고 있었다. 나 혼자 해서 되면 좋겠지만 안될 가능성이 높았다. 친구는 나를 보고 소리쳤다. '그냥 일단 간단하게 주보만 올리고 수정하고 읽을 수 있는 것만 만들어봐!' 맞다. 지금 당장 수요는 주보의 원활한 공유니까 그것부터 하자.
일단 나 혼자서 모든 것을 다 해야했기 때문에 기획부터 개발까지 모든 과정을 다 최소화했다.
home: "/"
weekly List : "/weekly"
create : "/create"
read : "/:id([0-9a-f]{24})"
update: "/:id([0-9a-f]{24})/edit"
delete : "/:id([0-9a-f]{24})/delete"
서비스를 배포하고난 뒤 첫 일요일이 되었다. 사용자는 생각보다 많이 없었지만 어쨌든 누군가는 사용을 하긴 하더라. 첫 술에 배불를 수 없다. 처음에 '주보'라는 메뉴밖에 없었지만 햄버거 메뉴를 만들었다. 그리고 내 예상대로 동작하지 않는 것들을 고쳐나갔다.
schema 수정
helmet 추가
DNS, https 등록
항상 프로젝트를 시작도 못하고 발만 동동구르던 나에게는 이번 경험은 신선한 경험이었다. 지금도 교회 웹 서비스는 계속 조금씩 개선 중이다. 개발을 UX 관점에서 접근하는 것은 내가 코드를 어떻게 개선하고 싶은지 생각하는데 많은 도움이 된다. 예를 들면 로그인 해야만 댓글을 달 수 있는데, 로그인을 하고 나서 댓글을 달아야하는 페이지로 다시 돌아가는 기능이나, 매주 출석 체크를 할 수 있는 버튼을 특정 시간에만 보이도록 하는 기능을 구현해봤다. 사용자 관점에서 뭐가 필요할까 고민하다 보면 어떤 기능을 구현해야하는지 고민하게 되는 것 같다.
주니어는 애자일이어야한다. 모놀리틱해서는 안된다. 항상 완성과 미완성 사이의 과정 안에 있어야한다. '완벽하게 완성하려고 해서 과연 내가 사회인이 될 수 있을까?' '그렇다고 미완성에 가깝다면 누가 나를 좋은 개발자라고 인정해줄까?'라는 고민 가운데서 성실하게 배워야한다.