스타트업 현장실습 인턴 후기

BestJelly·2022년 7월 29일
0

후기

목록 보기
1/3

현장실습 기업 지원

어느 덧 나에게 졸업 시기가 찾아왔다. 남들은 막학기에 적은 학점만 채우면 되어서 여유롭게 취업 준비하면서 보낸다는데 나같은 경우 많지는 않았지만 여유롭게 들을만큼의 적은 학점이 남지 않았다.

고민을 하다가 먼저 졸업한 친구가 현장실습 인턴 경험이 괜찮았다는 이야기를 들은 것 같아 대학 현장실습 지원센터를 통해 스타트업에 지원하게 되었다.

처음에 어떤 기업을 지원할지 많은 고민을 하였다. 처음에는 서울 쪽으로 지원하려다가 막학기다 보니 방구하는 문제와 취업 준비 등 여러가지 문제에 직면하여 본가와 가까운 곳 중에서 찾아보았다.

그러던 중에 데이터 분석을 주 업무로 하며 새로운 서비스들을 개발중인 회사가 눈에 보였다. 내가 진로로 정했던 기술 스택과는 조금 달랐지만 졸업 전에 다양한 기술 분야를 경험하고 좀 더 성장하고 싶어 해당 회사를 선택하여 지원하였다.

면접은 3대1로 보았고 이전에 웹개발을 한 경험 덕분인지 다음 날 바로 합격 메일을 받으면서 현장 실습 인턴 생활이 시작되었다.

인턴 근무는 이전 경험(웹개발)들을 반영해 주었고 시스템 개발팀으로 입사하게 되었다. 처음으로 월급을 받기 때문에 많은 기대가 되었던 것 같다.

실습 내용

처음 입사하고 나서 먼저 회사 구조 및 시스템 등에 대해서 학습을 하였다. 해당 회사는 웹개발에 자체 프레임워크를 사용하고 있었는데 완전히 새로운 프레임워크는 아니고 개발자에게 좀 더 편의를 주는 방향으로 기존 프레임워크를 개선시킨 것이였다.

먼저 회사 서비스 및 기술에서 대부분 사용하고 있는 언어는 python 이였으며 백엔드는 Flask를 사용하고 있었고 뷰엔진은 pug, 프론트엔드는 html,css,js 및 tabler라는 css 프레임워크를 사용하고 있었다.

데이터베이스 같은 경우 MariaDB를 사용하고 있었으며 특이한 점으로는 스타트업에서 대부분 클라우드 호스팅, 서버, DB를 사용하기 마련인데 여기는 자체 서버가 서버실에 있었다.

해당 서버는 배포 서버, 개발 서버 등 여러개로 나뉘어져 있었으며 DB나 서버 설정 모두 원격으로 접속하여 개발하는 방식이였다.

스타트업이기에 업무 구조나 개발 방법, 표준화 부분에서 엄청 잘 짜여있지는 않았다. 그래도 어느정도는 구조화 되어있으며 더 좋은 기술이나 제안점이 있다면 바로바로 수용해주시는 편이였다.

첫달에는 회사 자체 프레임워크를 분석하고 사용 기술들을 학습하여 이를 문서화 하는 작업을 배정받았다. 첫달에 본격적인 개발을 시키지 않았지만 나중의 프로젝트를 위해 편리성 및 생산성을 늘려줄 수 있음 python 버전 더미 테스트 모듈을 개발하였다.

둘째달에는 본격적으로 프로젝트에 참가하였는데 외부 기간으로부터 외주 제안을 받은 앱스토어 및 크롬 확장 프로그램을 개발하는 일이였다. 크롬 확장 프로그램의 경우 처음 개발하는 것이였기에 어려웠지만 부딪혀보니 결국 완성시키게 되는 것 같다.

더미 테스트 모듈

더미 테스트 모듈은 개발 생산성을 늘리기 위한 모듈이다. 나같은 경우 기본적으로 사용하는 백엔드 프레임워크는 스프링이다.

항상 스프링 프로젝트를 진행하면서 어떤한 기능을 테스트하기 위해 데이터가 필요한 경우가 있다. 이 경우 기존에는 JPA를 활용해 for문을 돌려 더미 데이터를 생성하거나 미리 SQL 쿼리부터 짜고 기능 구현을 시작하였따. 이러한 과정은 시간을 많이 잡아먹었다.

