brunch

You can make anything
by writing

C.S.Lewis

by const Jul 02. 2023

친절한 자세를 흩뜨리지 않도록

쓸모를 증명하는 시간

가끔 당신으로부터 옛이야기를 듣습니다. 당신의 자식이 열이 끓어올라 병원에 가야 하는데, 당장 병원비가 없어 이웃들에게 돈을 빌리러 다니셨다는 이야기. 당신의 자식이 집에 친구들을 데려왔는데, 집이 너무나도 좁아 친구들의 표정이 좋지 못한데도 당신의 자식은 누구보다 밝게 웃고 있었다는 이야기. 누군가 당신의 자식에게 가장 좋아하는 음식이 무엇이냐고 물을 때면, 맛있는 음식을 먹어본 적이 없어 '계란프라이'라고 말했다는 이야기까지. 당신은 늘 과거의 이야기를 모두 마무리 지을 때쯤이면, 어렵지만, 바르게 성장해서 고맙다는 이야기를 전했습니다. 고맙다는 이야기는 당신이 들어야 하는데, 당신은 늘 먼저 고맙다고 이야기합니다.



참 신기하게도, 당신은 아무리 힘들어도 홀로 사는 어르신을 위해 음식을 나누고, 이웃들에게 안부 인사를 전하곤 했습니다. 그리고 잠들기 전, 힘든 일을 겪는 이들을 위해 기도하곤 했습니다.



당신처럼 현재 상황이 힘들더라도 고마웠던 이에게 다정하게 안부인사를 전하고 그들을 위해 기도할 수 있는, 친절한 자세를 흩뜨리지 않는 삶을 살고 싶습니다. 그리고 힘들었던 시절을 회상하며 고맙다고 말하는 당신이 편히 기대 쉴 수 있는, 나무 같은 사람이 되고 싶습니다. 덕분에 지금도 성장을 멈춰서는 안 되겠다고 생각합니다.

 


당신과 꽃피는 봄 어느 날 정독도서관에 갔을 때를 생각하며, 2023년 상반기를 돌아봅니다. 이번 상반기는 개발자로서 어떤 어려움을 헤쳐갔으며, 친절한 자세를 흩뜨리지 않기 위해 어떤 노력을 했는지 지난 삶을 돌아보기 위해 글을 적습니다. 



















한계를 해결하려면

코로나가 매일 같이 뉴스의 화제거리 였던 어느 날, 당신의 집에 놀러 갔습니다. 코로나 때문에 밖에 나간지 오래됐다는 이야기를 하며 서로의 안부를 물었습니다. 대화를 이어가는 와중에 아이가 정말 예뻐 계속 눈길이 갔습니다. 새벽 3시 정도에 잠시 물을 마시러 방을 나왔다가 잠든 아이 옆에 앉아 아무것도 하지 않고 허공만 바라보는 당신의 모습을 우연히 봤습니다. 

대한민국 엄마 90.5%가 산후우울감을 경험하고, 33.7%는 육아 스트레스와 우울감으로 인해 자살 충동을 느낀다고 합니다. 지금 와서 생각해 보면, 허공을 바라보던 당신은 어쩌면 형용할 수 없는 힘듦을 겪고 있던 것이 아닐까 싶었습니다. 육아를 하지 않아서 당신의 어려움을 이해할 순 없겠지만, 이제야 당신의 어려움을 조금이나마 헤아려볼 뿐입니다. 



좋은 질문을 받을 때면, 새로운 생각을 할 수 있어서 좋습니다. 누군가 제게 "왜 육아크루 팀에 합류했나요?"라고 물은 적이 있습니다. 물음에 답을 하기 위해 생각하면서, 육아를 하며 허공을 바라보고 있던, 당신의 모습이 생각났습니다. 내가 갖고 있는 능력으로, 육아를 하고 있는 이들의 문제를 조금이나마 해결할 수 있다면, 그리고 그 문제를 해결하면서 비즈니스를 만들 수 있다면 좋겠다는 생각을 하며 육아크루 팀에 합류했습니다.

 




"지금 우리 사회가 가지고 있는 한계는 무엇일까, 그 한계를 뛰어넘기 위해 우리는 무슨 일을 할 수 있을까?"





