ICT인턴십 후기

안녕하세요! 22년도 하반기 ICT 인턴십에 백엔드 엔지니어로 참여한 포토, 노아입니다. 길다면 길고, 짧다면 짧은 4개월 동안의 인턴십이 끝났습니다! 무사히 끝낸 저희와 옆에서 적응할 수 있도록 도와준 팀원들에게.. 박수~~~! 👏 그동안 너드팩토리에서 ICT인턴십을 진행하면서 보고, 듣고, 경험했던 것들을 적어보고자 합니다 🎉

참여 동기

노아

저는 정보보안을 전공해 보안 전문가로서 꿈을 키우며 전공 공부를 즐겨 하고 있었습니다.

그러나 정보보호병으로 복무하며 실무를 직간접 체험하고 나니 “보안을 계속하는 게 맞을까?” 하는 진로 고민이 들었습니다.

특히 졸업을 앞둔 4학년 복학이었기에 효과적으로 진로를 탐색할 수 있는 경험을 하고자 했고, 마침 ICT인턴십이라는 학기를 병행하면서 실무를 수행할 수 있는 프로그램의 존재를 알게 되어 참여하게 됐습니다.

불편을 해소할 수 있는 도구 만드는 것을 좋아했기 때문에 개발도 도전해보자! 라는 마인드로 세 개의 회사 선택지 중 하나는 개발을, 두 개는 보안을 지원했고 매우 빠른 속도로 너드팩토리 인턴이 되었습니다! (?)

많은 개발 회사 중, 하나의 개발 회사로 플랜아이를 선택했던 이유

  1. ICT 인턴십 프로그램을 초기부터 진행해온 회사로 축적된 인턴 시스템이 갖춰져 있을 것으로 기대되었습니다.
  2. 너드 블로그에 게시된 ICT인턴십 후기들을 보았을 때 너드의 문화가 긍정적으로 느꼈습니다.
  3. 플랜아이의 “정보를 쉽게 표현하고 명확하게 전달하는 것을 가장 잘 하는 회사” 문구가 와 닿았습니다.

포토

‘인턴십을 해야겠다’라는 생각을 한 건 오직 졸업 학점을 채우기 위해서였습니다. 학교에서 기업과 직접 연계해주는 인턴십에 참여하려던 중 ICT인턴십을 알게 되었습니다.

사실 본래 참여하려던 인턴십은 기업별로 선배들의 후기가 천차만별이었고, 실무와 가까이 경험해볼 수 있는 경우는 극히 드물어 보였습니다. 그에 반해 ICT인턴십은 학점을 부여받으면서 실무와 관련 있는 인턴십을 할 수 있었고, 다양한 지역에서 기회가 열려있었습니다. 더불어, 여러 기관이 연계되어있어서 인턴십 관련 관리가 잘되지 않을까? 하고 생각했고 위 점들이 맞물려 참여하게 되었습니다!

대전이쥬 ~

대전에 연고도, 아무것도 없는 제가 여러 지역 중 대전 소재를 선택한 이유는 ,, 그냥 대전을 좋아해서입니다! 사실 노후에 오려고 했는데,, 시기가 너무 앞당겨졌네요 🫢

플랜아이를 선택한 이유

그러면 왜 플랜아이였나? 너드 팩토리였나? 라고 물어보신다면, 회사 선택에 있어 중요하게 생각한 몇 가지 중 하나는 회사 규모였습니다. 인턴 경험을 통해 회사는 어떻게 돌아가는지, 업무는 어떤 식으로 진행되는지, 타 부서와 협업은 어떻게 하는지 등 전반적인 회사 프로세스와 조직문화를 얻어가고자 했습니다.

그리고 서비스하는 제품들을 보며, 핵심 가치와 미션을 잘 수행하고 있다는 느낌을 받았습니다. 제일 중요한 건! 회사가 지향하는 가치와 미션이 제 가치관과 부합한다고 생각되었습니다. 😀 oO(이건 운명…?)

관리되고 있는 멋들어진 회사 홈페이지에서 좋은 이미지를 받았고, ICT인턴십 프로그램에 참여한 이력이 꽤 되었기에 인턴을 위한 프로세스가 있을 것으로 생각했습니다.

무엇을 했을까요?

첫날은 회사 전반적인 이야기를 들을 수 있던 온보딩 교육을 받은 후, 개발환경 세팅을 하다 끝났습니다. 정말 새롭고 정신없었죠,,

이후 이슈가 좀 있었지만, 과제형 코딩테스트를 받고 코드 리뷰 후 업무를 할당받았습니다.

/assets/images/posts/2023-01-20-ict-intern-review/aivoryq-logo.png

저희가 맡았던 첫 업무는 실제 서비스되는 개인화 추천 서비스 ‘AIVORY Q’ 버그 수정이었습니다. 추천 기본정보가 표시되지 않는 버그를 수정해야 하는 일로, 지금은 간단한 일이라는걸 알 수 있지만 당시엔 실서비스의 코드를 건드린다는 게 겁도 나고 어디서부터 해야 할지 몰라서 선뜻 손대지 못했던 기억이 있습니다.

