개요
꾸준히 좋은 글을 쓰는 습관을 기르고 비슷한 관심사를 가진 분들과 네트워킹을 해보고 싶어 글 쓰는 개발자 모임 글또
에 참여중이다. 운이 좋게도 이번 기수부터 글또콘
이라는 컨퍼런스를 개최한다고 해서 첫번째 글또콘에 참여할 수 있었다. 제 1회 글또콘은 지난 8월 25일 목요일 저녁, 역삼역 마켓컬리 오피스에서 열렸다.
글또콘은 총 4개의 세션과 세션이 끝난 이후 네트워킹 시간으로 구성되었다. 세션의 주제는 개발관련 주제뿐 아니라 삶(철학)과 관련된 주제, 글또와 걸맞는 글쓰기에 관련된 주제까지 다양하게 구성되었다. 아래는 세션을 들으며 정리한 내용들이다.
세션
변성윤님의 [어디로 가야하오 - 여럴분들은 삶의 철학이 있나요?]
일정상 성윤님의 세션은 앞부분을 놓쳐 발표자료를 보며 정리했다. 성윤님은 삶이 재미가 없어 시작한 게임에서 삶의 철학을 찾았다고 한다. 게임 캐릭터의 대사를 듣고 영감을 받았다는 성윤님의 철학은 놀랍게도 내가 작년에 우아한테크코스 한 달 생활기를 작성하며 느꼈던 감정과 굉장히 유사했다.
“나 제대로 성장하고 있나, 잘 가고있나?” 라는 생각보다 “내가 가는 길, 삶의 지도를 만드는 것“에 초점을 맞추자는 것이 성윤님의 철학이다. 삶의 지도를 정리하면 1) 자신을 되돌아 볼 수 있고, 2) 과거/현재를 파악해 미래를 설계할 수 있을 뿐 아니라, 3) 내게 중요한 의사결정 포인트, 내가 어떤 부분에 영향을 잘 받는구나를 깨달을 수 있다.
결국 ‘올바른 방향’으로 가는 것에 초점을 맞추기 보다는 일단 능동적으로 움직인 다음 그 과정을 회고하는 시간이 더 중요한 것 같다. 이렇게 되면 일단 실행에 옮기는 데에 필요한 준비가 줄어들기 때문에 야생학습이 가능해진다.
뿐만 아니라, 어떤 일을 하기 전에 그 행동을 취하는 것을 상상하고 가능한 결과를 시뮬레이션 해봄으로써 어떻게 해야 행복감이 많이 생길까를 정리할 수 있는 멘탈 시뮬레이션에 대해서도 설명해주셨다. 멘탈 시뮬레이션을 통해 행동의 결과를 미리 예상하면 예상치 못한 문제 상황에서도 다양한 해결방법을 떠올릴 수 있는 문제해결능력이 향상될 수 있고, 이후의 액션 플랜을 더 구체화시킬 수 있다.
개발자들의 컨퍼런스에서 삶의 철학에 대해 다루는 세션은 뜬금없다고 생각할 수도 있다. 하지만, 성윤님의 발표를 듣고 성장을 위해 무작정 스터디나 프로젝트만 하는 것보다는 가끔은 이런 생각들을 해야 마음까지 같이 성장하는 건강한 개발자가 될 수 있겠다는 생각이 들었다. 또, 당장 눈 앞에 보이는 기술 부채들을 해결하느라 이런 주제의 책을 읽거나 생각을 해볼 시간이 없었는데 이 발표를 통해 오랜만에 다시 개발자로서 삶의 철학에 대해 고민해볼 수 있었다.
김학건님의 [Airflow, Bad Practice 걷어내기]
학건님의 세션은 Airflow 도입을 고민하는 분들이 도입 전 반드시 알아야 할 Bad Practices 없이 Airflow를 사용하기 위한 방법에 대한 내용이었다.
Airflow는 Airbnb에서 만든 Workflow Management Tool로 학건님의 표현을 빌려 예쁜 젠킨스
라고 이해하면 쉽다. 직관적 UI, 낮은 진입장벽, Python 언어를 사용한 높은 자유도가 장점이지만, 그에 따른 부작용으로 관리를 제대로 해주지 않으면 산으로 갈 수 있다.
대부분의 경우, 점점 복잡해지는 파이프라인과, 시각적으로 관리하고 싶은 니즈를 해결하기 위해 Airflow 도입을 고민하게 된다. 하지만, 언제나 지나친 자유는 좋지 않다. Airflow를 가장 아름답게 쓰기 위해서는 세 가지만 기억하자.
- Python Operator의 역습
- Jinja Template을 최대한 사용하자
- 코드 중복을 조심하자 (ex. 복사를 위해 s3fs, boto3 등)
- 비밀번호와 같은 민감정보의 하드코딩을 주의하자 (ex. DB 연결 정보, api 호출 시 비밀번호 노출 등)
- Task는 심플하게
- 장애 대응을 위해 Task를 분리하자 (하나의 바구니에 달걀을 모두 담지 말자)
- 재실행 point 기준으로 분리 > 어디서 문제가 생겼는지 바로 알 수 있음
- Core Logic이 아닌 곳에서 문제 발생해도 모름
- 특히, Docker Image는 하나의 작업만
- 모두를 위한 Batch는 없다
- 명확한 기준을 세워, 역할에 맞는 권한을 부여 (Maintainer 권한 회수 + Test 추가)
최현구님의 [내가 테스트 코드에 집착하는 이유]
세 번째 발표는 우테코 3기 최고 아웃풋 현구님의 테스트코드가 왜 중요한가 (본인의 느린 작업속도에 대한 변명) 에 대한 내용이었다. 우테코 3기를 수료하고 현재는 맘편한세상을 만들고 있는 현구님은 작년 우테코 기간을 포함하여 지금까지 약 1,800개의 테스트를 작성했다고 한다. 그러다 보니 테스트코드 없이 기능을 구현할 때보다 시간이 두배로 걸리고 있다는 생각에 이 고민이 시작되었다. 하지만, 예상을 뒤엎고 현구님이 테스트코드를 작성하는 이유는 바로 “경제적이어서” 였다.
시간이 두 배로 드는 데 어떻게 더 경제적인걸까? 그 이유는 바로 개발이란 직업이 협업의 연속이기 때문이다. 혼자 하는 프로젝트가 아닌 이상, 내 코드를 내가 아닌 다른 개발자가 리팩터링하게 될 확률이 더 높고, 테스트 코드는 이런 상황에서 코드를 파악하는 데 드는 시간을 현저히 줄여준다. 내가 기능을 구현할 때 조금 더 시간을 들여 작성한 테스트 코드가 동료들의 시간을 크게 절약해주는 것이다.
더 나아가, 테스트 코드를 더 매력적으로 만들기 위해 현구님이 사용하는 다양한 방법들도 소개해주셨다.
- 특성을 나타내는 변수명을 사용한다
- 네이밍은 되도록 한글을 사용한다
- 가짜 생성자를 이용해 테스트에 중요한 파라미터만 강조한다
- 동료들의 이름이나 재밌는 문구를 넣어 리뷰어의 이목을 끄는 테스트를 작성한다
- 불필요한 테스트는 과감하게 생략해 필요한 테스트만 강조한다
신해나라님의 [개발 서적 우수 리뷰쓰는 꿀팁 공유]
개발 서적 우수 리뷰어가 되는 방법에 대한 내용을 다루는 세션인 줄 알았던 해나라님의 발표는 알고보니 책을 잘 읽는 법도, 독후감을 잘 쓰는 법도 아닌 “목적에 맞는 글을 쓰는 법“이었다. 한빛미디어 서평단으로 활동하고 계신 해나라님은 매달 선정하는 우수리뷰에도 여러 번 선정되신 경험이 있을 정도로 리뷰를 쓰는 꿀팁을 다양하게 가지고 계셨다.
요약하자면, 결국 출판사에서 돈을 들여서 서평단을 운영하는 목적이 홍보이기 때문에 그들의 니즈를 충족시키는 글을 작성해주는 것이 중요하다는 것이다. 즉, 목적에 맞는 글쓰기의 중요성을 강조하셨다. 홍보 관점에서 좋은 리뷰란 책의 내용들을 무작정 정리하기보다는 그 책의 장점과 대상독자, 책을 통해 독자들이 얻어갈 수 있는 부분들에 대해 작성해주는 것이다.
이 내용은 개발자의 글쓰기에 그대로 적용해볼 수 있다. 서평단 활동의 목적이 홍보이듯이 기술 블로그를 작성하기 전에 먼저 글의 목적과 대상 독자에 대해 고민해봐야 한다. 기술 블로그의 대상 독자는 언제나 내가 아닌 타인(몇 개월 후의 나도 결국 타인이므로… ㅎ)이라고 생각하고 가능한 친절하게 생각의 흐름을 잘 정리해 설명하는 것이 중요하다. 정리하자면, 도서리뷰와 기술블로그는 아래와 같이 비교할 수 있다.
세션이 끝나고
세션이 끝난 이후는 같은 직군의 개발자분들과 대화를 나눌 수 있는 시간이었다. 다양한 회사에서 다양한 연차의 분들과 대화를 나눠보니 ‘이런 회사에서는 이런 고민을 하는구나’, ‘이 정도 연차가 되면 이런 고민들을 하게 되겠구나’ 라는 것들을 느낄 수 있었다.
코로나 이후로 이런 오프라인 컨퍼런스에 참여할 기회가 없어 아쉬움이 많았는데 글또를 통해 이렇게 좋은 세션들도 듣고 네트워킹할 수 있는 시간도 가질 수 있어 재밌었다. 다음에 기회가 된다면 또 참여하고 싶다!!