기획 연재
컴퓨터공학부를 소개합니다
공대상상 2018 Spring Vol. 23
글 건축학과 2,
이정윤
편집 재료공학부 4,
김유리
안녕하세요 독자 여러분! ‘공대’라는 단어를 들었을
때
여러분께
가장
먼저
떠오르는
이미지는
무엇인가요? 수학,
물리,
기계
등
다양한
이미지가
있을
것
같은데, 분명
컴퓨터를
떠올린
독자분들도
많을
것 같아요! 컴퓨터 공학은 현대사회의 핵심적인 IT기술을 이끈다고 해도 과언이 아닌데요, 그만큼 컴퓨터 공학에 대해 더 알아보고 싶으신 독자분들, 또는 컴퓨터 공학이 생소하신 분들을 위해 준비했습니다! 이번 호에서는 서울대학교의 컴퓨터공학부에서 어떠한 공부와 연구를 하고
있는지
자세히
알아보는
시간을
갖도록
해요!
컴퓨터공학부에서는 말 그대로 컴퓨터 공학의 학문을 심도 있게 공부해요. 컴퓨터의 구조 및 설계, 네트워크, 소프트웨어 등 기초적인 이론뿐만 아니라 모바일 컴퓨팅, 그래픽스, 바이오 컴퓨팅, 전자상거래 등 다양한
첨단의 영역까지 연구를 확장하고 있습니다. 또한 컴퓨터공학부는 정부나 민간에서 요구되는 연구과제들을 성공적으로 수행하면서, 인류가 꿈꾸는 행복하고 편리한 세상을 위해 변화와 혁신, 연구와 도전을 계속하고 있어요.
컴퓨터공학부에서는 무엇을 배우나요?
컴퓨터공학부에는 다양한 전공분야가 존재합니다. 이는 크게 세 가지 분야로 나눌 수 있는데요, 이론 분야, 시스템과 네트워크 분야, 응용 분야가 있습니다.
먼저 컴퓨터의 이론을 연구하는 이론 분야를 알아봅시다. 이론 분야에는 첫 번째로 컴퓨터가 문제를 해결하기 위해 필요한 일련의 절차인 알고리즘이 있습니다. 다양한 알고리즘 개발과 분석 기법을 배우고, 귀납적 · 재귀적 사고방식을 통해 문제를 접근하고 해결해나가는 방법을 배워요. 컴퓨터가 필요로 하는 자원의 양은 알고리즘을 어떻게 설계하느냐에 따라 큰 차이가 생기게 되기 때문에 처리능력과 직결되는 부분이라 할 수 있어요. 알고리즘을 잘 설계한다면 적은 자원으로도 많은 데이터 량을 처리할 수 있겠죠?
두 번째는 프로그래밍 원리와 소프트웨어 공학입니다. 프로그래밍 원리는 논리와 기획 중심의 프로그래밍 기술을 통해 프로그램 작성의 기본 원리를 습득하여 시스템이 드러내는 복잡성을 손쉽게 다룰 수 있도록 하는 데 목표가 있습니다. 소프트웨어 공학은 소프트웨어 생산품의 생산과 유지를 위한 체계적인 기술과 관리에 관한 학문분야로서 소프트웨어 생산품의 질을 향상시키고 생산성을 증가시키는데 그 목적이 있는데요, 적절한 함수를 만드는 등 엄밀한 논리적 과정을 통해 프로그램이 오류 없이 작동할 수 있는지 검증하는 과정이에요. 이러한 이론 분야들은 컴퓨터의 수학적 기반을 다진다고 할 수 있습니다.
컴퓨터의 수학적 기반을 다졌다면, 공학적인 기반을 다지는 분야도 있어야겠죠? 그것은 바로 시스템과 네트워크 분야인데요, 컴퓨터의 운영체제 및 임베디드 시스템(Embedded System), 그리고 네트워크 등에 대한 연구로 컴퓨터가 작동하는 구조를 분석하여 컴퓨터의 성능을 향상시키는 데 그 목표가 있습니다. 먼저 운영체제의 역할과 설계과정을 공부하여 컴퓨터가 전체적으로 작동되는 시스템을 이해합니다. 또한 컴퓨터 외의 다른 기기에 특정 기능을 수행할 수 있도록 컴퓨터 시스템을 특수화시켜 개발하는 임베디드 시스템 역시 연구분야 중 하나입니다. 최근 많이 등장하고 있는 스마트 워치, 스마트 냉장고 등 그 영역은 매우 넓죠!
마지막으로 컴퓨터의 다른 기기와의 네트워크에 대해 연구합니다. 물론 컴퓨터 한 대가 외로이 수행하는 작업도 많지만 최근에는 컴퓨터끼리, 혹은 다른 스마트 기기들 간의 상호작용을 통해 질 높은 작업을 수행할 수 있도록 네트워크 보안, 무선 네트워크 기술 등 네트워크에 대한 많은 연구가 진행되고 있습니다.
마지막으로 이렇게 기반을 다진 공학 기술을 어떠한 분야에서 어떻게 응용하고 적용시키고 있는지 알아봅시다. 재작년 알파고의 등장으로 전 세계의 이목을
끌었던 인공지능 역시 컴퓨터 공학의 연장선에 있습니다. 인공지능 개발은 환경 변화에 적응하고 진화하는
사람의 능력을 모사하여 문제를 해결하는 소프트웨어와 하드웨어를 개발하는 것이 주 과제라고 할 수 있어요. 두 번째로 컴퓨터 그래픽스는 사람과 물체의 움직임을 분석하여 컴퓨터로 시뮬레이션을 할 수 있도록 하여 현재 영화산업, 의학, 게임 등의 분야와 활발히 협업해 응용되고 있어요! 이 밖에도 컴퓨터 공학의 응용분야는 데이터베이스, HCI(Human-Computer Interaction) 등 그 영역이 매우 넓고 다른 분야와의 협업할 수 있는 가능성도 무한합니다!
이처럼 서울대학교 컴퓨터공학부에서는 정말 다양한
분야에서 활발한 연구가 진행되고 있습니다. 이뿐만 아니라 학생 지원 시설이나 서비스가 잘 갖추어져 학생들의 주체적인 활동을 적극 지원하고 새로운 지식을 창조할 수 있는 미래의 지도자를 양성하는 데 힘쓰고 있다고 합니다. 독자 여러분이 컴퓨터 공학에 한걸음 다가가는 글이 되었기를 바라며, 소개를 마치도록 하겠습니다!
컴퓨터 알고리즘
컴퓨터 네트워크 인공지능
컴퓨터공학부에 대한 궁금증을 파헤쳐보자
글 화학생물공학부 2,
노주현
편집 에너지자원공학과 1,
김주원
>>>
컴퓨터공학부 입시를 준비하면서 특별히 준비한 것이 있나요?
컴퓨터공학부라고 하면 기초과학과 관련된 지식이 그렇게 크게 중요하지 않다고 느껴지고 실제로도 그러합니다. 우리나라 고교의 일반적인 커리큘럼에서는 컴퓨터공학에 관련된 지식을 쉽게 접할 수 없기 때문에 직접 찾아서 학습한 것이 많습니다. 기초적인 과정이라 할지라도 컴퓨터 언어에 대한 이해와 학습을 해야 내가 이 분야에 적성이 맞는지 아닌지 확인할 수 있을 거라고 생각하여 C, JAVA 등의 언어에 대한 정말 기초적인 학습을 하였습니다. 또 컴퓨터공학도로서 가야 할 길, 4차 산업혁명 등 컴퓨터 및 IT산업에 대한 전망을 확인하고 자신의 미래를 설계하기 위해 딥러닝, AI 등과 관련된 책도 읽었죠. 그 외에도 컴퓨터 코딩에서 제일 중요한 것이 논리적으로 문제를 쪼개고 수학적으로 이를 표현하는 것이기 때문에 논리적으로 사고하는 습관을 가지려고 노력했습니다.
서울대학교 301동 컴퓨터공학부 건물
>>>
컴퓨터공학도로서 필요한 자질과 덕목이 무엇인가요?
컴퓨터공학도로서 필요한 자질은 논리적 사고력 및 컴퓨터 활용능력이라고 생각합니다. 컴퓨터 하면 생각나는 게 바로 ‘코딩’인데, 코딩은 컴퓨터의 언어를 이용하지만 단순히 언어만 안다고 되는 게 아니라 그 언어를 알고 자유자재로 사용할 줄 알아야 합니다. 또 코딩을 할 때나 알고리즘 문제를 풀 때 자신이 놓치는 부분이 있어선 안 됩니다. 모든 경우를 포함하는 솔루션을 내기 위해서 자신이 지금까지 설계한 부분이 어떻게 동작하는지 파악해야 하고, 원하는 결과를 얻기 위한 추가적인 방식을 떠올려야 합니다. 이때 논리적으로 내가 생각한 방식이 맞는지, ‘A는 B라서 C다’라는 식의 논리적 설계가 잘 되어 있는지 등 논리적인 사고력을 가지고 행동하는 것이 많은 도움이 되는 것 같습니다. 즉, 언어를 배울 수 있는 능력과 이를 이용하여 창의적인 것을 설계하거나 주어진 것을 활용할 줄 아는 능력과 논리적인 사고력, 그리고 꼼꼼함이 도움이 되는 것 같습니다.
>>>
컴퓨터공학부에서 물리, 화학, 생물 등의 전문적인 과학 지식을 다루나요?
물리, 화학, 생물들의 과학 지식을 심도 있게 다루지는 않습니다. 하지만 1학년 때 어느 정도의 기초과학을 학습하며, 물리 및 전자기기에 대한 기본적 지식이 있다면 컴퓨터의 구조나 작동원리를 이해하는 데 큰 도움이 될 수 있습니다. 또한 필수적인 것은 아니지만 컴퓨터를 이용해 물리, 화학, 생물 등의 전공과 연계하여 다양한 실험을 하거나 시스템을 개발하기도 합니다. 특히 생물 분야에서는 뇌 정보 처리 혹은 유전자 정보 처리 등 정보와 관련된 시스템을 모방하거나 관련 정보를 저장하고 예측하는 시스템을 만들기도 한답니다.
>>>
컴퓨터공학부와 전기정보공학부의 큰 차이점이 무엇이라고 생각하시나요?
전기정보공학부는 통신, 제어, 반도체, 컴퓨터 등 전기적 특성이 이용되는 분야 전반에 대해 배우고, 그 중 하나의 모듈로 컴퓨터라는 분야가 있는 반면에 컴퓨터공학부는 컴퓨터 및 프로그래밍에 집중해서 배웁니다. 물론 전기와 컴퓨터를 떼어놓고 말할 수 없기 때문에 컴퓨터공학부에서도 ‘전기전자회로’라는 수업이 열려 트랜지스터, 인버터, 다이오드의 특성을 배웁니다. 전기정보공학부에서도 자료구조, 알고리즘, 운영체제 등 컴퓨터 관련 수업이 열립니다. 다만 앞에서 말한 것같이 수업이 열리는 분야와 집중해서 배우는 파트 및 깊이에서 조금 차이가 있는 것 같습니다. 전기정보공학부는 하드웨어에 집중하고, 컴퓨터공학부는 소프트웨어 분야에 집중하죠. 물론 두 분야 모두 하드웨어와 소프트웨어 및 전반적인 컴퓨터에 대해서 배우므로 자신이 컴퓨터를 전공하고자 할 때도 어떤 세부적인 분야가 자신에게 맞는지를 확인하고 진학했으면 합니다.
>>>
고등학교 때 생각했던 컴퓨터공학부와 대학에 와서 직접 느낀 컴퓨터 공학부의 다른 점이 무엇인가요?
고등학교 때는 막연히 대학에 가면 코딩만 할 줄 알았습니다. 그런데 그뿐 아니라 우리가 컴퓨터 언어로 코딩을 하면 컴퓨터는 그것을 어떻게 받아들이는지, 어떤 장치들이 있는지 등의 지식 또한 배우고, 소프트웨어뿐만 아니라 하드웨어도 굉장히 비중 있게 다뤄서 놀랐습니다.
열리는 전공 수업을 보면 거의 반반인 것 같습니다. 다행히 처음에 딱딱하게만 여겨졌던 하드웨어 과목들도 수업을 들어보니 너무 매력적이고 흥미로워 재미있게 공부하고 있습니다. 물론 그래도 제일 많이 배우고 사용하는 건 코딩이지만요! (웃음)
컴퓨터 공학:
코딩