AIVORY QDjango, Elasticsearch, Docker, MySQL 등의 기술 스택을 사용하고 있습니다. 위 도구들을 처음 사용하는 것이라 학습하는 데 어려움도 있었지만 팀원들의 독려와 이야기 나눌 수 있던 인턴 동기가 있어서 해낼 수 있었습니다. 그리고! 처음 이슈를 해결하고 개발 서버에 반영되는 걸 눈으로 확인한 날은.. 🌟  무지 뿌듯했습니다 🥹

/assets/images/posts/2023-01-20-ict-intern-review/issue.png

이 경험을 시작으로 스프린트에 참여해 AIVORY Q의 여러 이슈를 처리했습니다. 저희가 처리했던 이슈는 다음과 같습니다.

  • 누적 개인화 추천 수 리스트 값 표기 수정
  • 종료된 추천 그래프 날짜 표기 문제 수정
  • 세그먼트 별 데이터를 볼 수 있도록 수정
  • 노출될 추천 상품 리스트 API 문서 작성

이 이슈들을 처리하면서 백엔드 챕터 내에서 Django 테스트 모듈을 활용해 TDD를 적용해보자는 의견이 나왔습니다.

좋은 경험으로 생각됐기 때문에 TDD 방법론을 따라 단위 테스트를 진행하며 이슈를 대응했습니다. 처음으로 테스트를 먼저 하고 구현하는 경험을 하게 되었는데, 허점이 생길 수 있는 부분을 사전에 방지할 수 있는 장점이 있었습니다.

단점으로는 테스트 코드를 먼저 작성하고 실제 제품화를 위한 코드작성을 후에 하기 때문에 일반적인 경우보다 시간이 더 소요된다는 점이었습니다. 어떤 경우건 100% 정답은 없어서 작업에 따라 유연하게 적용시키면 될 것 같습니다. 저희는 위 작업들을 진행하면서 테스트의 중요성을 느꼈습니다.

치명적인 이슈는 개발자 스스로도 바로 인지가 가능하지만, 사소한 버그들은 바로 인지가 되지 않습니다. 너드에서는 팀원끼리 테스트 해주는 문화가 활발히 자리해있었고, 보다 나은 제품을 개발하고자 하고 있습니다.

/assets/images/posts/2023-01-20-ict-intern-review/voda-logo.png

이후에는 웹 서비스 데이터 분석 솔루션 ‘VODA’분석하고 문제점해결방안을 도출했습니다. 제품 분석이 처음이고, 초기엔 목표와 방향성을 잡지 못해서 어려움을 겪었습니다. 이를 해소하기 위해 소장님과 계속 미팅을 진행하면서 방향성을 잡았습니다.

/assets/images/posts/2023-01-20-ict-intern-review/uml-blur-1.png

/assets/images/posts/2023-01-20-ict-intern-review/uml-blur-2.png

제품 구성을 잘 파악했는지 확인하고 문서화하기 위해서 UML을 작성했습니다. 도식화된 자료를 바탕으로 설명해 보며 이해도를 점검할 수 있었고, 코드 분석을 진행할 때는 레포지토리 별로 분담 후 서로 분석한 것에 대해 질의응답 하며 크로스체크할 수 있었습니다.

VODA 분석은 이름만 익히 듣고 생소했던 AWS, NginX, 배치 스케줄러 설정, 크롤러 등을 자세히 들여다볼 기회였습니다. 제품을 서비스하기 위해 구성된 AWS 서비스들의 역할과 연결고리들을 알 수 있었습니다. 이들을 고려하면서 문제점에 대한 해결방안을 도출해내야 했는데, 클라우드 비용 산정 기준과 효과적인 AWS 구축법을 몰라 꽤 헤매기도 했습니다. (물론.. 지금도 어렵습니다)

분석을 진행하면서 제품 분석할 때는 어림짐작으로 넘어가는 것은 절대 금물이라는 것을 알게 되었습니다. 어떠한 데이터를 어디에서 수집해서 어떻게 쓰이고 하는 사소한 부분부터 큼직한 제품의 전반적인 흐름까지 파악해야 했습니다. 제품 분석이 잘 돼야 이후 코드 분석, 제품 개선을 위한 해결방안 도출까지 잘 도달할 수 있기 때문입니다.

앞서 처리한 AIVORY Q의 이슈 처리는 코드 스킬을 향상하고, 인프라에 적응할 수 있도록 하는 경험이었다면 VODA 분석은 코드 스킬 외의 기획에 대한 시각을 넓혀주는 경험이었습니다.

서로의 경험과 지식을 나누는 기술 세미나도 참여했습니다. 너드 멤버 개개인의 분야에서 얻게 된 지식과 경험을 어떻게 하면 너드에 도움이 될 수 있을지 공유하는 시간이었습니다. 저희는 각자 학부생 때의 전공을 살려 보안에 관련한 주제를 선정, 발표했습니다.

노아 - 암호

포토 - Python 시큐어 코딩

