왜 Python으로 서버개발 하고 있어요?

수많은 질문세례

Featured image

왜 Python으로 서버개발 하고 있어요?

근래 제가 가장 많이 들은 질문 중 하나입니다.

Java라는 굳건한 언어를 놔두고, 굳이 채용 풀이 적은 Python을 주력 언어로 서버개발을 하고 있는 저를 신기하게 보시는 분들이 주변에 좀 계시는 것 같습니다.

그래서 오늘은 이에 대한 이야기를 해보고자 합니다 :>

대학 시절에 접한 유일한 언어

일단 저는, 비전공자입니다.

영어영문학과를 졸업했고, 심지어 부전공으로 예술기획 쪽을 이수했습니다.

아무래도 개발쪽과는 거리가 좀 있는 과를 졸업했죠.

그럼 어떻게 개발을 시작했느냐… 한다면..

스근스근 거슬러 올라가, 대학 1학년 때인 15년도 당시, 학과에 새로운 교수님이 오셨었는데, 그 교수님께서 영문과도 새로운 시야를 넓혀야 한다면서 “영어와 컴퓨터” 라는 코딩과 관련한 전공과목을 개설하셨었습니다.

영문과는 코딩을 잘할 수 있는 모든 조건을 갖추고 있다! - 모 교수님

해당 과목은 python2로 영문학 작품을 분석하고, 해당 과정을 통해 익힌 기본 문법으로 심심이(엘리자)를 만드는.. 지금 생각해보면 영문과에 있어 정말 혁신적인 과목이었습니다.

그리고 게임을 사랑하고, 또 만들고 싶었던 한 사람으로서 이 과목은 피해갈 수 없는 숙명이었습니다.

저는 정말 자연스레 해당 과목을 수강했고, 그 때 처음으로 python이라는 친구를 만났습니다.

성적도 잘 나왔고, 괜찮았습니다.

종강한 이후에는 해당 교수님이 따로 연락주셔서 코딩 해볼 생각 없냐 라고 하셨었는데.. 결정을 내릴 여유도 없이 군대로 떠났습니다.

돌아와보니 교수님께서는 다른 학교로 떠나셨구요 :<

자연스레 코딩도 python도 잊혀질 찰나, 학교에 새로운 바람이 부는지 교양 과목에 블록코딩이라는게 생겼었습니다.

python도 해봤으니, 이건 쉽겠다! 싶어서 성적을 딸 목적으로 해당 과목을 이수했는데… 생각보다 재미가 있었어요.

이때 쯤 부터 슬슬 코딩에 관심이 갔던 것 같습니다.

근데 그저 관심만 갔을 뿐, 교내에 비전공생이 이수할만한 코딩 관련 과목들이 많지가 않았습니다.

그리고 무엇보다, 이제 취업을 걱정해야 하는 학년에 전공과 관련되지 않은 것을 익히기에는 리스크가 너무 컸습니다.

그래서 저는 무던한 다른 영문과생들 처럼, 취업에 도움될 부전공 하나와 함께 졸업절차를 밟았습니다.

그런데 저는 졸업 전에 개발자로 취업했습니다.

아마 이 글을 읽고 있는 여러분들은 이 시점에서 으잉!? 하셨을 것 같습니다.

그리고 아마 이렇게 생각하고 계실 것 같아요.

아니, 분명 무던하게 졸업 절차를 밟고 있다고.. 했었고 뭔가 특별한 것도 없었는데 갑자기 졸업 전에 개발자로 취업했다고..?

여기에는 조금 묘한 스토리가 있습니다.

저는 군 전역 이후에, 한 인공지능 IT 회사에서 1년 정도 알바를 했었습니다.

복학을 위해 자연스레 그만뒀었는데, 그 이후에 감사하게도 저를 좋게 봐주셔서 가끔 방학 시즌에 짧게짧게 다시 알바를 하러 돌아가고는 했었습니다.

그런데 그렇게 가끔씩 돌아가던 중, 제가 일하던 팀에서 백엔드 서버 개발자를 필요로 하고 있다는 소식을 들었습니다.

지금 와서 생각해보면 그때 무슨 바람이 불었는지…

지원했습니다.

마침 python을 사용할 수 있는 사람을 뽑고 있었고, 다행히 저를 좋게 봐주시는 분들이 많았어요.

조건부 합격을 받았습니다.

아무것도 없는 사람을 덜컥 뽑을 수는 없으니, 3개월 동안 주어진 과제를 얼마나 수행하는지 보고 그 이후에 합불여부를 결정하는 방향으로 진행됐습니다.

다행히도(?), 나름 적성에 맞았는지 3개월 뒤에 합격 여부를 받고 정규직으로 전환 되며 졸업 전에 개발자가 되었습니다.

그리고 당연하게도, 과에서는 그 누구보다 이레귤러가 되어서… 한동안은 뜨거운 감자같은 인간이었습니다.

당장 내가 할 수 있고, 돈을 벌 수 있는 언어

아마 위의 이야기를 쭉 읽으시면서 느끼셨겠지만, 저는 지금 당장 유의미하게 할 수 있는 언어는 python 뿐입니다.

지금 같은 주니어 레벨의 저에게, “왜 python을 쓰고 있어요?” 라고 물으신다면, 제가 지금 회사에서 요구하는 생산성을 맞출 수 있는 언어는 python 뿐이기 때문입니다.

하지만 이건 현실적인 이야기이고..

관점을 약간 틀어 대답을 해보고자 합니다.

Python도 제대로 모르는 상태에서 다른 언어로 옮겨가는 것은 이르지 않을까?

이건 저만의 개인적인 생각입니다.

Python에 대해서도 제대로 알지 못하는 상태에서, Java라는 언어를 병행해 공부하는 것은 뭔가 이도저도 아닌 사람이 될 것만 같다는 불안감이 있습니다.

그래서 지금의 저는, Python에 대해 더 집중하는 방향으로 나아가고 있습니다.

단, Python이라는 언어를 공부하되, 언어에 귀속되지 않는 생각을 하기 위해, 항상 폭 넓게 적용될 수 있는 이론들을 Python에 붙여서 생각해보려고 노력하고 있습니다.

그래서 지금 제가 학습하고 있는 방법은…

지금까지 너무 추상적으로만 이야기하게 된 것 같습니다.

좀 더 세부적으로, 지금 제가 학습하고 있는 방법에 대해 이야기드리자면…

저는 지금 Java와 Python의 언어적 차이와 그 차이에서 발생하게 된 구현의 차이에 집중하고 있습니다.

간단하게 예를 들자면…

OOP (객체 지향 프로그래밍) SOLID 원칙을 구현함에 있어 Python과 Java는 어떠한 차이가 있고, 해당 차이로 인해 어떤 것들이 문제가 될 수 있는지에 대해 공부하고 있습니다.

궁극적으로는 Java가 지닌 장점Python이 지닌 장점을 명확하게 파악할 수 있는 시야를 가지게 되어서, 프로젝트에 적합한 각 언어들의 장점들만 골라 슬기롭게 서버를 구현할 수 있는 경지에 오르고 싶습니다.

아직은 멀고도 멀었지만요


복잡하고도 추상적인 이야기들이 길어졌습니다.

중간에 논지를 벗어난 이야기들이 많이 나온 것 같지만..

일단은 그래도 최대한 제가 전달하고자 했던 이야기들을 두서없이 적어보았습니다.

나중에 깔끔하게 정리할 수 있을 때 한번 정리해야 할 것 같아요.

오늘도 그럼 어김없이 제리짤과 인사드리겠습니다.

다들 행복하세요 :>

myimage