가끔 2019년 7월로 돌아가, '한계'에 관하여 글을 썼던 순간을 돌아봅니다. 만약 지금 다시 '한계'에 관한 글을 써야 한다면, 글을 조금은 다르게 작성할 듯싶습니다. 나의 능력을 활용하여 산후우울감 문제 혹은 우울감 문제를 겪는 이들의 문제를 해결할 수 있는 일을 하고 싶습니다. 그렇다면, 산후우울감, 혹은 우울증 때문에 자살까지 생각하는 이들을 위해, 나는 어떤 일을 할 수 있을까를 고민할 차례였습니다. 이제는 문제 해결을 위해 나의 '쓸모'를 증명해야 했습니다. 상반기는 나의 쓸모를 증명하기 위한 시간이었고, 간략하게나마 쓸모를 어떻게 증명했는지 적어보려 합니다.





















쓸모를 증명하는 시간

고객의 문제를 해결하는 서비스를 안정적으로 운영하기 위해 개발자로서의 쓸모를 증명해야 했습니다.

작년 하반기는 서비스를 런칭한 후, 서비스를 문제없이 운영할 수 있도록 안정성을 올리기 위해 노력했습니다. 이번 상반기는 서비스의 안정성을 올림과 동시에 고객의 문제를 지속적으로 탐구하며 얻은 인사이트를 바탕으로 새로운 기능들을 우선순위와 일정을 고려하며 추가해야 했습니다. 새 기능을 추가함과 동시에, 기존에 윤영하고 있는 기능을 더욱 견고하게 구성하기 위해 노력한 6개월이었습니다.







출처: AWS






VPC, 인프라 작업

1월엔 서버 인프라 환경을 안전하게 운영하기 위해 VPC 환경을 구축했습니다. NAT Gateway, Bastion Host, NACL, Subnet, CIDR 등의 개념을 빠르게 익혀서, 서비스에 적용하는 시간이었습니다. 내부망과 외부망을 분리했고, 권한이 있는 서버만 내부망에 접근할 수 있도록 인프라를 구성했습니다. 그리고 DB에 장애가 발생하거나 데이터가 모두 삭제되는 등의 문제에 대비하여 Aurora RDS 스냅샷을 특정 시간마다 꾸준히 만들어낼 수 있도록 서버리스 로직을 구성했습니다. 이 작업을 통해 DB가 삭제되거나, 장애가 발생하더라도 빠르게 복구할 수 있는 환경을 구축했습니다.











대댓글, 멘션, 검색

2월엔 운영 DB를 VPC 환경에 구축하여 외부에서 운영 DB에 접근하기 위해서는 권한이 있는 사용자만 접근을 허용할 수 있도록 환경을 구성했습니다. 대댓글을 개발하면서, 댓글, 대댓글의 페이지네이션 전략을 새롭게 구성했습니다. 멘션 기능을 개발했고, 멘션 기능을 사용하기 위해 유저의 닉네임을 검색하는 시스템을 구축했습니다. 마감 기한까지 시간적 여유가 많지 않았기에, ElasticSearch를 사용하지 않고 관계형 DB에서 full text search를 구현하기 위해 pg_bigm 모듈을 활용하여 LIKE 쿼리가 인덱스를 탈 수 있도록 환경을 구성했습니다. 이를 통해 빠르게 유저의 닉네임을 조회할 수 있는 환경을 구축할 수 있었습니다.









서버 성능 개선

3월엔 서버의 API 성능을 개선하는 작업을 진행했습니다. K6와 pinpoint를 활용하여 부하테스트를 진행하며 API의 TPS 성능을 검증했고, 서버의 성능을 테스트했습니다. API 성능을 개선하는 과정에서 실행계획을 분석하며 Index를 구성했고, API 호출 수를 줄이기도 하고, Nginx의 설정을 새롭게 도입하며 API의 TPS를 개선하기 위해 노력했습니다. 추가적으로 DB Replica를 구성하며 성능 최적화에 힘썼습니다. 스트레스 테스트를 진행하여 서버, DB의 CPU 사용량이 특정 수치 이상이 넘어가면 오토 스케일링 될 수 있도록 환경을 구축했습니다. 이를 통해 갑자기 트래픽이 많아지는 경우를 대비할 수 있었습니다.










