Corca Medium 아카이브

중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디

2023-04-13백승윤 (ML Engineer)

커리큘럼과 스터디 세미 코르카는 팀원들이 업무에 보다 빠르게 적응하고, 다양한 방법으로 협력하기 위해 , 나 를 운영하고 있습니다!

세미나와 커리큘럼에 대한 글은 아래에서 만나보세요!

세미나 매니아, 코르카

중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디 본문 이미지

코르카의 세미나 문화를 소개합니다

medium.com 코르카 신입 엔지니어를 위한 커리큘럼 코르카 테크 팀의 신입 엔지니어 커리큘럼을 소개합니다.

medium.com 그 중에서도 코르카 팀원들은 끊임없이 성장하고자 하기에 자발적으로 스터디를 꾸리거나 대회에 참여해왔

스터디 분산시스템 스터디 파이썬 스터디

습니다. 그동안 CUDA , 가 진행 되었고, 가장 최근 진행 중인 를 오늘 의 블로그 주제로 다뤄보고자 합니다!

스터디의 배경 파이썬 스터디는 저의 가벼운 제안으로 시작되었습니다. 파이썬을 가장 메인으로 사용하여 프로그래밍을 해 왔지만, ‘내가 정말 파이썬에 대해 완벽하게 알고 있을까?’ 라는 질문에 확실하게 그렇다고 대답하기가 어려 웠습니다.

빠른 데이터 분석이나 모델 개발을 하는 데에 큰 강점 안정적인 프로덕트를 개발하고 유 파이썬은 이 있지만, 지 및 보수가 필요할 때는 파이썬이 가진 단점 이 하나씩 보이기 시작했습니다.

약타입 여러 단점 중 가장 아쉬웠던 점은 파이썬이 이라는 것이었습니다. 변수를 선언하고 값을 지정해줄 때, 변수의 타입이 따로 없기 때문에 한 변수가 정수가 되었다가 문자열이 되었다가 배열이 될 수도 있었습니다.

편하지만 자칫해서는 큰 오류를 가져올 수 있는 부분이었죠.

a = 3 a = "hello" a = [1,2,3] 그런 이유에서 내부적으로 typing을 도입하여 함수의 argument와 return value의 type을 지정해줌으로써 보 다 안정적인 코드를 작성하려고 노력했습니다. 하지만 더욱 더 안전하고 깔끔한 코드를 짜고 싶다는 욕심이 계속 생겨서 파이썬 공부를 제대로 시작해야겠다는 다짐을 했습니다!

스터디의 시작

추천 받은 Fleunt Python 어디서부터 어떻게 공부를 시작할지 찾아보다가, Fluent Python이라는 책을 추천 받았고, 코르카에서 팀원 들과 함께 스터디를 하면 더 좋을 것 같다는 아이디어가 떠올랐습니다. 코르카에도 저처럼 파이썬을 더 깊게 파보고 싶은 사람이 분명 있을 것 같다는 확신이 들었거든요! 그렇게 파이썬 스터디를 열겠다는 공지를 슬랙 채널에 올렸고, 무려 5명의 팀원들이 참여 의지를 밝혀주셨답니다!

슬랙에 올린 파이썬 스터디 공지 파이썬 스터디는 매주 1시간씩 돌아가면서 맡은 1-2 챕터의 내용을 발표하고 어떻게 우리 프로덕트에 반영해 서 코드를 개선시킬 수 있을까 활발한 논의를 하고 있어요. 파이썬이라는 언어를 보다 깊게 공부하면서 퀄리 티 높은 이해도에 도달할 수 있는 시간을 가지고 있습니다!

중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디 본문 이미지

파이썬 스터디의 커리큘럼 제가 발표했던 부분에서 굉장히 흥미로웠던 내용을 하나 공유해볼까 해요.

여러분들은 x = x + 3 과 x += 3 은 같은 뜻을 가진다고 생각하시나요?

스터디를 하기 전에는 x += 3 이 그저 x = x + 3 을 보다 간결하게 작성한 것인줄 알고 있었는데요. 알고보 면 두 코드는 각자 다른 method를 호출한답니다. x += 3 은 __iadd__() 을 호출하고, x = x + 3 은 __add__() 를 호출하게 돼요. 정말 신기하지 않나요?!

또 하나 코르카 테크팀을 떠들썩하게 했던 재밌는 예시를 들어볼게요.

중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디 본문 이미지
중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디 본문 이미지

두 개의 Output을 맞춰보세요!

준홍 님이 올려주신 화제의 문제 정답을 알려드리기 전에, 여러분도 답이 무엇일지 한 번 생각해보세요!

정답은 바로 입니다

[1], [1, 1] . 이렇게 되는 이유는 sum_list의 __defaults__ 값이 mutable한 list로 선언 이 되었고, a.append(1) 을 할때, __defaults__ 에 1이 들어가게 되면서, 나중에 이 class로 새로운 object를 만 들 때, __defaults__ 가 [1] 로 생성이 되기 때문입니다. 스터디에 참여한 팀원 모두 이런 파이썬의 신기한 측 면을 마주하고 충격에서 헤어나오기 힘들었답니다! 더불어 이 문제를 통해 최대한 default parameter로

mutable object를 지양해야 한다는 큰 깨달음을 얻을 수 있었습니다.

이런 케이스들을 스터디 외부로도 꾸준히 공유했고, 파이썬에 대한 팀원들의 흥미를 더 이끌어낼 수 있는 재 미있는 시간이었습니다.

스터디의 효과

중요한 건 꺾이지 않는 배움의지. 코르카 파이썬 스터디 본문 이미지

이번 스터디를 통해서 정적 타입 체커인 Mypy를 알게되어서 바로 도입을 했어요. 그 결과 보다 더 정확한 코 드를 짤 수 있게 되어 개발 퀄리티가 더 높아졌답니다!

실제로 프로덕트에 적용하여 즉각적으로 개 스터디에서 공부한 것이 재미와 흥미를 느끼는 것에 끝나기보다

선되는 모습을 지켜볼 수 있다는 점 이 코르카 팀원이 더 열정적으로 참여할 수 있는 원동력이 되는 것 같습니 다.

실제로 파이썬 스터디를 시작하고 난 후, 코드리뷰의퀄리티가올라갔고 1) 우리프로덕트에반영되는코드또한더 하고 하게작성

총 6명이 모여 파이썬 스터디를 시작한지 2달 정도 지난 시점에서 돌이켜 생각해보면 긴 시간은 아니었지만, 우리는 벌써 새로운 것들을 많이 배우게 된 것 같습니다. 더 꾸준히 공부해서 파이썬을 활용하여 보다 퀄리티 높은 코드를 짤 수 있는 우리들이 되려고 합니다!

우리가 살아가는 세상을 AI 기술로 변화시키는 팀 Corca는 고도화된 기술력과 기획력을 토대로 새로운 가치 를 창출하고 있습니다.

Corca의 여정에 함께하실 분들은 코르카 채용페이지를 확인해주세요!

기술 발전의 혜택을 모두가 누리게 하여 인류 문명의 발전에 기여하는 코르카