본문 바로가기
개발일기/Seminar

삼성 개발자 컨퍼런스 2023

by 유주원 2023. 12. 10.

원래는 15일에 배민에서 개최하는 컨퍼런스를 신청했지만 너무나도 쉽게 떨어진 바람에 다른 컨퍼런스는 머가 없나 찾아보다가 삼성 개발자 컨퍼런스를 다녀오게 되었다.

 

거의 5년만에 컨퍼런스인 것 같다. 그리고 솔직히 삼성은 소프트웨어 회사가 아니라고 생각하고 있어서... 요런 컨퍼런스를 꾸준히 하고 있는 줄은 상상도 못했다.

 

 

DevOps Acceleration : 엔터프라이즈에서 동작하는 DevOps 모델 - 송주영

 

- 엔터프라이즈 회사에서는 왜 DevOps가 잘 안될까란 주제를 가지고 이야기를 시작한다. 

- 100명 이상이 존재하는 회사를 엔터프라이즈 회사라고 하며, 엔터프라이즈 회사에서의 서비스는 복잡하고 팀간 단절이 존재한다.

- 잘못된 결정을 내리고 잘못된 결과를 도출하지만 그게 잘못된 건지를 모르고 있다.

- 그럼 어떻게 해야 하나?

  - single threaded leader가 되자.

    - 아랫 사람에게 업무 배분만 하는 리더가 아니라 자기가 직접 프로젝트를 이끌 수 있는 리더가 되는게 중요하다.

    - 이 말은 맞는 것 같다. '우리 리더는 개발을 못해.' 이런 생각을 가지게 되면 리더를 잘 안 따르게 되는 것 같다.

  - 명확한 기준을 제시하자.

  - 투명성 있는 조직을 만들자.

    - 업무의 문서화. (항상 축적하고 측정하라.)

    - 디자인 문서 만들기

       - Motivation : 왜 이 프로젝트를 하게 되었는가?

       - Proposal : 이 문제를 어떻게 해결할 것인가?

       - Rejective alternative : 다른 대안은 왜 거부당했는가?

       - tradeoff

  - 팀원들의 성장을 항상 돕는다.

    - 어떻게?? 일단 절벽으로 밀기.. 하지만 올라올 수 있는 방법은 알려주기.

    - 팀이 아무리 힘들어도 함께 할 수 있을 것 같은 능력 있는 동료만 채용하기.

 

결국 발표자는 훌륭한 DevOps 모델은 모든 팀의 성장을 돕고, 함께 성장해서 모두 상향평준화 되는 것이 훌륭한 DevOps 모델이라고 말하고 있다.

일단 해당 세션에서는 single threaded leader와 디자인 문서 만들기 (항상 축적하기) 가 현 업무를 하는데 있어서 크게 와 닿았다. 나 같은 경우도 지금 일하고 있는 팀에서 회사 문제로 인해 반 이상 이직을 하게 되었는데, 그동안 만들어 놓은 적절한 문서가 없어서 해당 프로젝트를 이해하는데 크게 어려움을 겪었던 기억이 있었고, 이로 인해 문서 축적의 중요함을 실감하고 있었다.

 

대규모 트래픽 속에서 무중단 클라우드 인프라 업그레이드 아키텍처 소개 및 경험기 - 김제민

 

- 해당 세션을 통해 삼성에서 어떤 식으로 서비스가 구성되어 있는지와 삼성 account 서비스가 2.7 million/s나 되는 트래픽 서비스였다는 점을 알 수 있어서 좋았다. 2.7 million이라니 ㅋㅋㅋㅋ 일 쿼리 1000만만 되도 대용량 서비스라고 생각했었는데, 새삼스럽게 삼성이 소프트웨어 측면에서도 대단하다고 생각했다. 삼성이 아니라 아마존이 대단한건가 ㅋㅋ

- 그렇다면 과연 2.7 million에 대해 무중단 클라우드 업그레이드를 어떻게 했느냐?

  - 일단 기존에 동작하고 있는 cluster 이외에 업그레이드 해야 할 신규 cluster도 새롭게 생성을 한다.

  - 트래픽 전환은 과연 어떻게 할 것인가? 두 가지 방법을 생각함.

     - proxy를 전환하자.

       - proxy 서버에 과도한 트래픽이 몰릴 것이다.

     - dns 정보를 바꿔 줌으로써 트래픽을 전환하자.

       - 이 방법을 선택함.

- 결국 특별한 기술이나 아키텍처가 있어서 그걸 이용해서 바꿨다기 보다는 일반적으로 생각할 수 있는 방법으로 무중단 클라우드 업그레이드를 진행했다고 판단되었다. 하지만 2.7 million/s 서비스를 무중단으로 바꿨다는 그 경험에 대해서는 박수칠 만 한 것 같다.

 

Agile에 안정성을 담기 위한 CI/CD 전략 - 황연성

 

- 요새 CI/CD 전략에 관심이 많아서 관심 있게 들어본 세션이다. 생소한 단어들이 많이 나와서 나중에 날잡고 찾아봐야 할 것 같다.

- Dora Metrics를 활용해서 DevOps 성과를 측정했다.

   - 배포 주기 같은 기타 성능 지표가 있고 이 지표를 기준으로 DevOps 성능 측정을 진행하는 매트릭스 인 것 같았다.

