일상

손승열(Son Seungyeol)

2023 SOMA 개발자 컨퍼런스 후기

2023 SOMA 개발자 컨퍼런스에 다녀온 후기를 남겨봅니다.

손승열(Son Seungyeol)
2023 SOMA 개발자 컨퍼런스 후기

👋 오랜만의 소마 행사

한동안 소마 수료생이라는 사실을 잊고 살고 있었는데 소마에서 개발자 컨퍼런스를 개최한다는 메일을 받았다. 메일에 소개되어 있는 연사들과 주제를 보니 흥미가 생겨서 덜컥 신청해버렸다.

결론을 먼저 말하자면 스스로에게 굉장히 유익했던 행사였고 세션 하나하나가 개발 세포를 톡톡 건드리는 듯한 주제들이어서 유익했던 내용을 간단하게나마 아래에 정리해보려고 한다.


🎤 기조강연

⭐ 컬리페이 CTO이신 조문옥님께서 "MSA 기술과 트렌드"라는 주제로 기조강연을 진행해주셨다.

마이크로서비스 및 MSA의 개념, MSA 기술의 필요성 등에 대해 말씀을 해주셨다.

커다란 애플리케이션을 개발하기 위해서는 MSA가 필수적이며, 마이크로서비스는 Cloud Native 아키텍처와 DDD(Domain Driven Design)를 지향한다고 한다. 또한 마이크로서비스는 "독립적"으로 배포가 가능해야 한다.

MSA에서 중요한 핵심 요소는 Messaging이라고 생각하신다는 말씀을 해주셨다. Kafka가 이에 활용할 수 있는 기술 중 하나이다.

또한 MSA는 polyglat하다는 특징을 갖는다.
🔖 Polyglat: 개발 시 다양한 언어를 사용하여 개발하는 것 또는 그러한 프로그램을 의미한다.

다음은 MSA 베스트 프랙티스 중 특히 중요한 부분이라고 한다.

  • 서비스 별로 스토리지와 DB를 분리 - MSA에서는 DBA가 필요 없음

  • 컨테이너(도커)로 배포

  • 마이크로 프론트 엔드

  • 쿠버네티스를 통한 서비스 오케스트레이션

MSA의 단 하나의 설계 원칙: Loose Coupling(느슨한 결합)과 High Cohesion(높은 응집)

다음은 MSA 기술의 트렌드로 말씀해주신 것들이다.

  • Data Mesh

    • 도메인 지향, 셀프 서비스 설계를 활용하여 분산형 데이터 아키텍처를 구축

  • 쿠버네티스

  • Serverless Architecture

    • 별도 서버나 인프라에 대한 고민 X

    • 개발자는 서비스 코드에만 집중


🎤 Session 1

⭐ 라인플러스 개발자이신 이효우님께서 "간단한 SQL 순서조작 튜닝을 통한 비용 절감 사례"라는 주제로 강연을 진행해주셨다.

SQL 튜닝은 DBA의 업무 중 하나로, SQL의 작동 원리에 대한 올바른 이해를 바탕으로 SQL을 작성, 튜닝함으로써 서비스의 품질을 높일 수 있다.

그렇다면 어떻게 SQL을 작성해야할까?
다음의 두 가지를 말씀해주셨다.

  • 필요한 만큼만 데이터를 조작하기 위한 노력

  • 주어진 리소스를 적재적시에 사용하기 위한 노력

또한 데이터 단위 조정(페이징 등)은 어디서 결정(조정)되어야 할까?
➡️ 이는 DB 자체에서 이루어지도록 해야한다고 한다.

왜냐하면 결국 앞 단에서 이루어질 수록 앞 단으로 넘겨주는 여러 뒷단들(백엔드, DB 등)에서는 데이터의 단위를 조정하지 않은 만큼 시간과 리소스를 소비하게 되기 때문이다.

또한 현업에서는 데이터 정렬로 인한 문제를 종종 겪는다고 한다. 이는 다음과 같은 이유 등에 의해서이다.

  • 정렬은 기본적으로 메모리에서 수행

  • But, 생각보다 많은 Sort SQL들이 Disk 리소스까지 사용

따라서 Sort 오퍼레이션을 발생시키는 구문을 최대한 제거/대체해야 한다.

이를 위해 인덱스를 이용하는 방법은 인기 있는 방법 중 하나이나, 당연히 최고의 대안은 아니라고 한다.

강연을 들으면서 느낀 것은 어떠한 기술을 사용하여 서비스의 품질(성능) 향상하기 위해서는 그저 "잘 작동하네"에서 끝내는 것이 아니라 해당 기술의 내부 로직(작동 원리)을 제대로 파악하여 적재적시에 활용하는 것이 중요하겠다는 것이다.

뒤의 강연에서 깨달은 것이지만, 당연히 이러한 과정이 해당 기술이 적용되는 서비스에 있어서 overengineering되지 않는 선에서 이루어져야 할 것이다.
🔖 Overengineering: 더 간단한 해결책이 동일한 효율성으로 문제를 해결할 수 있음에도, 더욱 정교하고 복잡한 방식으로 해결하고자 하는 것


🎤 Session 2

⭐ 카카오 개발자이신 이종욱님께서 "Apache Kafka를 이용한 Server application 개발 및 운영"이라는 주제로 강연을 진행해주셨다.

Apache Kafka는 다음과 같은 특징을 갖는다고 한다.

  • 이벤트 스트리밍 플랫폼 - 이벤트를 별도로 처리/저장하는데 사용

  • 메시지 브로커 시스템으로, 메시지를 발행/구독

  • 큐 형태로 동작

