멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
비전공자가 웹 개발자로 성장하려면 어떻게 해야 할까요?
멘토
IT개발/데이터
약 5년 전
💬 멘티의 질문
안녕하세요 멘토님. 웹 개발자를 목표로 프로그래밍을 공부하고 있는 학생입니다. 비전공자인 저는 군대를 갓 전역한 후 현재 학원에서 공부하고 있어요. 웹 개발자가 되기 위해 갖춰야 할 것을 알려주신다는 멘토님의 소개글을 보고 이렇게 글 남기게 됐습니다. 

지금 다니고 있는 학원에서 듣기로는 단기간에 취업을 빨리하고, 실무를 하면서 실력을 늘려야 한다고 합니다. 하지만 인터넷에서 프로그래머에 관한 글을 찾아보니 취업하고 나면 여유시간이 부족해 스스로 성장하기는 힘들다고 하더라고요. 

심지어 학원에서 1~2년 짧게 공부하는 것으로는 취직하고 나서 발전하기에 역부족이라는 글도 봤습니다. 여러 정보를 접하다 보니 혼란스러워 멘토님의 답변이 절실히 필요합니다.  

Ⓒunsplash
1. 취업 전에 공부를 많이 해서 기본기와 실력을 일정 수준 이상으로 갖춰야 하는지, 아니면 취업 후 실무를 바탕으로 실력을 키우는 게 나은지 멘토님의 조언이 필요합니다. 혹시 취업 전에 미리 기본기를 쌓아야 한다면 어떤 공부를 해 놓는 게 좋을까요?

2. 저는 지금 C를 공부 중입니다. C를 더 깊게 공부하는 것이 좋을까요? 아니면 JAVA를 빨리 시작하는 게 나을까요?

3. 웹 개발자는 실무에서 정확히 어떤 일을 하나요?

제 질문 읽어주셔서 감사합니다. 적고 나니까 제가 스스로 고민할 부분을 멘토님께 떠넘기는 기분이 드네요. 공부를 시작한 지 얼마 되지 않아 스스로 기준을 세우고 판단하는 게 어렵습니다. 그럼 항상 건강하시고, 좋은 일만 있으셨으면 좋겠습니다.

💬 이진원 멘토의 답변

기초 학습은 취업 후에도 가능! 입사 전 장시간 시간 투자는 NO

멘티님 안녕하세요! 이제 막 웹 개발의 세계에 발을 디디셨네요. 멘티님의 첫걸음을 응원하는 마음으로 답변을 드리겠습니다.


Ⓒunsplash


멘티님은 프로그래밍 공부를 위해 현재 학원에 다니고 계시네요. IT 관련 학과를 졸업한 저 같은 경우에도 소프트웨어보다 하드웨어 쪽에 가까운 전공이어서 추가적인 학습이 필요했어요. 독학하기가 힘들어서 교육기관 KITRI과 학원의 도움을 받기도 했습니다. 

그러다 보니 취업 전에 학원에서 얼마나 공부해야 할 지 고민이 생길 수밖에 없죠. 멘티님이 지금 고민하고 계신 것처럼 말이에요. 결국 저는 입사 후에 조금씩 학습하는 것이 좋다고 생각을 정리했습니다. 

물론 학원에서 단기간 프로그래밍을 학습하고 입사한 사람보다, 관련 전공에서 알고리즘, 자료구조론 등 기초적인 과목을 학습하고 입사한 사람이 더 깊이 있게 코딩하긴 하죠.

그렇지만 비전공자로서 여백을 메우고자 학원을 1~2년 다니는 것은 상당히 비효율적이라는 생각이 듭니다. 실무를 직접 해보니 학원에서 배우는 것과 개발하면서 배우는 것은 상당히 차이가 있어요. 학원이 군대 훈련소라면 회사는 자대 배치 후의 군 생활이라고 이해해도 무방할 것 같습니다. 

그럼 입사 전 미리 실력을 갖추기 위해서는 관련 전공으로 대학에 재입학하는 방법밖에 없는데, 이는 별로 도움이 되지 않는 선택 같아요. 비전공자 출신이지만, 실력이 뛰어난 개발자분들이 많습니다. 오히려 컴퓨터공학을 전공했지만, 개발자의 삶을 후회하거나 깊이 있게 하지 못하는 경우도 있어요. 

Ⓒfreepik


