​설빙​ [889877] · MS 2019 (수정됨) · 쪽지

2019-12-19 17:56:36
조회수 16,083

학과소개 - 컴퓨터공학과

게시글 주소: https://faitcalc.orbi.kr/00026351356

1. 서론


컴퓨터공학은 이 세상 대부분의 학문 분야와 결합하여 응용될 수 있는 정보화 시대의 기본 학문입니다.


 


최근, 컴퓨터공학은 의학, 신약, 생명공학, 교육, 로봇, 기계 등 다양한 분야와 결합하여 예전에 풀기 힘들었던 문제들을 해결하고 있습니다. 알파고가 바둑계를 평정한 일, 자동차가 스스로 운전하여 주행하게 만드는 일, 예전에는 만들지 못했던 새로운 치료제를 만들어 내는 일, 의사들도 해독하기 힘들었던 증상들을 판독하는 일 등, 세상의 모든 사물을 연결하는 일의 핵심에는 모두 컴퓨터공학이 있습니다.
 

하지만 컴퓨터공학과는 적성을 많이 탄다는 단점이 있습니다. 자기 전공을 취미로도 영위할 수 있는 몇 안되는 과 중 하나라는 장점이 있지만. 프로그래밍을 정말 잘하거나 재밌어하는 부류프로그래밍을 정말 못하는 부류로 극단적으로 나뉘는 경우가 많습니다. 이 때문에 컴퓨터공학과 전공에 재미를 느끼거나, 재능이 있지 않는 이상 사회적으로 성공한 프로그래머가 되기에는 난이도가 있습니다.


실제로 컴퓨터공학과는 같은 직군내에서도 연봉격차 혹은 대우가 엄청나게 차이가 난다고 합니다


물론 취업을 위해 간단하게 6개월간 학원에서 코딩을 배워서 입사한사람과 서울에 있는 4년제 대학교에서 컴퓨터공학과를 전공한 사람하고 실력의 차이가 나지만, 실생활에서 많이 쓰이는 코딩과 앱 개발의 경우 속성으로 배울 수 있기에 진입장벽이 상대적으로 낮은 편에 속합니다.


이 때문에 컴퓨터공학과 전공자가 타전공자들과 차별화하려면 언어는 물론이고 다른 서버쪽이나 데이터베이스, 운영체제에 대한 끊임없는 공부가 필요합니다.


컴퓨터공학과는 코딩이나 개발이 아니라, 컴퓨터가 어떻게 돌아가는지 배우는 학과입니다. 컴퓨터공학과 전공들은 대부분 컴퓨터를 이해하는 커리큘럼으로 흘러가지 컴퓨터를 이용하는 개발을 위주로 배우지는 않습니다. 그리고 수학적 논리가 굉장히 중요해서 수학과 관련한 지식을 상당히 필요로 합니다.


이 때문에 수학적인, 특히 알고리즘적인 사고를 습득하지 못한다면 전공을 따라가는데 어려움을 겪을 수도 있습니다. 코딩은 진입하기는 쉽지만 깊게 파고들면 진입장벽이 있는데다가 컴퓨터공학과에서 요구하는 코딩은 타 단과대에서 요구하는 코딩보다 훨씬 더 고차원적이기 때문에 실무능력, 즉 실력이나 경력이 엄청 중요한 전공입니다.


이 과정에서 컴퓨터자체에 대한 본인의 적성, 흥미가 없다면 공부를 지속하기가 힘들 수도 있습니다.


하지만 컴퓨터공학과만큼 자신의 재능을 살려 실력을 발휘할 수 있는 학과는 없습니다.

전세계적으로 IT 기술이 쓰이지 않는 데가 없으며 AI, VR, 모바일, 소프트 산업은 미래산업으로 각광받아 엄청난 속도로 상승하고 있기 때문에 취업 또한 어렵지 않습니다. 또한 개인의 능력이 확연히 드러나기 때문에 온전히 자기 능력으로 인정받을 수도 있고, 스타트업을 시작하는 진입장벽도 낮은 편입니다. 우리나라에서 자수성가한 분들은 거의 다 IT계열에 종사하셨던 분들인 만큼 자기 재능을 살릴 수 있으면 포텐셜이 제일 높은 전공입니다.


따라서 컴퓨터공학과를 한 줄로 요약하자면,


“적성을 많이 타지만 노력한 만큼 결과가 나오는 현재 가장 촉망되는 학과”


으로 요약할 수 있습니다.



2. 컴퓨터공학과에서 배우는 내용


 


(그림 1. 연세대학교 컴퓨터과학과 전공흐름도)


컴퓨터공학과 입학 전에 코딩을 어느정도 공부해야 하는가요?