- 배포 전략은 Shift Right testing을 적용했다.

   - Shift left testing (개발 단계에서 테스트 진행, 커밋 시마다 unit test 진행) 을 하지 않고 Shift Right testing (integration test) 진행

   - newman이라고 하는 postman의 command line tool 을 pod로 구성한 후, pod에서 각 test case를 실행함으로써 api 테스트를 진행했다.

     - newman의 경우 json export가 어려워서 rest assured로 integration test tool을 변경함.

- dev, stage, prod 환경 이외에 qa란 환경을 새롭게 추가 

   - qa에서는 ci로 인해 매일 최신의 코드가 적용

   - qa에서 integration test가 통과한 경우에 대해서만 stage로 배포

- github action을 도입함으로써 ci/cd 파이프라인 구축

- argocd 적용

   - helm chart로 관리하고 있었는데, 하나의 repo에 대해 모든 value가 저장되기 때문에 human error가 발생하고 그로 인해 argocd로 도입함.

- terraform 적용

  - terraform이 몬지 잘 모르겠음.

  - terraform visual을 사용해서 비주얼화 함.

 

완벽한 프로그래밍 언어를 찾아서: 모조(Mojo)가 뭐죠? - 이바로슬

 

- 모조란 언어에 대한 설명이었는데, 일단 나같은 경우엔 마이너한 언어에 그렇게 관심을 가지는 편이 아니라서 그냥 대충 들었음.

- 그냥 이런 언어도 있구나 정도로 알고 있으면 될 것 같다.

 

비정형 데이터 잘 다뤄보기: 코드 객체지향적으로 구현하고 최적화하기 - 박순영

 

- 카카오 모빌리티 분이 오셔서 설명하셨다. 비정형 원 데이터를 몽고디비에 저장하고 해당 몽고디비에 있는 데이터를 자바 객체로 만들어서 사용하는 구조인 것 같았다. 일단 원장 데이터를 몽고디비에 넣는 방식이 신기하긴 했고, 몽고디비에 넣으면 이게 자바 객체로 자동 변환을 해주는 장점이 있어보였다. 

- 우리 셀 같은 경우에는 kafka로 데이터를 저장한 다음 flink나 spark streaming 등으로 실시간 처리를 하고 있는데, 위의 방식 같은 경우에는 실시간 데이터 처리는 아닌 듯한 느낌을 받았다.

- 발표자는 몽고디비에서 객체 생성 시 불필요한 자바 객체가 생성이 되거나 자기가 원하는 형태로 생성이 안되어 있어서 그걸 수정한 케이스에 대한 설명을 해주었으나.... 몽고디비 사용이 전무해서인지 집중해서 듣지는 않았다.

 

모두가 함께한 성공적인 리펙토링 데이 - 임민승

 

- 리펙토링에 대한 필요성은 개발자라면 누구나 공감할 단어인데, 리펙토링 데이란 개발 문화에 대해서는 처음 들어봐서 신기하기도 하고 재미있기도 했다.

- 해당 발표자가 속한 조직에서는 매 주 금요일을 리펙토링 데이로 잡고 그 날은 모든 업무를 리펙토링만 전념하도록 문화를 잡았다고 한다. (그게 되나?????)

- 그라운드 룰은 자율 투표로 설정하였고 아래와 같았다.

 - 아침 회의를 통해 목표 설정

 - 오후에 진행 내용 공유 및 회고  

  - 잘했던 내용 공유

  - 추가 고민이 필요한 사항 정리

- 위의 리펙토링 데이를 진행하면서 아래와 같은 시행 착오를 겪음

 - 금요일은 휴가나 일찍 퇴근하는 사람이 많아서 만나서 회의하기가 힘들다. (목요일로 변경)

 - 업무량 산정이 어렵다

- git branch 전략은 git-flow를 사용함.

- 요건 우리도 한번 도입하면 괜찮을 것 같다.

 

플랫폼 성능 분석의 모든 것 - 이평화

 

- guider란 오픈 소스 소개. (발표자가 직접 만든 오픈소스임)

- 일단 해당 툴을 사용하려면 사용법을 잘 알아야 할 것 같고, 터미널 환경의 ui 방식이라서 쓰기는 좀 불편할 것 같음

 

오픈소스를 활용하여 내 프로젝트에 AI 기술 적용해 보기 - 김진현

 

- 위 발표도 거의 대부분 사용하고 있고 그렇게 새로운 내용의 발표는 아니었다.

- 내가 원하는 AI 모델 발굴은 아래의 사이트를 활용하면 좋을 것 같단 정도??

  - https://paperswithcode.com 

 

Papers with Code - The latest in Machine Learning

Papers With Code highlights trending Machine Learning research and the code to implement it.

paperswithcode.com

  - https://hugginface.co 

 

https://hugginface.co

 

hugginface.co

- chatgpt가 등장하면서 hugginface도 이제는 활용도가 많이 사라진 것 같긴 하지만, 연구용이나 학술용으로는 그래도 아직까지 많이 사용되는 것 같다.

 

대부분 내가 생각한 수준의 컨퍼런스였기에, '와 이런 기술이 있었어??' 이런 느낌은 없었다. 하지만 삼성 개발의 문화를 들어볼 수 있었단 점은 좋은 경험이었던 것 같다.

올만에 컨퍼런스에 참여하니 피가 도는 느낌이다.