멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
방황하는 컴공 전공자, 어디서부터 능력치를 쌓아야 할까요?
멘토
IT개발/데이터
약 4년 전
💬 멘티의 질문

안녕하세요. 지방 소재 대학교에 재학 중인 4학년 멘티입니다. 컴퓨터 공학을 전공했지만, 소프트웨어에 크게 관심이 없어서 이쪽 공부를 열심히 하지 않았습니다. 

 

하지만 졸업이 임박하고 취업 걱정이 시작되니 전공 쪽으로 취업해야 할 것 같습니다. 걱정은 앞서는데 할 줄 아는 게 없으니까요. 소프트웨어 쪽 공부를 해야 할 것 같아서 이런 질문을 드립니다. 


ⓒboyhey

 

취업 전에 많은 것을 배울 수 있을 것 같아 스타트업 인턴을 고려 중입니다. 스스로 능력치가 부족한 것 같아서요. 소프트웨어 쪽으로 입사하기 위해 어떤 분야를 깊게 공부해야 할지 여쭙고 싶습니다.

 

가장 큰 관심사는 안드로이드입니다. 이걸 하려면 자바를 많이 알아야 할 것 같은데, 자바에 관한 정보도 알려주셨으면 합니다. 그리고 웹 쪽이 매우 어려운 분야인지도 알고 싶습니다. 

 

너무 사소한 질문인 것 같아 조금 부끄럽습니다. 멘토님의 답변을 기다리겠습니다. 감사합니다. 

 

💬 이준영 멘토의 답변


자바 언어, 안드로이드 개발 실력의 디딤돌이 되어줄 책들

안녕하세요. 취업 시기가 다가올수록 다들 고민이 많아지는 것 같습니다. 저도 그랬고요. 저도 컴퓨터공학과를 전공하며 컴퓨터 공학, 프로그래밍 공부를 해왔습니다. 군 복무를 마치고 2학년까지는 제대로 개발 공부를 하지 않다가 안드로이드 개발을 시작하면서 본격적으로 자바와 안드로이드 개발을 공부하게 됐습니다.

 

안드로이드로 시작했지만, C 언어를 기초적으로만 할 줄 아는 상태였던지라 ‘자바를 익히지 않고서는 안드로이드 앱 개발을 할 수 없겠다’는 생각에 자바도 시작했습니다. 그 후 C 언어로 하던 수업 내의 과제나 프로젝트를 가능한 자바로 작성해 배움에 탄력이 붙기도 했고요.

 

과제나 프로젝트를 통해 자바나 안드로이드를 병행해서 공부할 수 없다면 개인적으로 독학해서 공부를 할 수도 있겠죠. 하지만 학습 방향이나 무엇을 어떻게 더 익혀나가야 할지 계획 세우는 데 어려움이 있을 것 같네요. IT 학원에 등록해서 배울 수도 있겠지만 이왕이면 국비 지원 과정을 통해 비용을 덜 들이고 배우는 쪽이 더 좋겠죠?

 

ⓒunsplash


국비 지원 교육 정보센터와 같은 곳에서 지역 내의 국비 지원 교육 정보를 확인하실 수 있습니다. 다만 지역에 따라 과정이 개설되지 않았을 수도 있어요.

 

국비지원과정이나 학원을 통해 단기간에 자바나 모바일 애플리케이션(안드로이드, iOS) 개발을 배우더라도, 짧은 시간에 배우는 만큼 프로그래밍의 기초가 되는 수학이나 알고리즘, 네트워크 등에 대한 이론까지 모두 익힐 수는 없습니다. 이런 부분들은 개인적으로 꾸준히 공부할 필요가 있습니다.

 

또한 학원에서는 개인의 속도가 아니라 강의 커리큘럼에 맞춰서 교육을 진행하다 보니, 진도를 따라가기 힘들 수도 있어요. 역시 개인 시간을 투자해야 하는 건 어쩔 수 없겠지요. 시간을 들인 만큼 돌아오게 될 거예요. 저도 아직 배워야 할 것들이 수없이 많지만 공부한 만큼 알고, 활용하게 되는 것 같습니다.

 

