파이썬 쓰는 사람들 다 모여라! - 파이콘 한국 2024 참여 후기

쩡뉴·2024년 11월 9일
1

파이썬

목록 보기
3/5
post-thumbnail

들어가는 글 💁‍♀️

바야흐로 가을은 컨퍼런스의 계절 🍂 올해는 이런 저런 기회로 컨퍼런스를 다니고 있다. 특히, 파이썬을 사용하고 있는 사람으로서 한 번 쯤은 가보는 파이콘에도 참여했다.
파이썬을 사용하는 또는 파이썬을 사랑하는 사람들이 모여 만든, 열정과 따뜻함이 느껴졌던 파이콘을 다녀온 후기를 작성해보고자 한다.

LLM의 성장과 파이썬 생태계의 변화, 파이콘 세션을 채우다 🐍

파이썬으로 백엔드 개발한 지도 어언 4년. 2010년 대 후반부터 파이썬이 점점 많이 쓰이는 추세였다 해도 체감을 크게 하지 못했었는데, 확실히 LLM 분야가 급물살 타면서 파이썬에 대한 관심도도 높아진 것 같다.

[스택오버플로우 질문 양으로 파이썬이 자바를 앞지르기 시작한 게 2017년]

AI 개발자가 서빙 서버를 직접 개발하는 경우도 생기면서 파이썬 백엔드 웹 프레임워크의 인기도 점차 높아지고 있었고, 요즘은 주변에서도 파이썬 백엔드 엔지니어를 꽤 많이 보고 있다. 그래서인지 올해의 파이콘에서는 Django와 FastAPI 세션도 여럿 있었다.

그 외에도 파이썬을 쓰는 분이라면 누구든 발표가 가능했기 때문에 흥미로운 세션이 많았다. (개인적으론 교사 분들 세션이 정말 궁금했는데, 듣고자 했던 것들과 겹쳐서 못 들었다 ㅠㅠ 다음 기회에...!)

세션 참관 후기 📝

1, 2일차 모두 행사장에 들리며 총 9개의 세션을 들었다. 백엔드 개발자이니 백엔드 세션을 최대한 들었지만 사실 세션들 하나하나가 흥미로워서 고민을 많이 했다. 그 중에서도 백엔드 개발자, LLM 초심자, 서비스 개발 도전자 관점에서 각각 가장 인상 깊었던 3개의 세션을 소개하고 개인적인 생각을 남긴다. (자세한 세션 내용은 파이콘 공식 유튜브에 업로드될 예정이라 간략하게 설명하겠다.)

🖥️ 백엔드 개발자로서 감명 깊었던 '해커의 관점에서 바라본 Django Framework'

연사자: 윤석찬님
한 줄 요약: Django, 쓸 만하고 좋은 프레임워크다! by 해커
세션 소개 페이지 링크

📍 세션의 내용

이 세션에서는 Django의 보안 관리 상태를 분석하고, 보안 전문가의 시선에서 발견된 프레임워크 단에서의 취약점을 설명해주신 자리였다.

  1. 백엔드 개발 시 프레임워크 단에서 크게 고려할만한 보안 사항이 있다.

    • XSS protection, SQL Injection Protection, CSRF Protection, Clickjacking protection
      • 해당 보안 사항들은 Django에서는 프로젝트 시작 시 이미 대비가 되어 있다.
  2. 다만 연사자 분이 최근 보안 취약점 몇 가지를 발견했다는 설명을 해주셨다.

    • Raw Query를 이용하는 경우에 SQL Injection이 생기는 경우
    • EmailValidator의 정규식을 이용한 DoS 공격이 이뤄지는 경우 등
  3. 그럼에도 'Django는 보안적으로 많은 부분이 우수하고 쓸 만한 프레임워크다!' 라는 결론

    • 그만큼 Django 커뮤니티가 신속하게 대응하기 때문에 안정화가 빠른 편...!
    • 현재 발견된 취약점들도 커뮤니티가 함께 해결해 나아가고 있다.
  4. 그리고 보안은 지속적으로 관심을 가져야 하는 것이니 개발자분들에게 이 부분을 당부하고 싶다는 한 마디로 세션 마무리를 하였다.