사실 대부분의 학생들이 대학에 들어와서 처음 프로그래밍을 배우기 때문에 프로그래밍을 전혀 못해도 큰 상관이 없습니다. 어차피 다들 동일하게 수시 혹은 정시를 준비하고 왔고 코딩을 전문적으로 준비한 학생들은 소수이기 때문에 거의 다 똑같은 출발선상에서 공부를 시작합니다


단, 원서 지원을 컴퓨터공학과로 하기 전에 간단하게 코딩을 배워보면 (파이썬 기초강의) 왠만한 전공과목들이 다 코딩을 기반으로 가르치기 때문에 컴퓨터공학과가 자기 적성인지 아닌지를 알 수 있다는 장점이 있습니다. 


문과에서 컴퓨터공학과 교차지원은 어떠한가요?


컴퓨터공학과의 전공들은 고등학교에 배운 이과내용과 크게 상관이 없는 것이 많고, 어떻게 보면 문과스러운 과목도 많기 때문에 문과에서 교차지원을 하더라도 불이익이 없습니다.


특히 전자공학과, 기계공학과, 화학공학과 같이 공학수학과 공학물리를 기본적으로 깔고 들어가야하는 공과대학 중에서 컴퓨터공학과는 문과 학생분들에게 진입장벽이 상대적으로 낮은 학과입니다.


하지만 컴퓨터공학과는 다른 공과대학만큼 수학적 사고방식을 필요로 하는 학과입니다.

이과 교육과정 내 고교수학은 물론이고, 대학에 와야 본격적으로 접할 수 있는 이산수학 알고리즘, 선형대수학, 다중미적분, 미분기하학 등이 아주 많이 쓰입니다. 이 때문에 수학적인, 특히 알고리즘적인 사고를 습득하지 못한다면 전공을 따라가는데 어려움을 겪을 수도 있습니다.
 
 

전자공학과와 컴퓨터공학과의 차이


전기전자공학과에서는 컴퓨터의 하드웨어를 물리를 통해 중점적으로 다루기 때문에 전자/반도체 개발 분야를 공부하면서 이쪽 분야에서 아주 낮은 수준의 소프트웨어 개발자가 될 수도 있습니다


하지만 컴퓨터공학과는 하드웨어보다 소프트웨어를 중점적으로 다루고 물리와도 연관이 별로 없습니다. 컴퓨터공학과에서 배우는 하드웨어 관련 지식은 전자전기학에 비해서는 아주 낮은 수준입니다.


컴퓨터공학과와 소프트웨어학과와의 차이
 
컴퓨터공학에서는 컴퓨터의 하드웨어 전공과 소프트웨어 전공을 동시에 이수합니다. 소프트웨어보다는 하드웨어, 알고리즘, 운영체제론 등 기술의 응용보다는 좀 더 기계에 가까운 쪽으로 커리큘럼이 진행됩니다.


소프트웨어학과의 경우 필수로 이수해야 하는 하드웨어 전공 외에는 전부 소프트웨어 관련 전공으로 구성되어 있습니다. 소프트웨어학과는 기존 컴퓨터 전공에서 소프트웨어에 좀 더 중심을 두고 소프트웨어에 특화된 교육을 실무 위주로 배우기 위해 생겨났기 때문에 다양한 이론과 프로그래밍 언어에 대해 중점적으로 공부하고 연구하는 학과입니다. 현재 가장 이슈화 되고 있는 웹,서버,안드로이드 등을 좀 더 심층 있게 배우기도 합니다.
 

컴퓨터공학과 내 중요한 전공 


객체지향프로그래밍 


객체 지향형 프로그래밍은 C 프로그래밍에서 실행 순서와 동작 내용을 고려한 함수 단위로 프로그램을 설계하고 구현하는 것과는 달리, C++나 Java의 클래스를 기반으로 객체 (object)를 설계하며, 각 단위 객체별로 시스템 안정성, 데이터의 보호 및 상세 구현 정보 은닉, 소프트웨어 재사용성, 시스템 확장성 등의 장점을 제공함으로써, 이들 객체를 기반으로 큰 규모의 시스템을 개발할 수 있게 하는 좋은 시스템 설계 및 구현 기법을 제공합니다.


자료구조 


전공을 이수하기 전에 객체지향프로그래밍을 이수해야 하고, 만일 이수하지 않았다면 기본적인 코딩능력이 있어야 합니다. 예를 들어 c++만 알고 다른 언어는 모른다면, 문법은 좀 다르지만 비슷한 java를 어느정도 활용할 수 있는 능력을 가지고 있어야 합니다.


