시작하며

안녕하세요. 2020년 사람인 IT 연구소 신입 개발자 공채 1기를 거쳐 정규직으로 전환되어 개발 2팀에 근무하고 있는 이정규입니다.👍 취준생이였을 때 사람인을 통해 입사 지원도 하면서 자주 사용해왔는데, 내가 사용했던 서비스를 직접 개발하고 있다는 걸 생각하니까 신기하기도 하고 한편으론 책임감도 느껴집니다! 😊

저는 전자공학을 전공했는데, 웹 개발자로 진로를 정하기까지 고민이 많았어요. 그래서 졸업할 때쯤부터 웹 개발이나 알고리즘 등 SW 교육을 찾아서 많이 들었습니다. 최근에는 특히 기업에서 주최하는 IT 관련 캠프나 교육들이 많아져서 이런 교육들도 찾아다니면서 수료했어요. 이런 교육 경험들과 SW에 대한 높은 관심도를 많이 어필했던 게 어느 정도 도움이 되지 않았나 개인적으로 생각해봅니다. 이렇게 사람인 공채 1기에 합격하게 되었고 지금부터는 제가 사람인 인턴으로 입사해서 3개월간의 인턴 생활과 정규직 전환 후 약 6개월간 어떤 일을 하고 어떤 방식으로 일을 하는지 얘기해볼까 해요.

📂 인턴 과정

처음 인턴으로 입사를 하고 며칠 동안은 사람인의 전반적인 서비스에 대한 교육들을 들으며 회사에 대해 많이 알아가는 시간을 가졌어요. 사람인에서는 멘토-멘티 제도를 통해 신규입사자들이 회사에 빠르게 적응할 수 있도록 도와주고 있는데, 멘토님이 개발환경 세팅이나 그룹웨어 사용법 등 업무 관련 지식뿐만 아니라 사내카페나 각종 복지 혜택에 대해 두루두루 알려주셔서 적응하는 데 많은 도움이 되었어요!

📝 1차 프로젝트

이렇게 교육과 며칠간의 적응 기간이 끝난 후 프로젝트를 시작하게 되었고, 인턴과정 동안 크게 두 가지 프로젝트를 진행했어요. 1차 프로젝트는 제시된 주제 중에서 선택하거나 자신만의 새로운 주제를 생각해서 진행할 수 있었어요. 언어는 php로 진행하였고, 프레임워크는 자유롭게 선택할 수 있었습니다!

저는 php 프레임워크 중에 Laravel을 선정해서 진행했는데요. 일단 Laravel은 php 프레임워크들 중에 가장 인기가 많고, 많은 개발자가 사용하고 있다는 게 큰 메리트라 생각했어요. 가장 많이 사용하고 있다는 건 그만큼 개발 커뮤니티가 활성화되어 있고, 오류가 발생했을 때 많은 도움을 받을 수 있죠. 그뿐만 아니라 MVC 패턴을 제공하고 있고, composer라는 패키지 매니저를 사용할 수 있어서 편리하고 효율적으로 개발할 수 있어요. 그 외에도 라라벨 코리아 커뮤니티가 있어서 처음 배울 때 한글화된 문서를 통해 쉽게 입문할 수 있는 것도 큰 장점이라 생각했습니다! 😀

first_proj

1차 프로젝트에서는 개인 프로젝트였기 때문에 프로젝트 구조 설계, DB 스키마 및 관계도, 기획 등을 모두 혼자서 해야 했는데요. 혼자서 프로젝트를 설계하는 게 쉽진 않았지만 멘토님 도움도 받아가면서 문서도 작성해보고 하니 전체적인 프로젝트 구조나 어떤 식으로 구성되어있는지 알아갈 수 있어서 좋았어요. 저는 XML 뉴스 데이터를 토대로 게시판 CRUD 기능을 구현해보는 프로젝트를 진행했어요. 중간중간 잘 안되거나 모르는 부분이 나오면 멘토님이 많이 도와주셔서 수월하게 진행할 수 있었습니다.

일정에 따라 프로젝트 개발을 마치고 발표를 진행했는데요. 개발 완료 후 구현한 기능을 시연하고 코드리뷰를 위주로 진행했어요. 발표 후에 팀장님들과 선배 개발자분들이 피드백을 해주셨는데, 날카로운 질문이 나와서 당황스럽긴 했지만 이런 부분들도 고려해서 코드를 작성하고 프로젝트 구조를 설계하면서 개발해야 하는구나 하고 많이 깨달을 수 있었어요. 또 코드도 봐주시면서 이런 부분에서는 어떤 예외가 생기면 어떻게 할 건지, 데이터를 못 받아오거나 사용자가 어떤 입력값을 넣었을 경우에 대해선 대처가 되어있는지 등등 여러 방면으로 깊게 물어봐 주셨어요. 이러한 질문들 하나하나가 모두 앞으로 개발하는 데 있어서 이러한 점들을 고려해서 짜야겠다고 생각하는 계기가 되어서 개인적으로 많은 도움이 되었습니다.