시스템 상의 다양한 프로세스 혹은 서비스는 이렇게 수집된 이벤트들 중 관심 있는 topic을 구독하여 사용한다.

또한 토픽 생성 시 데이터를 복제하여 데이터의 유실을 방지할 수 있다.

지표 수집 및 모니터링에는 오픈 소스 툴인 Prometheus를 활용할 수 있다. Prometheus는 다양한 타입의 지표를 주기적으로 수집한다.

그렇다면 왜 모니터링을 해야할까?
이는 다음의 이유 등에 의해 필요하다.

  • 문제가 있음을 미리 감지할 수 있음.

  • 자동화하기 위해서는 주기적으로 이에 근거가 되는 지표 수집이 필요

지표의 종류로는 다음과 같은 것들이 있다.

  • 하드웨어 사용량 - cpu, memory, network, disk 등

  • 애플리케이션 리소스 사용 지표 - thread 수, heap 사용량 등

  • 사용하는 도구에서 제공하는 지표

  • 개발 부서에서 필요해서 붙인 지표

Apache Kafka 관련 기술과 도구로는 다음과 같은 것들이 있다.

  • Kafka JMX - Apache Kafka 공식 자바 라이브러리 사용 시 JMX 활용 지표 수집

  • Burrow - Kafka lag checking

  • Grafana - 지표 시각화를 위한 도구

평소 Apache Kafka 기술에 대한 궁금증이 있었는데, 완전하게는 아니더라도 이 기술이 어디에 쓰이는 어떤 기술인지를 알게 된 것 같아서 상당히 유익한 시간이었다.


🎤 Session 3

⭐ 두들린 CEO이신 이태규님께서 "창업 후 2년만에 3,000개 넘는 고객사를 확보하기까지"라는 주제로 강연을 진행해주셨다.

개발에 대한 이야기보다는 연수생과 수료생들 중 창업을 생각하고 있는 사람들을 위한 이야기를 해주셨다. 이태규님 또한 소마 선배 수료생이시다보니 공감되는 이야기들이 있었고, 강연에 몰입해서 들을 수 있었다.

이태규님은 앞선 여러 실패를 딛고 그리팅이라는 채용관리솔루션으로 현재 회사를 성장시키고 있는데, 두들린을 "누구나 오고 싶어하는 크고 좋은 회사"로 만드는 것이 목표라고 하신다.

두들린의 강점이자 차별점은 고객의 요구를 빠르고 적극적으로 서비스에 반영함으로써 감동을 제공하는 것이라고 한다. 이를 통해 매우 높은 확률로 기존 고객의 유지 & 소개를 통한 기하급수적 성장을 가능케 한다.

강연을 들으며 두들린이라는 회사와 대표님이 참 멋지다는 생각이 들었다.

직접 드리진 못했지만, 항상 응원드린다는 말씀을 전하고 싶다.


🎤 Session 4

⭐ 쏘카 CTO이신 류석문님께서 "개발자로 지속성장하기 위해 필요한 핵심 요소"라는 주제로 강연을 진행해주셨다.

좋은 개발자가 되기 위해서는 "소프트웨어 장인 정신(Software Craftsmanship)"을 겸비해야 한다.

또한 좋은 개발자가 되기 위해선 개발뿐만이 아닌 사람을 이해해야한다.

개발을 할 때 과연 무조건 최고, 최선의 방법으로 개발(로직 구현)을 해내는 것이 중요할까?
➡️ 결국 중요한 것은 서비스를 사용하는 사람에게 가치를 전달하는 것
➡️ 그 과정에서 overengineering이 들어가지 않도록 경계해야 함.

동료들과 함께 일을 해나감에 있어 협업뿐만이 아니라 공유도 함께 이루어져야 한다.
➡️ 함께 똑똑해지는 공동체가 되어야 함.

나만 제일 똑똑하고 잘하는데, 주변은 모두 기술, 실력 등등이 부족하다면?
➡️ 나의 일이 많아지고, 주변 수습도 내가 해야할 확률이 높음.

하지만 주변이 함께 똑똑하거나 나보다 더 똑똑한 사람들이 많다면?
➡️ 내가 혹여 잘못한 일의 수습에 대한 도움을 받을 수 있고, 조언도 받을 수 있음.
➡️ 개발자로서 성장하기에도 더할 나위 없이 좋은 환경

매일 조금씩 자신의 몸값을 높이는 시간을 가져보자.

위의 Session 3와 함께 Session 4는 강연에 빠져들어 듣다보니 정리를 많이 하지 못해 기억에서 잊히기 전 머리에 남아있는 내용들을 정리해보았다.


🍁 소감

유익하고 흥미로운 내용들을 듣다보니 4시간이 순식간에 녹아버렸다.

궁금했던 기술과 생각해보면 좋은 주제들에 대한 강연을 통해 인사이트를 얻을 수 있었고, 개발자로서의 마인드셋을 생각해볼 수 있는 시간이 되어 뜻 깊었다. 또한 스스로의 지속적인 성장을 위해 노력하고자 하는 마음을 다시금 상기시킬 수 있었다.

이런 행사를 준비해준 소마 측에 큰 감사를 전한다.


Made with React, Gatsby and DatoCMS by @smastrom

Contribute or star on GitHub

© 2022-2023 손승열 for 🅒🅞🅝🅣🅔🅝🅣🅢

모두 좋은 하루 보내세요! 😊