컴퓨터공학과에서 매우 중요한 전공입니다. 하드웨어를 하든 소프트웨어를 하든 어디에도 빠지지 않는 내용들인 소팅 기법들, 다 익스트라 알고리즘, 스택, 큐, 힙 종류 등 자료를 담는 체계는 사실 프로그램을 구상하는 가장 핵심적인 부분을 배우기 때문에 컴퓨터공학과를 복수전공, 혹은 전과를 하기 위해서 필수적으로 이수해야하는 전공 중 하나입니다.
 
컴퓨터 아키텍처  


아주 중요한 전공중 하나입니다. 아카텍처의 길은 험하지만 프로그래머로서 실력을 향상하기 위해선 필수로 이수해야하는 전공입니다. 프로그래밍에 있어 어느 경지에 오르기 위해서는 하드웨어에 대한 이해가 필수적이기 때문에 하드웨어의 베이스를 배운다는 점에서 중요합니다. 컴퓨터 시스템의 개요에서부터 성능, 프로세서 설계, 메모리 및 입출력장치, 고급 기술인 파이프라이닝, RAID, 캐시 메모리, 병렬 처리 등을 다루는 등 컴퓨터의 동작 원리를 폭넓게 이해할 수 있습니다.

 

운영체제 


미지의 세계에 발을 들여놓는 느낌이 드는 정도로 기존과는 생소한 전공입니다. 윈도우, 맥을 다루지 않고 리눅스라는 운영체제를 다루고, 기본적인 프로세스 개념, 쓰레드 개념도 배우고 스케줄링도 배우고 싱크로나이즈도 배우고 전반적으로 어떻게 돌아가는지를 배우게 됩니다.
 
 

그 이외로 인공지능, 정보보호, 컴퓨터 비전 등 다양한 전공과 세부전공들이 존재합니다.
 


 

3. 학부졸업후 진로
 

자연대업계는 주로 경기충청권 연구소, 조선기계업계는 주로 경상도 부근, 화학업계는 주로 울산이나 전남 부근. 전자공학업계는 주로 파주 구미 쪽에 취업을 하게 되지만, 그에 비해 컴퓨터공학과를 전공한다면 거의 수도권에 있는 회사에 취업을 하게 됩니다.


기업은 삼성, LG, 구글, 마이크로소프트, IBM 등 국내외 IT 업체, 이동통신업체, 컴퓨터개발업체, 게임개발업체, 애니메이션관련업체, 정보보안전문가, 정보분석가, 등 소프트웨어 개발이 필요한 업체 등이 무궁무진하게 있습니다.


연구계의 경우, 항공우주연구소, 국방과학연구소, 융합소프트웨어 연구소 등에서 일하거나 정보통신교육원, 정보통신정책연구원, 전자통신연구원 등의 직업을 가질 수 있습니다.


정부·공공기관·기타의 경우는 정보통신을 기반으로 하는 교육행정직·전산직·경찰직 등의 공무원, 국책연구소, 한국콘텐츠진흥원, 한국소프트웨어진흥원, 국가정보원, 한국전자통신연구원, 법조인, 변리사 등의 직종에 진학할 수 있습니다.


이외에도 시스템 관리자, 네트워크 관리자, 소프트웨어 공학자, 프로그램 개발자, 임베디드 개발자, 웹 개발자, 게임 개발자 등등 컴퓨터공학과를 졸업하고 할 수 있는 직업은 셀 수 없이 많습니다.



컴퓨터공학과에서는 얻을 수 있는 자격증으로는


진로를 보안으로 희망하시는 분들이 준비하시는 정보보안기사 자격증, 그 외의 진로를 희망하시는 분들은 정보처리기사 자격증을 준비합니다. IT 계열은 자기의 실질적인 능력이 얼마나 되느냐가 중요해 자격증의 중요성이 타 학과에 비교하여 상대적으로 적습니다. 정보처리기사는 난이도가 낮은 자격증이지만 정보보안기사는 회당 응시자 대비 합격자 숫자가 3% 도 안 되기 때문에 보안현업자들도 깊이 공부하고 준비하는 자격증입니다.


보안 쪽을 공부한다면


컴퓨터공학과에 진학하게 된다면 학부 시절에는 보안 관련 과목을 이수하는 기회가 상당히 적기 때문에 왠만하면 대학원 진학을 해야 합니다. 아예 보안을 제대로 공부하고 싶다면 고려대 컴퓨터학과, 중앙대 산업보안학과, 아주대 사이버보안학과 등등 보안 특성화과를 찾아보시는 것도 좋습니다. 다만, 다른 분야에 비해서 아주 공부하기가 어려운 분야라는 점은 염두에 두어야 합니다.




4. 결론


컴퓨터공학과의 전공 중 하나인 <시스템프로그래밍>을 예로 들자면,