📝 2차 프로젝트

2차 프로젝트부터는 팀에 배정되어 실무 프로젝트를 진행했어요. 바로 실무 프로젝트에 투입돼도 괜찮나 하는 걱정도 되긴 했는데, 같이 프로젝트에 참여한 선배 개발자분들뿐만 아니라 주변에 계신 선배 개발자분들도 다들 친절하게 도와주셔서 환경 세팅이나 기본적인 업무 프로세스를 빠르게 숙지할 수 있었습니다! 😀

2차 프로젝트는 FIT 2.0 프로젝트에 투입되어 진행하였어요. FIT 2.0은 사람인 준정규직 인적성 검사로, 기존 FIT 1.0 버전에서 사용자 편의성 개선 및 신규 문항, 문항 방식 추가 등 개편하여 고도화한 프로젝트입니다. 저는 여기서 인턴 동기 한명과 같이 기업관리자 페이지 개발을 담당했어요.

sri_fit

취준생 분들은 이 인적성 검사를 직접 보실수도 있겠네요!

담당 업무는 기업 관리자 페이지 레이아웃을 잡고 로그인/로그아웃, 기업 정보 관리, 메일/SMS 전송 및 템플릿 관리 등이었어요. UI 개발팀에서 퍼블리싱 해준 파일들을 가지고 레이아웃 작업을 하고, 기획자분이 작성한 기획서를 보고 기능을 구현하면서 프로젝트를 진행했어요. 기획서를 보면서 헷갈리거나 잘 이해가 안 되는 부분이 있으면 선배 개발자분들에게 물어보면서 해결했습니다. 선배 개발자분들이 코드 관련돼서도 조언을 많이 해주고, 코드 리뷰 시간을 가지면서 클린 코드에 대해서도 배울 수 있어서 굉장히 유익했어요.

이렇게 2차 프로젝트를 마무리하고, 수료식을 하면서 무사히 인턴 과정을 수료하게 되었습니다!

📂 정규직 전환

저는 정규직 전환이 되고, 2차 프로젝트를 했던 부서로 배치가 돼서 FIT 2.0 프로젝트를 계속 이어서 진행했어요. 제가 인턴 때 작성했던 코드를 어쩌면 다시는 볼 수 없었을지도 모르는 데 다시 보게 되니까 반갑기도 하고 열심히 해서 마무리해야겠다는 생각이 들었어요.

일단 실무 프로젝트를 진행하면서 가장 편하게 느껴진 점은 기획이나 디자인에 신경 쓰지 않고 오로지 개발에만 집중할 수 있다는 거예요. 개인 프로젝트나 스터디를 통해 프로젝트를 진행하면 기획도 해야 되고, 디자인 작업도 신경 써줘야 했는데, 실무에서는 이런 부분들을 담당해주시는 전문가분들이 있어서 편했어요. 물론 개발하면서 기획내용에 대해 궁금하거나 디자인 내용이 수정되어야 하는 부분이 있으면 기획자나 디자이너분들과 커뮤니케이션을 많이 하게 되요. 이렇게 개발자들뿐만 아니라 여러 사람들과 협업하면서 프로젝트를 진행하면 나름 재밌게 할 수 있을 거예요!

개발에서 배포까지 과정은 보통 기획서 분석 - WBS 작성 - 개발 - 코드 리뷰 - QA - 배포 순으로 보시면 될 거 같아요. 이 중에서 WBS작성과 코드 리뷰를 저희 파트에선 어떤 식으로 하는지 말해볼까 해요.

📝 WBS

프로젝트를 시작하기 전에 WBS를 작성하고 개발을 시작하게 돼요. WBS는 Work Breakdown Structure의 약자로 그대로 해석하면 업무 분업 구조인데요. 자기가 담당한 업무를 분석하고 그에 따른 공수를 산정해서 프로젝트의 전체적인 일정을 관리한다고 보면 될 거 같아요. 저도 회사에 들어와서 처음으로 WBS를 작성해봤는데, WBS를 작성하기 위해 내가 할 일에 대해서 분석하고 계획을 세우는 게 실제로 개발을 할 때도 도움이 많이 되었어요.

내가 지금까지 어느 정도 했고, 얼마만큼 남았는지 가늠할 수 있으니까 개발이 생각보다 빨리 끝난 부분에 대해선 일정을 좀 당긴다던가, 실제로 해보니 좀 오래 걸리는 부분은 유연하게 조절하면서 일정을 진행할 수 있어요. 저는 평소에 계획을 잘 세우지 않고 사는데, 이런 식으로 WBS를 작성하니까 확실히 일정 관리가 되는 느낌이 들어요!

wbs1 WBS 작성 예시