( 다른 너드들의 기술세미나 발표 주제는 이 기술블로그에 잘 포스팅되어있으니 한 번 둘러보시길 바랍니다! 😎 )

🔎 배운 점 & 소감

애자일을 지향하고 있는 너드에서 새로운 경험을 많이 할 수 있었습니다.

매일 아침 데일리 스크럼을 진행하며 진행 사항과 특이 이슈를 공유합니다.

또, 애자일하게 일하기 위해서 다양한 도구를 활용하여 소통하고 협업하고 있습니다.

슬랙, 노션, 지라, 깃헙 등 처음 들어보는 것부터 익히 들어본 제품까지 사용해 볼 수 있었습니다.

/assets/images/posts/2023-01-20-ict-intern-review/nerdfactory-moto.png

노아

너드 문화의 전반을 잘 설명하는 문장을 추리자면 곳곳에 있는 너드팩토리 가훈이라고 생각합니다.

애자일하게 일하기를 추구하는 너드팩토리에서는 일단 해보고, 안되면 이를 경험 삼아 더 나은 방법을 선택할 수 있도록 독려합니다. 원래는 실패를 두려워하는 사람 중 한 사람이었으나, 실패는 값진 경험이라고 생각하고 두려워하지 않게 됐습니다.

또한 코드를 작성하는 것이 기승전결을 고려하는 하나의 글을 쓰는 것과 비슷하다고 느꼈고, 이 과정에서 모델링의 중요성을 깨닫는 계기가 됐습니다.

학부에서 많은 공부를 하지만 결국 실무에 적용해봐야 적성에 맞는지 알 수 있다는 걸 경험한 시간이었습니다. 개발자로서의 진로 고민이 든다면 기회가 가득한 팀, 너드팩토리에서 경험해보시는 걸 추천해 드립니다 ^-^b

포토

실서비스의 코드 이슈를 처음 처리하게 되었을 때는 ‘내가 해도 되나?’ 덜컥 겁이 났었는데, 이러다 보니 꽤 시간이 소요됐습니다. 지금은 일단 시도해보자! 라는 태도로 극복 중입니다. 아무것도 하지 않으면 아무 일도 일어나지 않으니까요. (그런데 데이터를 몽땅 날리지 않는 이상 큰일은 안 났을 것 같네요.🧐)

물론 회사와 부서마다 다르겠지만, 실무에서 일하는 방식과 분위기도 알 수 있었습니다.

저는 평소 한 사안에 대해서 넘겨짚거나 대충 이렇겠지~ 하기도 하고, 좋은 게 좋은 거지라는 태도를 가지고 있는데 이게 개발 관점에서는 독이 되는 태도인 것을 알게 되었습니다. 프로그래밍할 때는 데이터 기반으로 생각하고 정확하게, 특히 정책은 명확하게 해야 한다는 것을 깨닫게 되었습니다.

수많은 인턴 후기에 보이는 멘트인 ‘학교에서 배운 것이 이렇게 쓰이는구나’를 생각하게 되다니! 굉장히 뻔한 말 같지만 직접 와서 보고 듣고 경험하니까 크게 와닿았습니다. 또, 그 많은 인턴 후기를 보고 너드팩토리에 와서 느낀 점은 인턴에게도 신입에게도 제한 없는 기회가 열려있다는 거였습니다. 사실 처음 오게 되었을 때는 ‘내가 할 수 있을까?’ 지레 겁을 먹었는데, 상황에 던져지니까 뭐라도 하게 되긴 하더라고요!

소장님께서 저희한테 첫 회사 생활을 너무 좋은 데로 와서 이후 다른 곳으로 갔을 때가 걱정이라고 말씀해주셨는데,, 너무 공감되는 말씀이었습니다. 어쩔 수 없죠.. 저와 플랜아이가 서로를 책임져야겠어요.

⭐여담⭐

노아

출퇴근이 멀다는 건 정말 힘듭니다. 타지역에서 오신다면 꼭 가까운 곳으로 자취하세요. 추가로 공부할 체력이 남지 않아요..

아…. 이건 오면 이해하실 텐데 추후 제 자리에서 “뒷집”을 속삭이시면…. 놀라운 일이 벌어집니다.

포토

인턴 생활 중 지내던 곳이 너무 멀었어요….. 게다가 퇴근길이 극악! 전 환승을 해야 했는데 버스 20분 거리가 퇴근길엔 4~50분이 되는 마법이 펼쳐져요.

/assets/images/posts/2023-01-20-ict-intern-review/sunset.png

참고로 제 출근길 버스 밖 풍경은 … 아시겠죠? 출발한 지 20여 분 지난 뒤랍니다.. 사진은 잘 나왔네요..

/assets/images/posts/2023-01-20-ict-intern-review/chair.png

그리고!! 중요한 팁이 하나 있어요 뻐근한 날엔 안마의자와 둘만의 오붓한 시간을 보낼 수 있답니다. 사실 뻐근하지 않아도.. 회사가 허락한…. 안마의자와 데이트

다음 포스트가 존재하지 않습니다.