서버리스 아키텍처

4월엔 안정적인 푸시 전송을 위한 서버리스 아키텍처를 구성했습니다. 푸시 이벤트가 발생하면, 서버에서 SQS로 이벤트 정보를 넘기고, SQS를 구독하고 있는 Lambda를 실행시켜서, 푸시를 전송할 수 있도록 로직을 구성했습니다. 이를 통해 비동기적으로 처리해도 되는 이벤트 로직들을 비즈니스 로직과 분리시킬 수 있었습니다. 그리고 Lambda Layer를 활용하여 Lambda에서 동일하게 사용하는 의존성을 함께 관리함으로써 Lambda 함수의 용량을 획기적으로 줄일 수 있었습니다. FCM의 Token의 생명 주기를 이해하며 토큰이 만료될 경우를 분석하고, 토큰이 만료되는 경우 어떻게 유저의 FCM 토큰을 업데이트할 것인지, 새로 생성된 유저의 FCM 토큰에 topic을 어떻게 다시 구독처리 할 것인지 등 FCM을 활용한 푸시 전송 로직을 구성했습니다.









데이터 시각화

5월은 서비스에서 신규 프로젝트 개발을 진행하며, 동시에 데이터가 흐르는 조직을 만들기 위해서 어떻게 해야 할까 고민한 시기였습니다. 운영 DB를 접근 권한이 있는 백엔드 개발자만 살펴볼 수 있었기에, 조직 내에서 데이터를 살펴보며 의사결정을 하기 어려웠습니다. 그래서 조직 전체가 데이터 드리븐한 의사결정을 하기 위해서, 먼저 조직이 문제 해결을 하는 과정에서 필요한 데이터는 무엇인지 살펴보고, 만약 추가적으로 수집해야 하는 데이터가 있다면 데이터를 어떻게 수집할 것이고, 데이터를 어떻게 분석할 것인지 전략을 수립하기 위해 노력했습니다. 당장 분석할 수 있는 데이터가 있다면 BI툴에 DB를 연결하여, 데이터를 시각화하는 작업을 구축했습니다.







출처: AWS



검색, 데이터 분석

6월엔 서비스에 통합 검색 기능을 도입했습니다. 닉네임 검색 서비스와 마찬가지로 빠르게 기능을 구현하는 것이 먼저라고 판단하여 pg_bigm을 활용하여 RDB에서 full text search를 구현했습니다. 그리고 유저가 어떤 키워드를 검색하는지, 실시간으로 데이터를 분석할 수 있도록 검색 로그 적재 아키텍처를 구성하여 데이터 실시간 로그 데이터 분석환경을 구성했습니다. Kinesis Data Streams에 데이터를 보내서, Streams에 Firehose를 연결하여, Firehose에서는 S3 저장소로 로그 데이터를 전송했습니다. S3를 Data Lake로 활용하여, ELT 환경을 구성했습니다. Glue Crawler를 활용하여 S3에 적재된 데이터를 테이블화 했고, Athena를 활용하여 쿼리를 진행할 수 있도록 환경을 구축했습니다. 마지막으로 Athena를 활용하여 조회한 데이터를 Quicksight 대시보드에서 데이터를 시각화하여 살펴볼 수 있도록 환경을 구성했습니다. 








개발자로서의 쓸모

개인적으론 사람이 빠르게 성장하기 위해 필요한 자세는 '간절함'이라 생각합니다. 작은 조직에서 큰 문제를 해결하기 위해선 조직의 구성원이 '다양한' 일을 '잘' 처리해야만 합니다. 일을 많이 해야 하는데, 심지어 일을 잘해야만 합니다. 당장 문제를 해결해야 하는데 어떻게 해결해야 할지 모르는 상태가 오더라도 지식을 빠르게 습득하여 서비스에 적용해야 했습니다. 만약 내가 문제 해결을 하지 못한다면 조직은 멈춰있어야 하기에, 간절한 마음으로 문제 해결을 하는 과정에서 성장할 수 있었습니다. 