💡생각

💭 Django의 커뮤니티가 보안 문제도 잘 커버하고 있다는 점이 인상적이었다.

Django는 파이썬 웹 프레임워크 중에서도 커뮤니티가 큰 편이라서, 불편한 점에 대한 대응이 빠르다는 것을 이번에 한 번 더 알게 되었다. 그저 Django는 기능이 많아 그만큼 무거운 프레임워크라는 점 정도로만 알고 있었지만, 적어도 웹 서비스를 하는 데에 주요한 기능은 기본으로 제공해준 점이 Django이 널리 쓰이는 이유임을 조금이나마 체감했다.

이에 비해 Flask는 타 프레임워크에 비해 경량화된 만큼 이런 보안 사항은 하나하나 설정해줘야 한다. 특히 보안 설정을 위한 패키지들이 있긴 하지만, 의도적으로 쓰지 않는 한 관리가 어렵다. 이런 점에 있어서는 Flask도 기본적인 보안 사항은 자동으로 해결해줄 수 있었음 좋겠단 생각이 들었다.

💭 이번 세션을 통해 웹 개발자로서 고려할 보안 문제들 한 번 더 살폈다.

그동안 SQL injection 문제와 같이 DB에 관한 사항은 고려를 하고 있으나 CSRF에 대한 보안 문제는 크게 신경쓰지 않았다. 한 예로, 오픈 소스를 이용해 서비스 개발을 할 초기에 CSRF 관련 코드를 삭제한 경험이 있다. 제대로 된 보안 인증을 하지 못할 바에는 관련 패키지를 제거하자는 팀 차원의 결정이 있었기 때문이다. 폐쇄망 환경에서 한정된 유저만 사용하는 서비스였기에, 큰 문제가 없을 것이라는 판단이 이유였다.
그러나 이번 세션을 통해, 공개망에서 서비스가 운영된다면 인증되지 않은 유저나 해커의 접근을 막기 위한 보안 정책을 반드시 고려해야 한다는 점을 다시금 실감했다. 앞으로는 이러한 보안 문제에 대한 경각심을 가지고 작업에 임해야겠다고 다짐하였다.

🤖 LLM 초심자로서 감명 깊었던 '거의 모든 파이썬 이용자를 위한 거대언어모델의 활용'

연사자: 박상현님
한 줄 요약: LLM을 처음 접하는 이들에게 완벽한 기초 설명
세션 소개 페이지 링크

📍 세션의 내용

해당 세션에서는 LLM의 기초부터 프롬프트 엔지니어링에 대한 이야기를 쉽게 풀어냈다. 이에 'LLM의 정의', 'LLM과 대화하기', 'LLM과 일하기'. 이렇게 3가지 파트로 설명하였다.

  1. LLM의 정의

    • 거대 언어 모델(Large Language Model, 이하 LLM)이라는 명칭인 만큼, '언어 데이터'와 관련된 모델을 의미한다. 언어 데이터라 함은 규칙이나 문법이 존재하며, 이 규칙을 함수로 만든 것을 모델이라고 한다.
    • LLM의 가장 큰 목표는 단어들의 나열을 자연스럽게 예측하는 데에 있다. 예측에 가장 중요한 개념은 '단어 토큰'이다. 단어 토큰으로 다음 단어 토큰을 예측하여 이어 붙이고 그 다음을 예측하는 자기 회귀적인 방법으로 작동한다.
  2. LLM과 대화하기

    • LLM으로 대화를 함에 있어서 프롬프트를 넣어주면서 대화의 컨텍스트를 만들어 나가는 데에 목적이 있다.
    • RAG를 이용하여 미리 쌓여 있는 정보 검색을 하고 메모리를 이용하여 대화 정보를 저장하여, 컨텍스트로 만들 수 있다.
  3. LLM과 일하기

    • 이렇게 컨텍스트까지 갖춘 LLM이 탄생했지만, 이 LLM은 해당 컨텍스트가 진실인지 아닌지는 모른다. 잘못된 정보를 진실인냥 내뱉을 수 있는데 이를 할루시네이션이라고 한다.
    • 할루시네이션을 해결하기 위해서는, 행동과 결과를 이어주는 도구를 추가하여 교정을 한다.