위 사진은 제가 실제 진행 중인 프로젝트 WBS 일부인데요. 저와 같은 신입 개발자는 아직 모르는 부분도 많아서 작업이 얼마나 걸릴지 모르고, 이런 일정 잡는 게 익숙지 않기 때문에 초안을 작성하고 선배 개발자분들에게 피드백을 받아요. 이 부분은 좀 더 일정을 빡빡하게 잡아도 된다던가 처음 하는 부분은 일정을 좀 넉넉하게 잡아도 된다는 피드백을 해주시면 그에 맞게 수정하면 되니 처음 작성하더라도 부담가지지 않아도 될 거 같습니다!

📝 코드리뷰

저희 파트에선 Upsource를 사용하여 코드리뷰를 진행해요. 개발이 모두 완료된 후에 자신이 커밋한 내용을 묶어서 Upsource에 올리면 선배 개발자분들이 피드백을 해주는 방식이에요. 특히 저같은 신입 개발자들에겐 아주아주 중요한 단계라고 생각합니다. 다들 프로젝트 개발하느라 바쁜 와중에도 시간 쪼내서 리뷰해주시는 것만큼 감사하고 소중하게 생각하고, 신입 개발자에겐 많이 배우고 성장할 기회이니 해주시는 조언들 새겨들으면 좋을 거라고 생각해요! 👍

codereview1

위 화면이 코드리뷰 화면인데요. 선배 개발자분들이 오른쪽에 보이는 것처럼 코멘트를 달아주면 참고해서 수정을 하거나 어떤 방식이 더 좋을지 자유롭게 토론할 수도 있어요!

저는 코드리뷰가 개인적으로 개발 문화 중 가장 중요한 부분이라 생각해요. 언어나 프레임워크같은 기술을 처음 다뤄보거나 대규모 실무 프로젝트를 처음 접한 신입 개발자들은 어떤 식으로 코딩해야 유지 보수하기 쉽고, 사이드이펙트가 발생하지 않는지 알기 어렵죠. 잘 모르는 상태에서 코딩할 때 옆에서 누군가가 봐주면서 잘못된 부분을 짚어주고, 개선될 부분을 알려주는 것은 많은 도움이 되고 앞으로의 개발 경력에 큰 밑거름이 될 거라 생각합니다! 😀

정규직 전환이 되고 실무 프로젝트를 진행하면서 기술적으로도 많이 배우고 있지만 마음가짐이 가장 크게 변했어요. 학교에서나 교육을 들으며 프로젝트를 할 때와 다른 점은 책임감이라고 생각해요. 내가 이 코드를 작성하고 배포가 되면 실제 고객들이 서비스를 사용하는 것이기 때문에 내가 작성한 코드에 대해서는 내가 책임을 져야 한다는 것을 느끼고 있어요. 그러기 때문에 더더욱 코드 퀼리티를 향상시키기 위해서 노력하고 여러 방면에 지식을 쌓아야겠다고 생각합니다!

저희 IT 연구소는 수평적인 관계를 지향하기 때문에 호칭도 연구원님으로 통일해서 부르고 있어요. 도서 구매비도 복지 카드에 더해져서 지급되니 원하는 도서도 마음껏 구매하실 수 있습니다! 그리고 최근에는 인프런 강의를 들을 수 있게 협약을 맺어서 개발자들에게 많은 교육지원을 해주고 있어요! 이런 것들을 많이 활용하면서 자기 계발을 하면 실력향상에 많은 도움이 될 겁니다. 😀

그리고 저는 지금 입사지원 개편 프로젝트를 진행하고 있는데요. Vue 프레임워크를 사용하면서 기존의 레거시 코드를 제거해 나가고 있어요. 이처럼 사람인에서는 레거시 소스를 많이 제거하고 있고, 이외에도 MSA 구조로 서비스들을 분리하고 있기 때문에 Java와 SpringBoot 등 다양한 언어와 프레임워크를 사용하고 있어요. 또 새로 만드는 프로젝트들에 대해서는 합리적인 이유만 있다면 새로운 언어와 프레임워크도 사용해볼 수 있으니 좋은 기회가 항상 열려있습니다!

마치며

벌써 인턴으로 입사한 지 1년이 다 돼가는 걸 보면 시간이 정말 빠르게 흐르는 것 같네요. 특히 프로젝트를 하나씩 진행할 때마다 성장하면서 좋은 경험을 쌓아가는 느낌이에요. 주변에 선배 개발자분들과 함께 작업하면서 많이 배우고 협업하면서 나름 재밌게 개발하고 있다고 생각합니다. 물론 아직 부족한 점도 많고 배울 것도 많지만 개발자로서 성장하기에 부족함 없는 환경들이 구축되어 있어서 내가 좀 더 이런 점들을 활용해서 실력 있는 개발자가 되기 위해 노력해야겠다고 생각합니다. 이상으로 인턴 과정부터 사람인 개발자로 어떻게 일하는지 적어봤는데, 조금이나마 도움이 되었으면 좋겠네요. 감사합니다! 😀