가끔 '왜 일 하는가?' 생각하곤 합니다. 이번 상반기 동안 나의 쓸모를 증명하기 위해 치열하게 노력하는 과정에서 내가 열심히 할수록 조직에 도움이 되고, 결과적으로 나에게도 도움이 되었을 때 행복함을 느꼈습니다. 육아를 하는 이들의 문제를 해결하기 위해 열심히 노력하면서, 제가 성장할 수 있었습니다. 어쩌면 문제를 겪는 이들을 위해, 문제를 해결하기 위해 노력하는 조직을 위해 도움이 되기 위해 친절한 자세를 견지한 덕에 제가 성장할 수 있었다고 믿습니다. 


개발에 전념하던 어느 날 문득 이런 생각이 들었습니다. 문제 해결을 하기 위해서는 개발은 당연히 잘해야 하는데, 비즈니스를 만들기 위해서는 개발뿐 아니라 다른 분야에서 기여할 수 있는 것은 없을까? 생각했습니다. 일단 조직이 살아남아야 해결하고 싶은 문제를 계속해서 해결할 수 있다고 생각합니다. 선비라고 해서 전쟁이 났을 때, 공부만 해선 살아남을 수 없다고 생각합니다. 일단 외세의 세력을 물리치고, 그 후에 후일을 도모해야 합니다. 일단 먼저 살아남는 것이 중요할 수 있기에, 그럼 서비스의 발전을 위해 추가적으로 할 수 있는 것은 무엇이 있을지 고민했습니다.



















  

커뮤니티 비즈니스

문제를 해결하기 위해 무엇이든 할 수 있는 Problem solver가 되고 싶습니다. 문제 해결을 위해서라면 개발뿐 아니라, 다른 능력을 활용하여 문제를 해결하는데 도움이 될 수 있는 사람이 사람이 되고 싶습니다. 그래서 주말에는 조금씩 서비스 기획을 공부하며 조금씩 팀에 공부한 내용을 적용하기 위해 다양한 도전을 하고 있습니다. 





가게에서의 배움

주말 어느 날, 카페에서 노트북을 켜고 개발 일을 하고 난 후에 저녁으로 닭갈비를 먹으러 갔습니다. 허기진 마음에 음식만을 기다리고 있었는데, 들어가자마자 가게 사장님이 밝게 인사해 주시며 자리로 안내해 주셨습니다. 가게 안은 무척 청결했으며, 음식값은 저렴했고, 심지어 음식은 무척 맛있었습니다.







음식을 모두 먹고 음식값을 결제하고 나가는 길에, 사장님은 예전에 즐겨 먹던 아폴로를 하나 건네셨습니다. 가게에서 나오는 길, 다음에 이 동네에 온다면 꼭 다시 이 가게에 가고 싶다고 생각했습니다. 고객을 팬으로 만들기 위해서는 다양한 노력이 필요하구나 하며 집으로 돌아가는 길, 문득 '우리 육아크루 커뮤니티에서 고객들을 팬으로 만들기 위해 어떤 노력을 하고 있지?' 스스로에게 질문했습니다.


육아크루는 동네 기반 O2O 육아 커뮤니티입니다. 커뮤니티가 잘 운영되려면, 커뮤니티를 좋아하는 사람들이 모여야 합니다. 그럼 어떻게 해야 커뮤니티 비즈니스를 잘 운영할 수 있을까 고민했습니다.











디스콰이엇에서의 배움

커뮤니티 비즈니스를 잘 운영하기 위해서는 어떻게 해야 할까 고민해 보고자 디스콰이엇에서 진행하는 세션에 참여했습니다. 세션에서는 궁금한 점들을 많이 물어볼 수 없을 것 같아서, 별도로 디스콰이엇의 권도언 님에게 콜드 메일을 보내며, 궁금한 점들을 질문했습니다. 다행스럽게도 갑작스럽게 연락을 드렸는데도, 흔쾌히 귀한 시간 내어주신 도언 님에게 디스콰이엇의 커뮤니티 비즈니스 운영 노하우를 들을 수 있었습니다. 










커뮤니티도 마찬가지로 프로덕트이기 때문에, 고객들이 우리 프로덕트에서 보상을 얻을 수 없거나, 가치를 느낄 수 없다면 프로덕트를 사용하지 않을 것입니다. 그럼 커뮤니티에서 유저가 게시글을 작성했을 때, 유저에게 어떤 보상 및 가치를 제공할 수 있을지 고민해야 합니다. 이에 대한 답으로 우린 유저들의 내적 동기를 자극했습니다.  