💡생각

💭 LLM 관련 분야에 대한 핵심을 잘 짚어 설명했다.

Chat-GPT의 등장으로 인해 LLM 분야가 엄청나게 핫해지고 그에 따른 서비스와 고도화된 기술들이 쏟아져 나오고 있었지만, 사실상 그런 흐름에 follow하지 못했었다. 그럼에도 이 세션을 들으면서 LLM에 대한 전반적인 이해를 할 수 있었다.
할루시네이션 얘기를 들었을 땐, Chat-GPT가 출범한 초반에는 잘못된 정보로 답했던 것이 생각났다. 이게 한 편으로는 재미가 되고 또 한편으로는 아쉬움이 되기도 했는데, 이를 해결하기 위해 얼마나 연구를 했을까 싶어서 논문들이 궁금해졌다.

💭 LLM 관련 서비스를 해보고 싶다.

또한, 차후 프롬프트 엔지니어링을 이용한 서비스를 간단하게나마 만들어보고 싶었다. 어릴 때부터 언어에 대한 관심이 컸고, 그에 따라 IT 쪽에 자연어 처리 분야가 있다는 점에서 흥미로웠는데.. 언제 이렇게 폭발적인 발전을 했나 싶어서, 그냥 옆에서 보지만 말고 직접 경험하고 싶어졌다. 아이디에이션 얼른 해봐야겠다.

🔎 서비스 개발 도전자로서 감명 깊었던 '우리 모두는 스팸에서 자유로울 권리가 있다'

연사자: 이준범님
한 줄 요약: LLM을 이용하여 스팸 필터마저 자동화! 서비스 개발기에 대한 이모저모
세션 소개 페이지 링크

📍 세션의 내용

이준범님이 직접 개발한 스마트 스팸 필터 어플에 대한 이야기를 풀어내며, 1인 개발 경험 썰을 풀어주셨다.

  1. 이 어플을 개발하게 된 동기는 '자동화' 영역에서 시작되었다.

    • 예전에는 스팸을 거르는 기준은 단순했지만(예. 전화번호가 070이면 일반적으로는 스팸), 이제는 필터 종류가 너무 많아져서 사람이 하기 어렵게 되었다.
    • 이건 '결국 기계가 해야하지 않을까?'라는 생각으로, LLM을 사용한 스팸 필터 개발의 첫 시작이 되었다고 한다.
  2. LLM을 사용하기로 결정, 개발을 진행하면서 끊임없이 고민했던 사항들을 정리해주셨다.

    • 고민의 가장 큰 핵심은 비용데이터였다. 좋은 모델을 사용하려면 비용이 많이 들었고, 비용을 줄여 작은 모델을 쓴다면 성능 문제가 따랐다.
    • 그럼 성능 개선을 위한 데이터가 필요했고, 이 데이터에는 또 annotation을 해야 했다. 이에 따라 나온 결론 👉 annotation도 LLM으로 해결하자!
    • 적당한 모델과 데이터가 준비가 되면 지속적으로 training과 evaluating을 하여 스마트 스팸 필터에 적절한 모델을 만들었다.
  3. 모델을 만들고 어플로 실제 배포하는 데에 고려했던 사항들도 함께 소개되었다.

    • 단가를 고려하며 어떤 서버에서 앱을 운영할지 시행착오를 겪었고, scale out을 고려하다보니 on-device LM을 사용하는 것으로 귀결되었다고 한다.
      • 핸드폰에서 돌아가는 거라 서버 비용이 줄기 때문
  4. 1인 개발 서비스 운영 팁 및 현실적인 이슈에 대한 이야기들

    • 보안 이슈, low latency를 위해 지속적으로 고려해야 하고 이에 비용 문제가 다시 수면 위로 올랐다.
    • 1인 개발 시엔 자동화를 꼭 해서 생산성을 높히도록 한다. 혼자 모든 일을 하는 건 어렵기 때문. 현재 연사자는 모델 학습에 대한 자동화를 해뒀다.
    • 그 외 외부의 이슈로 인해 생기는 문제도 존재했다. (예. ios 자체의 버그)