독학으로 공부할 생각이라면 책만큼 좋은 건 없겠지요. 자바를 공부하기에 적합한 도서는 개인에 따라 다를 수 있지만 ‘자바의 신’, ‘헤드퍼스트 자바’, ‘난 정말 자바를 공부한 적이 없다구요’ 정도를 꼽을 수 있겠네요. 이 외에도 자바를 다루는 도서는 많습니다. 학교 도서관이나 서점에서 책 내용을 훑어보고 가장 잘 맞는 책을 선택해서 보면 좋을 것 같습니다.

 

ⓒunsplash


어떤 언어든 그렇겠지만, 자바 역시 언어의 문법과 객체지향 개념을 이해하고, 자바에서 제공하는 많은 기능(API라고 합니다) 이를테면 문자열 처리, 파일입출력, 통신 등을 공부하면서 더 많은 것을 만들 수 있게 된답니다. 

 

API에 익숙해지면 자바를 사용하는 다른 사람들이 만들어 놓은 것들을 사용할 수 있게 되고, 안드로이드 애플리케이션 개발을 위한 준비가 되겠지요.

 

자바 프로그래밍 언어 기본서부터 공부하고 난 후에는 안드로이드 관련 도서를 통해 안드로이드 개발을 시작하실 수 있을 거예요. 제 경우 ‘안드로이드 프로그래밍 정복’이라는 책으로 공부했는데 안드로이드의 올라간 버전에 맞춘 개정판이 발간되지 않았어요. 최근에 출간된 안드로이드 도서를 볼 것을 추천합니다. 

 

안드로이드 도서를 찾아보니 이지스퍼블리싱 출판사의 ‘Do It! 안드로이드 앱 프로그래밍’이 있네요. ‘안드로이드 프로그래밍 정복’도 최신 안드로이드 버전은 아니지만, 안드로이드 킷캣 버전에 관한 내용으로 개정이 돼 있어 볼 만할 듯 싶네요. 안드로이드 역시 직접 책을 살펴보고 가장 잘 맞는 책을 고르는 걸 추천합니다.

 

ⓒfreepik


‘자바 퍼즐러’ 책으로 재미있는 퀴즈를 풀면서 자바 기본기를 확인하는 방법도 있습니다, 기본서를 다 본 후에는 ‘이펙티브 자바’, ‘헤드퍼스트 디자인 패턴’ 등의 객체지향을 더 깊이 공부하는 책을 볼 것을 추천합니다. 이 책들은 자바 공부의 필독서입니다. 

 

안드로이드 역시 기본서 공부 이후 관심 있거나 개발하고 싶은 기능이나 분야에 따라 통신, 안드로이드 센서, 데이터베이스 등에 관한 서적으로 더 넓고 깊게 공부할 수 있습니다.

 

물론 인터넷에도 많은 자료가 있으니 인터넷 서핑이나 커뮤니티(생활코딩, OKKY 등) 등을 활용해 많은 것을 배우고 얻을 수 있습니다. 어느 정도 안드로이드 애플리케이션을 개발할 준비가 됐다면 개인적으로 앱을 개발하거나 다른 사람들과 아이디어를 구상해서 프로젝트를 진행해보는 것도 좋습니다. 

 

ⓒtommaso79

 

같은 조건이라면 프로젝트 경험이 많은 지원자가 주목받는다

안드로이드, 자바 공부의 목적이 취업이라면 공부로 키운 실력을 보여줄 방법은 아무래도 프로젝트 경력이겠지요? 스타트업이든 다른 형태의 업체든 입사 지원 시 자기소개서와 이력서를 제출하게 됩니다. 이력서에는 대외 활동이나 프로젝트 경력을 기재해야 하죠. 인사담당자나 서류를 검토하는 사람은 당연히 지원자에게 어떤 이력이 있는지 볼 테고요. 

 

신입이라도 다른 사람과 같은 조건이라면 프로젝트 경험이 더 많은 지원자를 선호합니다. 물론 프로젝트 경험이 회사에서 개발하는 내용과 관련 있다면 더 좋을 테고요. 

 

서류 통과 후 실무 면접에서 면접관은 지원자의 서류를 토대로 지원자를 파악하고, 경험이나 혹은 개발 기술 등에 관해 질문할 겁니다. 대화를 나눌 때 상대를 잘 알아야 주고받을 말이 많듯, 서류에서 제공되는 정보가 많을수록 면접관 역시 지원자에게 궁금한 것들이 많을 겁니다. 지원자는 질문에 대한 답을 통해 자신의 역량을 어필할 수 있고요. 

 