도언 님은 커뮤니티 비즈니스를 운영하면서 얻은 훌륭한 인사이트를 많이 공유해 주셨습니다. 도언 님과의 커피챗 덕분에 큰 인사이트를 얻을 수 있었습니다. 육아크루 커뮤니티를 사용하는 육아맘, 육아대디들은 우리 서비스에서 어떤 보상을 얻고 싶어 할까, 그리고 우리는 사용자들에게 어떤 가치를 제공할 수 있을까 와 관련하여 지금도 끊임없이 고민하고 있습니다.








기획자로서의 쓸모

현재는 개발자 포지션으로 업무를 진행하고 있지만, 나름 치열하게 고민하며 서비스의 문제를 개선할 수 있는 혹은 유저의 불편함을 해결할 수 있는 기획서를 작성하여 팀에 공유할 수 있었습니다. 



가끔 어떤 사람으로 성장하고 싶은가와 관련하여 고민하곤 합니다. 지금은 이에 대한 답으로, '고객의 삶을 섬세하게 조직하는 개발자, 기획자'가 되고 싶다고 생각합니다. 우리 커뮤니티를 이용하는 고객의 삶을 섬세하게 조직하여, 그들이 겪는 문제를 보다 잘 해결할 수 있는 사람이 될 수 있도록 부단히 노력하고자 합니다. 



  

















팀에 보답하기 위해

곧 있으면 팀에 합류한 지 1년이 됩니다. 육아크루 서비스를 만들고 있는 다이노즈의 팀원들은 저의 도전을 늘 응원해 주시며, 저를 믿어주십니다. 팀원 중 누군가 어려움을 겪고 있다면, 함께 어려움을 해결하기 위해 노력하는 좋은 팀을 만날 수 있다는 것이 제겐 큰 행운이었습니다. 저를 믿어주는 팀원들에게 친절한 자세를 흩뜨리지 않으며, 감사함에 보답할 수 있는 사람이 되고 싶습니다.






ⓒSBS 출처





작으면서 아름답고, 평범하면서 위대한

개인적으로 조영래 변호사를 존경합니다. 당신의 글에서, 문득 남은 하반기를 어떻게 일하고 싶은지 생각했습니다.


  

아들에게

앞의 사진은 뉴욕의 엠파이어스테이트 빌딩이다. 아빠가 어렸을 때는 이 건물이 세계에서 제일 높은 건물이었다. 아빠는 네가 이 건물처럼 높아지기를 바라지 않는다. 세상에서 제일 돈 많은 사람이 되거나 제일 유명한 사람, 높은 사람이 되기를 원하지도 않는다. 작으면서도 아름답고 평범하면서도 위대한 건물이 얼마든지 있듯이 인생도 그런 것이다. 건강하게 성실하게 즐겁게 하루하루 기쁨을 느끼고 또 남에게도 기쁨을 주는 그런 사람이 되기를 바랄 뿐이다. 실은 그것이야말로 이 엠파이어스테이트 빌딩처럼 높은 소망인지도 모르겠지만.. 1990.1.18 






작으면서도 아름답고, 평범하면서도 위대한 건물이 얼마든지 있듯이, 네카라쿠배 같은 크고 멋진 앱도 좋지만, 육아크루 같은 작지만 아름답고 필요한 앱이 있을 수 있다는 것을, 시장에 증명하고 싶습니다. 우리 서비스의 쓸모를 증명할 수 있는 시간으로 남은 하반기를 보내려 합니다.








정신없이 문제 해결을 하다 보면, 때로는 주말에도 쉴 시간도 없이 한 달이라는 시간이 지나가버리기도 합니다. 가끔은 몸과 마음이 지칠 때도 있습니다. 때로는 방향성을 잃어버린 채, 왜 일을 하고 있는가에 대해 스스로에게 묻기도 합니다. 그럴 때마다 위의 다큐 영상을 보곤 합니다.