💡생각

💭 서비스는 불편함을 해결하는 것에서도 나온다.

서비스는 특정 니즈를 충족시키기 위한 수단이다. 특히 연사자가 언급한 사례처럼, 불편함을 해결하는 방식으로 니즈를 충족할 때 큰 효과를 낼 수 있다.
이 세션에서는 사람이 하기에는 한계가 있는 영역(불편함)을 기계 또는 AI로 자동화(해소)하는 서비스를 제공한 점에 있어서 인상 깊었다. 특히, 이를 현시대의 뜨거운 감자인 LLM을 활용해 구현했다는 점에서 더욱 주목할 만했다.
서비스를 만든다는 것은 결국 인간이 충족하지 못한 부분을 채우거나, 더 나은 경험을 통해 가치를 창출하는 일이다. 나는 스스로 불편함을 느껴도 감수하는 편이었지만, 문득 이런 불편함을 해결하는 것이 곧 하나의 서비스가 될 수 있지 않을까 하는 생각이 들었다.

💭 1인 개발, 기술뿐만 아니라 서비스 경영에 대한 대비가 되어야 한다는 것

LLM을 어떻게 활용했는지, 그리고 어떤 모델을 고려했는지는 매우 흥미로운 주제였다. 하지만 이번 세션에서 가장 큰 영감을 준 부분은 1인 개발자가 서비스 운영 과정에서 겪은 경영적 고찰이었다.

서비스를 운영하려면 무엇보다도 비용 절감 방안을 반드시 고민해야 한다. 비즈니스를 한다는 것은 이익을 창출하는 목적을 지니며, 이익을 극대화하려면 필연적으로 비용을 줄여야 한다. 특히, 돈과 시간이라는 두 가지 관점에서 비용을 효율화하는 기술적 선택이 중요하다.

이번 세션에서는 돈의 비용을 절감하기 위해 작은 모델을 사용하는 기술적 해결책을 채택했고, 서버 비용을 줄이기 위해 on-device LM을 고려했다고 한다. 또한, 시간의 비용을 줄이기 위해 반복적인 작업은 기계로 자동화했다는 점이 돋보였다.

(1인 개발자에 국한되지 않더라도) 서비스를 제공하는 입장에서 비용 절감과 효율성 제고는 반드시 고려해야 할 부분이다. 당장은 내 역할(R&R)에서 직접적인 비용 결정 권한은 없지만, 시간의 비용은 내 스스로도 충분히 절감할 수 있다. 이에 따라 업무 효율화를 통해 기여할 수 있는 부분이 무엇인지 고민하는 것부터 시작해야겠다고 느꼈다.

글을 마치며 - 파이콘 한국 2024, 즐거웠다 🤗

  1. 다양한 분야의 세션을 들을 수 있는 것도 재미있었고, 후원 기업 부스에서 하는 이벤트를 경험하니 간만에 컨퍼런스 기분 느낄 수 있어서 즐거웠다. 그저 일을 바삐 해오는 것에 익숙했는데, 오랜만에 왜 기술을 알아야 하는지, 이 기술로 나는 무엇을 하고 싶은지를 생각해보는 시간이 되었다 🤓

  2. 요즘 컨퍼런스들이 다 그렇듯이 확실히 AI 관련 세션이 많았다. (파이썬 컨퍼런스니까 더 그럴만 하다) AI 쪽 공부는 잠깐 한 게 다여서 다 알아 듣기 어려웠지만, 다시금 공부하고 싶은 마음을 불태웠다 🔥

  3. 회사 분도 만나고 글또 분들도 많이 만났는데, 함께 이야기 했던 시간들이 소중했다. 데이터 분석가, 데이터 엔지니어, 백엔드 엔지니어, 사업가 등 각자 다른 직무로 일하고 있음에도 '파이썬' 하나로 대통합되는 것도 재미있었다! 라포를 형성하는 데에 프로그래밍 언어 하나가 계기가 된다는 것도 파이썬의 매력 아닐까 생각했다 😁

profile
파이썬으로 백엔드를 하고 있습니다. Keep debugging life! 📌 archived: https://blog.naver.com/lizziechung

0개의 댓글