단기간에 자바, 안드로이드를 익혀서 프로젝트를 진행하기가 쉽지 않을 겁니다. 시간을 넉넉히 잡고 지금까지 하지 않았던 것을 집중해서 한다는 생각으로 계획을 세워서 진행하면 좋을 것 같네요.

 

ⓒone photo


프론트엔드, 백엔드 개발 시 사용하는 언어와 관련 지식

웹 개발은 크게 프론트엔드와 백엔드로 나뉩니다. 먼저 프론트엔드는 주로 화면과 관련된 영역으로, 웹 브라우저에서 동작하는 페이지를 작성합니다. 주로 HTML, CSS, JavaScript를 사용합니다. 

 

HTML은 웹 문서의 구조와 내용을 표현하고, CSS는 디자인 그리고 Javascript는 웹 문서를 동적으로 만들어 마우스, 키보드 등과 같은 사용자 조작에 대한 이벤트 처리, 통신, 웹 문서 내의 구성요소를 조작합니다. HTML은 집, CSS는 인테리어, Javascript는 전기와 가전제품으로 비유할 수 있겠네요.

 

앞서 거론된 프론트엔트 구현을 위한 언어도 중요하지만 프론트엔드 개발을 위해서는 수많은 브라우저와 각 버전에 대한 특성, 그리고 PC가 아닌 모바일 환경에서의 프론트엔드 등 해상도 변경에 따른 반응형 웹 구현, HTTP 프로토콜에 대한 이해 등이 필요합니다.

 

진입장벽이 낮아 처음 개발을 시작할 때는 자바, C언어 등 범용 프로그래밍 언어보다는 쉽게 익힐 수 있지만 ‘잘 만들기’ 위해서는 알아야 할 것들이 점점 많아지는 영역입니다. 

 

ⓒunsplash


백엔드 개발은 흔히 말하는 서버 개발 혹은 웹 서버 개발입니다. 백엔드 애플리케이션, 웹 애플리케이션 개발 등 다양하게 표현됩니다. 사용 언어는 자바를 비롯해서 Ruby, Python, C#, Javascript, PHP 등입니다

 

대부분 언어와 웹 프레임워크1)를 함께 사용해 백엔드 개발을 진행합니다. 자바의 경우 서블릿, JSP를 사용하거나, Spring MVC Framework 또는 Struts, Play Framework 등을 사용합니다. 안드로이드 개발과 마찬가지로 백엔드 개발 역시 자바 기초를 탄탄히 갖춰야 수월하게 프레임워크를 사용할 수 있습니다.

 

백엔드 개발 시 데이터베이스를 기본적으로 사용할 줄 알아야 합니다. 또한 전통적인 관계형 데이터베이스 외에도 NoSQL과 같은 데이터베이스 관련 지식이 필요하고 그 연동 방법을 알아야 합니다. 더 나아가 성능 튜닝이나 확장에 대한 지식이 필요할 수도 있습니다. 

 

ⓒkurhan


해당 분야를 다루는 담당자를 따로 두는 회사가 있을 수도 있지만, 백엔드 개발자가 모두 처리하는 회사도 있거든요. 데이터베이스 외에 통신, 외부 서비스의 Open API 사용, 인증, 보안, 메시징, 아키텍처 등 백엔드 개발자 역시 알아야 할 것들이 많네요.

 

역시 단기간에 체득하기 어려운 부분입니다. 경험과 경력을 차근차근 쌓고 부단히 공부하면서 얻게 되는 것들이겠지요. 깊게 파고 들어갈수록 어려운 것은 분명하지만 어쨌든 웹 개발 역시 넓고 방대하다고 표현할 수 있겠네요.

 

이상입니다. 답변이 도움이 되기를 바랍니다. 답변 내용 중에 설명이 더 필요한 게 있으면 언제든 질문 주세요. 

 

  

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


같은 직무를 다룬 글
IT개발/데이터
약 5년 전
인기 있는 글
연구/설계
약 5년 전
잇다의 멤버가 되어주세요 🚀
직무, 취업 콘텐츠를 담은   뉴스레터를 받아볼 수 있어요.
멘토에게 직접   질문할 수 있어요.
현직자 클래스를 무료로 수강할 수 있어요.