이 전공은 시스템 프로그래밍이나 코딩이 중심이 아니라 컴퓨터가 어떻게 돌아가는지 이해하고 응용하는 것이 중심입니다.


0과 1로 대체 컴퓨터를 어떻게 만들 수 있는가, 

그 내부 조직 구조는 어떻게 되는가, 

가장 machine에 가까운 수준에서 어떻게 데이터들을 I/O하는가, 

ctrl+c ctrl+v가 작동하도록 만들기


와 같이 컴퓨터공학과의 전공은 코딩으로 무언가를 창출해내는 작업을 하기보다는 컴퓨터 이론을 완벽히 이해하고 코드로 구현해보기가 핵심입니다. 이 때문에 컴퓨터공학과하면 흔히 생각나는 코딩은 단지 컴퓨터에 대해 이해하기 위한 수단에 불과합니다. 


다른 과목들을 봐도 흔히 생각하는 개임 개발, 앱 개발과 같은 내용이 있는 과목은 찾아보기 힘듭니다. 게임 개발, 앱 개발 같은 것들은 컴퓨터를 이해한다기보단 컴퓨터를 이용하는 내용이기 때문에 컴퓨터와 소프트웨어를 공학적으로 배우는 컴퓨터공학과에서는 중요도가 뒷순위로 밀리기도 합니다.


컴퓨터공학과에서 중요하게 다루어지는 내용은 바로 우리가 만드는 프로그램은 컴퓨터가 어떻게 해석하는가, 우리가 입력하는 데이터는 컴퓨터에서 어떻게 처리되고 저장되는가, 우리가 구현하는 프로그램의 데이터가 어떤 과정을 통해서 상대방에게 전송되는가, 견고한 프로그램을 만들기 위해서 고려해야 할 사항과 설계는 어떤 것인가 등등입니다. 이러한 근본이 되는 전공들을 배우는 과정에서 앱도 만들 수 있게 되고 또 앱을 제작하는 프로그램을 제작할 수도 있게 됩니다.


이 때문에 컴퓨터공학과에 진학하기 전에 우선 자신이 무엇을 개발하고 싶은지 한 번 잘 고민해 보고, 목표를 세우 다음에 컴퓨터공학과에 진학한다면 추후 진로를 설정하는데 있어 큰 도움이 되리라 믿습니다.


코딩 입문에 도움이 되는 책을 몇개 소개하고 이만 칼럼을 마치도록 하겠습니다.




A - 점프 투 파이썬 – 박응용 지음




『점프 투 파이썬』은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 쓰여진 책입니다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어써 있고, 파이썬이란 언어의 개별적인 특성만을 강조하지 않고 프로그래밍 전반에 관한 사항을 파이썬이란 언어를 통해 알 수 있도록 알기 쉽게 설명되어 있습니다.


파이썬에 대한 기본적인 지식을 알고 있는 사람이라도 파이썬 프로그래밍에 대한 흥미를 가질 수 있는 좋은 안내서가 될 것이며. 초심자에게 파이썬을 통해 프로그래밍에 대한 전반적인 이해를 갖게하고 파이썬이라는 도구를 이용하여 원하는 프로그램을 쉽게 만들 수 있는 가이드를 제공합니다.


온라인으로 교재를 열람할 수 있습니다.


https://wikidocs.net/book/1




B - Java의 정석 – 남궁성 지음



『Java의 정석』은 자바 프로그래머로써 반드시 알아야하는 것을 모두 담은 책입니다.


자바를 시작하는 사람들의 입장에서 쓴 책으로 자바를 소개하는데 그치지 않고 프로그래머로써 꼭 알아야하는 내용들을 체계적으로 정리하였으며 200페이지에 달하는 지면을 객체지향개념에 할애함으로써 이 책 한 권이면 객체지향개념을 완전히 이해할 수 있도록 원리중심으로 설명하고 있습니다. 


뿐만 아니라 자바의 최신 기능인 람다와 스트림을 상세히 소개하고 있으며, 그 밖에 자바의 최신버젼인 Java8의 새로운 기능들을 자세히 설명하고 있기도 합니다.  저자가 직접 인터넷 카페를 통해 동영상 강좌를 지속적으로 업데이트하여 제공하고 질문게시판을 운영하고 있기 때문에 독자들이 혼자서도 충분히 학습할 수 있습니다.



긴 글 끝까지 읽어주셔서 감사합니다!

도움이 되셨다면 더 많은 분이 볼수 도록 좋아요를 누른 다음에

목록으로 돌아가기를 통해 다른 가이드를 찾아보세요


목록으로 돌아가기


 
 

0 XDK (+100)

  1. 100