따라서 입사 전에 실력을 키우려고 너무 장시간 무리하지 마세요. 가장 현실적으로 조언하고 싶은 방법은 입사 후에 프로그래밍 기초 학문을 조금씩 학습하는 거예요. 회사마다 다르겠지만, 자기 발전 시간은 본인이 만들기 나름이라고 생각해요.

그렇다고 해서 취업 전에 공부를 소홀히 해도 된다는 이야기는 당연히 아니겠죠? 회사마다 다르지만, 요즘 코딩 테스트를 강화하는 추세인 것 같아요. 답을 내는 것도 물론 중요하나 본인이 왜 그렇게 코딩했는지 의도를 잘 설명할 수 있는 것도 필요합니다. 여기서는 보통 Codility나 Topcoder 같은 온라인 코딩 테스트 사이트들을 사용합니다. 

그리고 면접 때 자료구조론, 객체지향의 이론, 사용하는 *프레임워크의 특성(spring) 등을 구두로 물어보기도 합니다. 저도 이직할 때 이런 질문들이 나오면 식은땀을 흘려요. 많이 어려우니까요.

웹서비스 개발에는 C보다 JAVA 공부가 더 필요

지금 C를 공부하고 계신다고 하셨는데, JAVA를 빨리 시작하는 것도 좋을 것 같아요. 과거에는 C 개발자가 최고였지만, 10년 전부터는 C 개발자 중에서도 JAVA 개발을 하고 싶어 하는 분들이 많이 생겼다고 선배들에게 들었습니다.

JAVA는 엔터프라이즈급이라고 해서 일반적으로 대규모 웹서비스를 개발하는 데 많이 사용돼요. 물론 외국에서는 PHP, Node.js 등을 통해 개발하기도 합니다. 

반면 C는 웹서비스 개발보다 게임 개발에 더 도움이 되죠. 웹서비스 개발의 경우 C는 보통 서버 사이드 개발에 사용되고, 그것도 자주 사용되는 편은 아니니까요.

Ⓒunsplash


웹 개발의 기본적인 업무 프로세스

그다음으로는 멘티님이 궁금해하신 웹 개발자의 업무를 말씀드릴게요. 

웹을 개발할 때, 웹 기획자의 기본적인 업무는 고객의 요구 사항에 맞게 웹 서비스를 만드는거예요. 순서를 간단하게 말씀드리면, 가장 먼저 웹 기획자와 개발자는 어떤 기능과 화면이 필요한지, 회원 등 서비스 정책은 어떻게 만들 것인지 같은 내용을 고객과의 회의를 통해 결정합니다. 

이후 기획자는 페이지 설계서를 작성하고, 아키텍처는 시스템을 어떻게 구성할지 결정해요. 그다음에 *데이터베이스 모델링과 서비스 설계를 하고 나서 개발팀은 역할을 분할(*R&R)합니다. 

할당된 역할을 바탕으로 부문별로 개발 일정을 수립하고, 개발을 진행하고 나서 QA(테스트)를 실시해요. 마지막으로 테스트에서 발생한 오류에 관해 피드백을 받고, 다시 코드를 수정해 서버에 적용합니다. 규모가 크면 QA 부서가 별도로 있는 경우도 있지만, 대부분 개발자가 직접 테스트를 진행해요. 


Ⓒrawpixel


보통 웹 개발에서는 이런 과정을 계속 반복합니다. 사이트에 따라 회의가 많을 수도 있고, 코딩보다 문서 작업량이 더 늘어날 수도 있어요.

최근에는 신생회사를 중심으로 사내 개발자 세미나 혹은 스터디 그룹을 장려해 신기술을 학습하고 공유하는 기회를 주기도 합니다. 발표자가 되면 부담도 되지만, 새로운 것을 학습할 수 있다는 점에서 굉장히 흥미로워요.

어리석은 질문은 없습니다. 궁금하신 부분이 있으면 언제든지 물어보세요. 멘티님의 궁금증을 해소할 수 있게 저도 열심히 답변을 드리겠습니다.



*프레임워크: 소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하게, 협업의 형태로 제공하는 소프트웨어 환경.

*R&R: Role and Responsibilities의 약자로, 기업 조직에서 개별 프로세스 및 조직의 구성원들이 수행해야 할 역할과 그에 따른 책임 관계를 의미.

*데이터베이스 모델링: 주어진 개념으로부터 논리적인 데이터 모델을 구성해 이를 물리적인 데이터베이스 모델로 환원하고, 고객의 요구에 따라 특정 정보시스템의 데이터베이스에 반영하는 작업.

같은 직무를 다룬 글
인기 있는 글
연구/설계
약 5년 전