예를 들어 간단히 게시판 목록의 페이징 기능을 테스트하기 위해서 적어도 100개 이상의 게시글 데이터가 필요하다. 이런 데이터를 일일히 생성 혹은 쿼리 및 코드를 짜는 것은 여간 힘든 일이다.

만약 여기서 카테고리라는 시스템도 추가해야 한다면 게시글과 카테고리의 DB 관계 또한 일일히 설정하여 더미 데이터를 생성해야한다. 이러한 DB 관계 및 Data의 내용을 일정한 형식으로 자동으로 생성해주는 것이 있다면 얼마나 편할까라는 생각으로 시작한 프로젝트이다.

그로 인해 python 버전으로 더미 데이터 모듈을 개발하였으며 해당 모듈은 간단한 함수 사용으로 DB 테이블 간 연관관계 및 COLUMN 옵션 등을 다양하고 손쉽게 미리 세팅할 수 있게 되었다.

앱스토어 + 크롬 확장 프로그램

두번쨰로 앱스토어와 크롬 확장 프로그램을 만들었다. 앱스토어는 이미 있는 앱스토어와 같이 웹사이트를 개발하는 일이였다. 백엔드, 프론트엔드 개발을 담당하였으며 같이 일한 사수(팀장) 분께서는 자체 프레임워크를 연동하는 부분을 담당하셨다.

위의 사진에 보는 것과 같이 중앙 아래에 있는 앱을 바로 접속할 수 있는 크롬 확장 프로그램을 만드는 일이였는데 쉽게 말해 브라우저 **버전의 맥 dock**이라고 보면 된다.

해당 dock의 앱들은 앱스토어 사이트를 통해 설치할 수 있는데 크롬 확장 프로그램과 앱스토어의 서버가 상호 통신하며 동기화 및 앱들을 관리하는 형태라고 보면 된다.

크롬 확장프로그램은 추후 개발에 용이하게 WebPack 시스템을 적용시켰는데 정말 편하다. 원래 크롬 확장 프로그램이 manifest 설정 파일이 많이 중요해서 모듈화 시키는 것이 껄끄럽게 느껴졌는데 WebPack 하나면 자동으로 이런 것들을 관리해준다.

내가 디자인에는 많이 재능이 없어서 디자인 팀의 조언을 많이 구했다. 디자인팀에서 대충 화면 view를 그려주면 이를 FrontEnd로 구현하는 방식이다.

처음에는 많이 못생겼지만 조언을 받고 수정해나가면서 평균적인 앱스토어 처럼 view를 구현할 수 있었다.

앱스토어의 핵심은 앱 개발 기관과 실제 앱 사용자 간의 게이트웨이 역할을 수행하는 것이였는데 이를 위해 회사 자체 개발 프레임워크를 웹사이트에 연동시키고 인증 부분에 대해서는 SSO 시스템을 중개하느 형식으로 구현하였다.

인증 부분은 크롬 확장프로그램, 앱스토어, 외부 기관 등 4개의 모듈을 거쳐야 해서 구현하는데 많이 힘들었다......

실습 이후 후기

실습하는데 SQL, FrontEnd 등의 기술을 복습하기도 했고 React, Python, Flask 등 새로운 기술 스택을 공부할 수 있었는데 개인적으로 자체 서버를 만지다 보니 Linux 실력이 많이 늘어난 것 같다.

원래 맥북을 가지고 있었지만 잘 안사용했는데 회사에서 맥을 쓰다보니 어느새 맥 os가 좀 더 개발하기 편해졌다. 역시 사람은 적응의 동물이다... ㅎ

글을 쓴 시점에서 괜찮은 기업에 합격하였다. 현장 실습 기간동안 일반 직원과 비슷하게 출근 및 퇴근 하여서 취준 및 면접할 시간이 없어 중간에 정말 가고 싶은 기업에 지원했는데 운좋게 합격하였다.

취업하기전에 다양한 기술 스택 및 개발 경험을 할 수 있었으며 혹시나 인턴 경험에 주저하고 있는 분이 있다면 망설임 없이 지원해라!

profile
성장 중인 신입 백엔드 개발자, 개발에는 최선을 다한다!

0개의 댓글