내가 하고 싶은 일, 내가 미래에 꿈꾸는 일들을 해나가고 있으니까 그 힘듦이 저에겐 너무 즐겁고, 재미있고 하고 싶어 집니다.
내가 내 인생의 가치를 어떻게 정하고 어떻게 살아가야 되지?라는 고민을 나는 조금은 해결해 가는 것 같습니다.




개인적으로는, 자신의 인생의 방향성을 찾아가며, 도전하기 위해 때로는 많은 것을 포기하며 수련하는 사람. 스스로 생의 의미를 부여하고, 어떻게 살아갈 것인가 하는 삶의 이유를 찾아가는 사람을 진정으로 멋있다고 생각합니다. 









남은 하반기에도 팀을 위해, 문제 해결을 위해 끝없이 도전하려 합니다. 어떤 도전을 했으며 그 도전을 왜 하게 됐는지, 도전을 통해 어떤 것을 얻을 수 있었는지를 정리하려 합니다. 때론 답이 보이지 않는 문제를 해결해야 될 때도 있을 겁니다. 그럼에도 무던히 포기하지 않고 견디며 해답을 찾기 위해 포기하지 않는 시간을 보내려 합니다. 만약 홀로 문제를 해결할 수 없다면 믿을 수 있는 팀원들과 함께 문제를 해결하며 함께 성장할 수 있는 시간을 보내려 합니다. 마지막으로 친절한 자세를 견지하며, 내 삶 주변에 있는 도전하는 이들에게 작게나마 도움이 될 수 있도록 시간을 보내려 합니다.


















마치며

문제 해결을 위해 도전하고 싶은 것들이 점점 많아집니다. 도전하고 싶은 욕심이 많아질수록 시간을 더 효율적으로 사용해야 했습니다. 누군가를 지키기 위해서는 성장해야 했기에, 도전을 위한 시간을 확보하고 싶어 포기하는 것이 조금씩 많아지고 있습니다. 그럼에도 고마운 이들이 생각날 때면 시간을 내어 전화로 안부인사를 전하곤 했습니다. 연말에 소중한 사람과 올 한 해 고생했다고 이야기할 수 있는 날이 오길 바라며. 이번 상반기 회고 글을 마무리하려 합니다.



가끔 개발을 막 시작한 이들에게, 혹은 개발자가 되기 위해 도전하고 있는 이들에게 연락을 받습니다. 새롭게 도전하는 이들에게 어떤 도움이 될 수 있을까 생각하다가 유퀴즈에서 화가 에드바르 뭉크의 일화를 들으며, 한 가지 영감을 얻을 수 있었습니다.






출처: tvN 유 퀴즈 온 더 블럭









뭉크는 힘든 삶을 살아오며 고통 속에서 살아갔지만, 반고흐를 보며 희망을 그려야겠다고 생각했다고 합니다. 아무리 힘들게 살았어도 포기하지 않고 계속 싸우고 있다고, 사람은 바뀔 수 있다고 말하고자 대학생들이 보는 곳에 희망의 그림을 그렸다고 합니다. 


뭉크의 일화를 들으며, 나도 이제 막 개발자가 되기 위해 도전하는 이들에게, 도전을 망설이는 이들에게 희망이 될 수 있었으면 좋겠다고 생각했습니다. 저도 아직 매우 부족한 사람이기에 누군가에게 섣부르게 조언할 수는 없을 겁니다. 하지만 나는 어떤 도전을 하고 있고, 힘듦을 겪더라도 포기하지 않고 계속해서 도전하고 있다고 말할 수 있도록 제가 경험한 내용을 꾸준히 글로 적으려 합니다. 그럼 언젠가는 제 글을 읽는 도전하는 이들에게 작게나마 위로 혹은 도움이 될 수 있지 않을까 생각했습니다. 



잊지 말자. 
인생의 어떤 순간, 어떤 문제 앞에서도 포기하지 않고 
내 호흡을 믿고 끝까지 이어나갈 때 비로소 우리의 세계가 확장된다는 것을.




사랑하는 당신이 편히 기대 쉴 수 있는 사람이 되기 위해, 아무리 바쁘더라도 고마웠던 이들에게 친절할 수 있는 사람이 되기 위해 남은 하반기도 정진하겠습니다.











참고 링크





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari