"글로벌 IT 기업 경험 공유" 특강 후기

juhyeok01·2024년 9월 21일

일기

목록 보기
3/4

학교 비교과 프로그램에서 열린, SW이론교육 취업역량강화 특강을 듣고 난 후기를 정리하려고 합니다.

특강을 진행해주신 강사님은 네이버, 카카오, 페이스북에서 백엔드 개발자로 경험 후 현재는 스타트업에서 근무중이신 서지연 개발자 님이십니다.

강의가 토요일 오전에 진행되어 다들 피곤하다보니,지루하고 진부한 얘기보다는 주니어 시절부터 현재에 이르기까지의 개발자 경험들을 소개해주셨습니다. 그 중에서 인상적인 내용들만 골라서 후기로 남겨보려고 해요.

✅ 컨퍼런스 경험


강사님은 개발 공부를 시작했을 때 부터 DevGround 컨퍼런스를 매년마다 방문하셨다고 합니다. 초창기에는 컨퍼런스를 구경하면서, '아 나도 저런 자리에서 발표를 할 날이 올까?' 라는 생각을 했는데, 이후 2021년도에 실제로 발표자로 컨퍼런스를 진행하셨다고 합니다. 이후에 개발자 활동을 하면서 국내 뿐만 아니라 해외 여러 컨퍼런스를 참가하고, 많은 기업도 탐방하면서 커뮤니케이션을 늘려나갔다고 합니다.

이 부분에서 저도 컨퍼런스를 많이 다녀봐야겠다고 느꼈습니다. 왜냐하면 양질의 정보를 얻기 힘들었기 때문이죠. 현대 사회에서 커뮤니티가 활성되고 정보의 호수의 세상에 살고 있기는 하지만, 오히려 방대한 양의 정보들로 인해 어떤 정보가 맞는 정보인지 선택하기 어려웠습니다.

또한, 학교 생활만으로는 개발 커뮤니티를 형성하는데 한계가 있다고 느꼈습니다. 물론 학교 내에서도 정말 열정적이고 미래의 목표를 가진 동료들도 많지만 극히 일부라고 느꼈기 때문에, 성장하는데 적합한 환경은 아니라고 개인적으로 느꼈습니다. (물론 혼자 개발하면서 뛰어나신 분들도 많습니다..! 그래도 다같이 성장하기 위해서는 많은 사람이 좋은 시스템이기 때문에...!)

그래서, 우물 안 이무기(?)에서 여의주를 찾아서 용이 되어보기 위해 앞으로는 컨퍼런스가 열리면 많이 참여해보려고 합니다. 최신 IT 기술들을 접해보고 체험해보면서 트렌드를 익히고, 다른 개발자들의 성공 사례를 통해 동기부여를 얻어보려고 합니다. 또한, 다양한 개발자, 전문가, 회사 관계자들과의 네트워킹을 통해 인맥을 넓힐 수 있는 좋은 기회가 될거라고 생각합니다.

✅ 커뮤니케이션 능력


강사님은 개발자의 덕목으로 갖춰야 할 능력 중 커뮤니케이션 능력을 강조하셨습니다. 개발을 공부하시는 분들이라면 귀가 닳도록 들으셔서 너무 당연한 얘기 아니야? 라고 하실 수 있지만, 그만큼 너무나도 중요한 이야기이기 때문에, 100번 강조해도 지나치지 않다고 생각합니다. 저 또한 실제로 프로젝트를 진행하면서 커뮤니케이션이 매우 중요하다고 느껴졌는데요. 우리가 '개발' 공부를 한다고 하면 흔히들 프로그래밍 언어, 프레임워크 ,데이터베이스,라이브러리 등등 기술 사용법에 의존하곤 합니다. 그러나 실제로 프로젝트에 들어가게 되면, 이러한 것들보다는 다른 단계에서 문제 상황이 발생하는 경우들이 많습니다.

백엔드 개발자로 예를 들어볼게요. 백엔드는 다른 도메인 개발자와 협업하는 경우가 많습니다. 프론트엔드 개발자분들과 API 스펙을 맞춰야하고, 백엔드 내부에서 DB 설계에 대해 논의를 해야하고, 인프라 팀의 도움을 받아 서버를 운영하고, 보안 팀의 요구에 맞춰 안전하게 프로그래밍을 해야합니다. 이런 과정에서 수많은 커뮤니케이션이 발생하는데, 소통에 오류가 발생하면 개발 과정에서 치명적인 오류가 발생하겠죠.


디자인 팀과 프론트엔드 팀이 있다고 가정해봅시다. 프론트엔드에서 구현을 하기 위해서는 디자인 팀에서 figma 디자인을 받아야하죠. 프론트엔드 쪽에서 기한 내에 끝내기 위해 다음주까지 디자인을 받아야합니다. 디자인 팀은 음..! 할 수 있어요 라는 답변을 하게 되죠. 그러나, 1주일이 지난 후 기한 내에 못할거 같다고 급작스럽게 얘기합니다. 이렇게 되면 프로세스 자체가 엉망이 되버리는 문제가 발생하죠.

이러한 사례를 보고 제가 현재중인 프로젝트들은 과연 소통이 잘 되고 있을까? 라는 의문이 들더라고요. 연구실에서 진행중인 chirp-aid 프로젝트의 경우, 현재 9월 말까지 기능 4개를 구현하자! 1번 2번 3번 4번 이 순서로 진행하자! 라는 것들만 정해놓고 구체적으로 정하지 않았더라고요.

프론트엔드와 백엔드 진행 상황을 공유할때도 어려움을 느꼈습니다. 프론트엔드와 백엔드가 갖춰야 할 지 식이 다르기 때문에, 각자 어디어디 까지 했다!고 공유는 하지만... 솔직히 구체적으로는 이해를 못했습니다. 이를 해결하기 위해 각자 상대방의 기술을 이해하기 위해 필수적인 기술만 공부하거나, 이해할 수 있도록 잘 설명하는게 좋겠다! 라고 생각이 들었네요

그리고 진행중인 테크톡 프로젝트도 마찬가지입니다. 방학때는 시간이 상대적으로 여유로워서 잘 진행이 되었는데 개강이 이루어지고 나서는 솔직하게 진전도가 떨어졌다고 느꼈습니다. 이를 방지하기 위해 주에 1회씩마다 대면으로 진행하려고 했는데, 개발 단계에서는 이것도 조금 긴 단계라고 느꼈네요. 개발을 하다보면 다양한 문제 상황이 생기기도 하고 여러가지 변수가 생기는 상황에서, 하루하루가 되게 긴 단위입니다. 우리가 짠 코드를 일주일만 지나도 까먹어버리는 것처럼요. 그래서 짧은 시간, 예를 들어 5분이라도 매일 공유하는 것도 나쁘지 않겠다고 느꼈어요. 이 부분은 좀 더 고민이 필요할거 같습니다.

다음 내용들은 Q&A에서 나온 질문들을 추려서 정리해봤습니다.

✅ 대기업vs스타트업



취준생들이라면 한번은 고민해볼만 한 주제인데요. 스타트업이냐.. 대기업이냐?

대기업

  • 잘 짜여진 프로세스

  • 누적된 경험을 간접적으로 느끼기에 좋다
    - 이러한 정책을 가져온 이유
    - 주기적으로 타 팀으로 이동할 기회를 주는 이유
    - 이러한 기술을 채택한 이유

  • 경험할 수 있는 도메인이 제한적이다.

스타트업

  • 너가 생각한 것들을 구현해볼 수 있다.
  • 정해진 프로세스가 없다. 나의 의견이 프로젝트에 바로 적용될 수 있다.
  • 여러 가지 경험을 해볼 수 있다.

✅AI 발전, 어떻게 대비하는가


아마 많은 개발자분들이 고민할 만한 주제입니다.

AI 기술의 발전, 개발자로서 준비해야 할 능력인데요. 결론적으로 말하면 AI의 발전 속도를 따라가는 것은 불가능합니다. 내가 모르는 것이 생기면 GPT가 바로 알려주기 때문에, 더 이상 '지식'을 많이 가지고 있다고 해서 유리한 조건은 아니라고 하네요.

저 또한, 이 부분에서 많은 공감을 느꼈습니다. 인공지능의 도입으로 인해, 해외 유명 빅테크 기업들은 권고 사직을 받고 있고, 국내에서도 취업 시장 한파로 인해 많은 개발자분들이 어려움을 겪고 있습니다. 매 순간마다 웹 기술은 빠르게 변하고 있고, 신입 개발자들의 역량 또한 매우 증가하고 있습니다. 이러한 과정에서 저희들이 가져야 할 자세가 무엇인지 고민을 깊게 해보았습니다.

결론적으로는, 기술 스택에 의존하는 것이 아닌 주어진 문제를 얼마나 적응력있게 해결해나가느냐가 중요한 덕목인 것 같습니다. 컴퓨터 과학 분야는 혁신이 중요하기 때문에, 다른 산업에 비해 변화 속도가 매우 빠릅니다. 그런 상황에서, 지금 공부하는 기술 스택이 내일도 쓰이게 될까? 라는 것에는 의문을 던질 필요가 있습니다. 그래서 주어진 문제를 어떻게 능동적으로 해결하고, 최신 기술을 빠르게 습득하는지가 가장 중요한 능력인 것 같습니다.

저도 공부를 하면서, 백엔드라는 분야가 내게 과연 맞는 분야일까? 여기 한 우물만 파는게 맞을까? 다른 분야도 한번 공부해봐야하지 않을까? 라는 고민거리가 많았는데, 이 부분을 해결할 수 있었습니다. 현재는 백엔드 개발을 공부하고 있지만, 막상 취업할 때는 전혀 다른 분야로 갈 수 있고, 지금 사용하는 기술이 나중에는 다른 기술로 대체될 가능성이 높습니다. 그래서 앞선 고민 보다는 개발의 기초가 되는 문제 해결 능력을 길러야 겠다는 생각이 들더군요. 여러분들의 진로 선택에도 참고가 되었으면 합니다.

✅ 클린 코드를 작성하는법?


제가 강사님께 질문드린 내용인데요.

개발 공부를 하다보니 '개발에 정답은 없다!' 라고 느꼈습니다. 같은 기능을 구현하더라도 A 개발자가 작성한 코드가 다르고, B 개발자가 작성한 코드가 다르고, C 개발자가 작성한 코드가 다릅니다. 결론적으로는 모두가 돌아가는 코드라고 하더라도, A,B,C 개발자가 짠 코드가 모두 좋은 코드라고 할 수 있을까요?

물론 첫 개발 단계에서는 돌아가는 코드가 중요합니다. 그러나 계속해서 기능을 추가하다 보면 이는 나쁜 코드가 될 수 있겠죠.

강사님께서는 클린 코드를 작성할 수 있는 방법으로 여러가지 교재나 자료를 추천해주셨는데요


(강사님 교재라고 하네요.. 깨알 PR)

LLM이 때로는 옆자리 사수분보다 더욱 더 좋은 답변을 해줄 수 있는 존재가 될 수 있다고 하셨습니다. 실제로 강사님도 현업에서 LLM을 사용하여 개발 능률이 올라가셨다고 하네요. 코드를 잘 짜는 것도 중요하지만, 어떤 디자인 패턴을 사용해야 할지, 어떤 프레임워크를 적용해야할지, 어떤 아키텍처를 설계해야할지 빠르게 캐치해내는 능력이 중요한 것 같아요. 그것을 LLM이 가장 잘하는 분야이기도 하니, 적극적으로 기술을 수용할 필요가 있어보입니다.

📌 마무리하며


평소에 개발하면서 생겼던 궁금증들을 해소할 수 있었던 좋은 기회였던거 같습니다. 그리고 멋진 커리어를 쌓고 계시는 강사님을 보면서 동기부여도 얻는 계기가 되었네요. 앞서 느꼈던 내용을 바탕으로 좀 더 성장하는 계기가 되었으면 좋겠습니다.

profile
백엔드 개발자를 지망하는 컴퓨터공학과 3학년 학생입니다 https://github.com/Juhye0k

0개의 댓글