AKCSE UBC 에서 준비한 UBC 공대 학부에 대해 알아보는 대학입학 설명회의 이번 주 주제는 저번 주에 이어서 UBC 공대에서 가장 큰 규모를 자랑하는 Electrical & Computer Engineering (ECE) 학과의 또 다른 일부인 Computer Engineering (컴퓨터 공학과), 정확하게는 컴퓨터 공학과의 세부전공인 Software Engineering (소프트웨어 공학) 입니다. 소프트웨어 공학과는 기본적으로 소프트웨어 설계, 소프트웨어 개발, 사용자 인터페이스, 소프트웨어 품질 관리 등 소프트웨어 컴퓨터 체계의 디자인을 위한 방법 및 절차를 다루는 학문으로서 소프트웨어의 품질, 비용, 유지 보수성 등이 개선된 소프트웨어를 창조하는데 중요한 역할을 하고 있습니다.
AKCSE에서 비교적 알려지지 않은 학부내의 과정을 좀더 자세하게 알아보기 위해 UBC 소프트웨어 엔지니어링 4학년에 재학중인 김세영씨(사진)를 인터뷰 해보았습니다.
Q) 소프트웨어 엔지니어링에 대해 좀더 자세한 설명을 부탁 드립니다.
A) UBC에서의 소프트웨어 엔지니어링(Computer Engineering Software Option)은 컴퓨터 엔지니어링 2학년 학생들이 3학년으로 올라갈 때 고를 수 있는 소프트웨어에 조금 더 특화된 옵션입니다. Co-op(실무교육) 여부에 따라 1학년 일반 공학교육을 포함해 4~5년이 걸리는 졸업프로그램입니다. 소프트웨어 엔지니어는 소프트웨어 개발자 또는 프로그래머라고도 불리기도 합니다. 흔히 컴퓨터 사이언스와 소프트웨어 엔지니어링의 다른 점이 무엇인지 궁금해하시는 분들이 많은데, 비슷한 교육을 받지만 컴퓨터 사이언스는 좀더 이론적으로, 엔지니어링은 좀더 실용적으로 배운다는 차이점이 있습니다. 졸업 후 하는 일은 둘 다 같습니다. 앞으로의 인터뷰에서 소프트웨어 엔지니어링을 언급할 때는 컴퓨터 사이언스나 컴퓨터 엔지니어링도 포함하는 뜻이라는 것을 알아주세요.
Q) 졸업 후 본인만의 계획이 있으시다면?
A) 저의 현재 계획은 졸업 후 웹 또는 게임과 관련된 회사에 입사해 1~3년간 경험을 쌓은 후 더 늦기 전에 startup을 차릴 계획입니다. 아직 제대로 구상한 아이디어는 없지만, 20대 때 더 많은 기회도 있고 혹여 실패 하더라도 조금 더 안정적이기 때문에 가능한 일찍 startup을 차려보고 실패를 경험하던지 성공을 경험하던지 일단 경험하며 배워보려고 합니다.
*startup 이란 운영기간이 매우 짧은 회사를 일컫는 말입니다. 이 회사들은 마켓을 위한 제품이나 서비스의 개발 혹은 리서치 단계에 있습니다.
Q) 소프트웨어 엔지니어링의 전망/직업옵션은 어떤 것들이 있나요?
A) 소프트웨어 엔지니어링의 전망은 매우 밝습니다. 컴퓨터가 쓰이는 곳은 어느 곳이든지 소프트웨어 엔지니어가 필요합니다. 컴퓨터, 핸드폰, 태블릿 에서부터 로봇, 의료기구 그리고 전자레인지, 밥솥까지 주변에서 흔히 보이는 수많은 기계들은 소프트웨어에 의해 통제됩니다. 소프트웨어 개발자, 설계요원, 품질보증 요원, 프로젝트 관리자, data mining researcher, 그리고 CEO까지 소프트웨어 엔지니어로서 선택할 수 있는 직업도 상당히 다양합니다. 요즘 대기업 스카우터들은 회사에서 필요한 자리는 넘쳐나는데 그 자리에 걸맞은 실력을 가진 사람들은 너무나도 부족하다고 말합니다. 즉 실력만 좋다면 구글이든 페이스북이든 본인이 원하는 회사에 들어갈 수 있는 아주 매력적인 직업입니다. 소프트웨어 회사뿐만 아니라 일반회사들도 회사의 웹사이트를 위해서라든지, 회사 내에서 필요한 소프트웨어를 위해서라든지, IT부서가 있기 때문에 더욱더 선택의 폭이 다양합니다. 입사를 하는 것이 목표가 아닌 사람들 에게도 정말 매력적인 점은 창업이 다른 직종에 비해 쉽다는 것입니다. 따라서 기업가에게도, 그냥 회사에 입사하여 일하고 싶은 사람들에게도 정말 기회가 많은 직종입니다.
Q) 프로그램 내에서 요구하는 코스들의 특성이 있다면?
A)UBC 소프트웨어/컴퓨터 엔지니어링 2학년 때는 전기공학과와 아주 비슷한 과목들을 수강하게 됩니다. 그러므로 전기와 소프트웨어를 둘 다 배우게 되지만 3학년부터는 소프트웨어에 더 집중을 하게 되는데 이때 소프트웨어를 만드는 법뿐만 아니라, 어떤 소프트웨어가 잘 만들어진 것인지, 만드는 방법에는 어떤 것들이 있는지, 만들 때 무엇을 고려해야 하는지, 소프트웨어를 어떻게 테스트 하는지, 프로젝트를 어떻게 관리해야 하는지 등등 소프트웨어 엔지니어로써 할 수 있는 여러 가지 포지션들의 필요기술들을 배웁니다.
Q) 어떤 사람에게 소프트웨어 엔지니어링이 적합하다고 생각하시나요?
A) 첫 번째는 당연히 컴퓨터를 좋아하는 사람 입니다. 또한 논리적인 것을 좋아하는 사람, 답이 정해진 것을 좋아하는 사람, 발로 뛰어 일하는 거보다 한자리에서 일하는걸 좋아하는 사람 등등도 적성에 맞을 수 있습니다. 이 밖에도 많지 않은 돈으로 회사를 차리고 싶다, 어떤 나라에 가서 살아도 일자리가 있으면 좋겠다, 세상에 큰 영향을 끼치고 싶다, 해커들이 멋있다고 생각하시는 분들도 프로그래밍을 해보시는 것도 좋다고 생각합니다. 여담으로 수학을 못하면 프로그래밍에 적합하지 않다고 생각하시는 분들이 많은데 수학을 못한다고 프로그래밍을 못하지는 않습니다. 다만 논리적 사고방식을 가지고 있지 않다면 프로그래밍은 적성에 맞지 않으실 것입니다.
Q) 학부 내에서 가장 인상 깊었던 프로젝트가 있으신가요?
A) 2학년 때 전기공학과 학생과 같이 프로젝트를 하는 코스에서 짐벌(gimbal)원리를 사용하여 땅이랑 평행을 유지하며 물체를 받쳐주는 기기를 만들었었는데, 직접 3D 디자인을 하고 나무를 자르고 전기회로를 설계하고 프로그래밍을 해서 만드는 여러 가지 기술을 한번에 배울 수 있었던 프로젝트였고, 처음으로 제가 짠 코드가 물체를 움직이게 하는 것을 보니 아주 신비롭고 흥미로웠습니다.
Q) 학부과정 중 제일 힘들었던 시기가 언제인가요? 그 이유는?
A) 개인적으로 2학년 때가 가장 힘든 것 같습니다. 2학년 때 비로소 제대로 된 4~6명 그룹 프로젝트들이 시작되는데, 그런 프로젝트들을 대부분 처음 접하는 때라서 다들 시간관리를 잘하지 못하고 적응도 하지 못해 늦은 저녁까지 학교에 남아서 프로젝트 하는 날들이 허다합니다. 프로젝트를 발표해야 하는 전날은 밤을 새기도 하고 정말 많은 시간을 필요로 했습니다. 3,4학년 때는 그런 그룹프로젝트를 할 때의 시간관리 노하우가 생기기도하고 실력도 더 좋아져서 2학년 때보단 수월한 것 같습니다. 한가지 좋은 점은 그렇게 같이 밤을 새면서 동고동락한 그룹멤버들과는 남은 학부과정 내내 친한 친구로 남게 되는 좋은 시간인 것 같습니다. 그 친구들과 3학년 4학년 때 또 같이 프로젝트를 하게 되면 협력도 더 잘되기도 합니다.
Q) 실무교육/인턴쉽 등 학기 중간에 쌓았던 외부 활동에 관한 조언을 해주신다면?
A) 졸업 후 일을 할 계획이라면 Co-op이나 인턴쉽은 무조건 하는 것이 좋습니다. 물론 실력만 입증할 수 있다면 경험 없이 원하는 직장을 찾을 수 있지만 소프트웨어 회사에서는 학교 성적은 거의 보지 않으니, 실무경험을 하지 않으시려면 꼭 다른 무언가 실력을 입증할 수 있는 것을 갖추셔야 합니다. 꼭 학교에서 제공하는 Co-op Program에 들어가지 않더라도 개별적으로 인턴쉽을 할 수도 있지만 공대 특성상 2학년 때 Co-op Program에 들어가지 못하면 졸업할 때까지 프로그램에 들어갈 수 없기 때문에 장단점을 잘 비교해보고 신청여부를 결정하시는 것이 좋습니다. 몇 가지 장점과 단점들을 알려드리겠습니다.
장점:
- 회사들이 Co-op 데이터베이스에 구인광고를 올리기 때문에 일자리 찾기가 더 쉽습니다.
- 회사들이 UBC와 계약 하에 지정된 수만큼 꼭 학생들을 고용해야 하기 때문에 경험이 없어도 일자리 찾기가 조금은 더 수월합니다.
단점:
- 지원하는 모든 회사들에 Cover Letter을 작성하여 제출하여야 합니다..
- Offer가 들어오면 하루 이틀 내로 답변을 하여야 합니다.
- 반드시 여러 회사에 지원하여야 합니다.
한가지 팁을 드리자면 종종 24~48 시간짜리 코딩 이벤트인 해카톤/게임잼 들이 열리는데, 이런 곳에 참가하여서 경험을 쌓는 것도 아주 좋습니다. 또 인터넷에 있는 수많은 오픈소스 프로젝트 중 흥미 있는 프로젝트에 기여한다든지, 앱을 만들어서 수익을 낸다든지 하는 것들도 회사에서 정말 좋게 봅니다.
Q) 소프트웨어 엔지니어링에 들어가기 위해 UBC에서 특별히 요구하는 것이 있나요?
A) 일단 Electrical and Computer Engineering 학과는 평균 2학년을 230명 받는다고 하는데, 아무래도 전기와 컴퓨터가 합쳐진 학과이다 보니 비교적 낮은 점수로도 2학년으로 들어올 수 있습니다. 하지만 2학년에서 3학년으로 넘어갈 때 소프트웨어 옵션을 고르기 위해서는 좀더 높은 점수가 요구됩니다. 학교 성적 외에는 따로 요구하는 것은 없습니다.
Q) 1학년으로 돌아간다면 다시 소프트웨어 엔지니어링을 선택하실 건가요?
A) 만약 1학년으로 돌아간다면 저는 엔지니어링이 아니라 컴퓨터 사이언스를 선택할 것 같습니다. 왜냐하면 컴퓨터 사이언스는 공학학부 보다 전기관련 코스를 적게 듣고 소프트웨어에 더 집중을 하기 때문에 전기보단 프로그래밍만을 좋아하는 저에게는 더 맞는 것 같습니다. 결론적으로 소프트웨어 엔지니어링/컴퓨터 엔지니어링/컴퓨터 사이언스쪽이 미래가 아주 밝기도하고 프로그래밍을 좋아하는 저로써는 1학년으로 돌아가더라도 이 분야를 선택할 것 같습니다.
위와 같은 정보를 더 얻고 싶다면 akcse.ubc.pub@gmail.com로 문의를 해주셔도 좋습니다. AKCSE (Association of Korean Canadian Scientists and Engineers)는 UBC 한인 학생회 중 하나로 Science와 Engineering을 전공하는 학생들이 모인 아카데믹 클럽입니다. UBC내에 선후배간의 커넥션은 물론이고 대학원생들 및 졸업생들과도 커넥션을 이어줄 수 있는 동아리입니다. 또한 많은 정보 및 팁을 가지고 있어 신입생들이 처음 대학에 들어와서 적응해야 할 시기에 큰 도움이 될 수 있을 것입니다. 앞으로도 유익한 정보를 계속 올릴 예정입니다. 많은 도움 되시길 바라며, 이상 AKCSE Publication Committee 멤버 남진솔, 양혜민, 이윤지가 작성하였습니다. 감사합니다.