리눅스 시스템 프로그래밍 관련 대학원 연구실이나 교수님을 알고싶어요

익명 사용자의 이미지

프로그램을 만들다 보니까 기본 이론에 대한 깊은 이해가 없으면 점점 날림 코드가 되더라구요...

대학원에 진학해서 부족햇던 학업을 더 공부 해 보고싶은데,

막상 웹에서 찾으려니까 키워드를 몰라서 그런지 모든 대학을 하나하나 다 뒤져보게 되네요.

우리나라에 리눅스 시스템 프로그래밍 관련해서 분위기 괜찮은 연구원이나 혹은 유명 교수님이 계신지요?

시스템 프로그래밍 중에서도 네트워크 소켓 프로그래밍 / 시스템관련 어플리케이션 관련된 분야를 하고싶고, 임베디드는 별로 흥미가 안가네요.

혹시 이런 분야에 관련된 분들을 찾을 수 있는 검색 키워드라던가 그런게 뭐가 있을까요?

jachin의 이미지

아마 '소프트웨어 공학'을 공부하고 싶으신 거라 생각합니다.

기본 이론이라면, '컴파일러 구조'나 '컴퓨터 프로그래밍 언어론'
을 말씀하시는 것이고요. 리눅스 시스템 프로그래밍은 학과 개설 과목으로
'유닉스 시스템 프로그래밍'이나 '시스템 프로그래밍' 과목을 찾아보시면
되겠지만, 굳이 그렇게 배우시지 않으셔도, 충분히 자기학습이 가능한
내용입니다. 물론 '운영체제 구조'같은 과목을 들으시면 리눅스 시스템
프로그래밍에 대한 기본 이론을 습득하실 수 있습니다.

꼭 '유명 교수님'을 찾아야 할까요? :)
제일 좋은 선생님은 자기 자신입니다.

익명 사용자의 이미지

소프트웨어 공학이란 단어를 생각 못햇네요.

교수님은 사실 '유명' 이 문제가 아니겟죠, 정확히는 '연구원을 등처먹지 않는' 이겟네요.

학부시절 연구실에서 노비살이하던 연구생을 봐서 그런게 없는 연구실을 들어가고싶어서요.

어딜가나 분위기 라는건 참 사람에게 많은 영향을 끼치는 것 같습니다.

daybreaker의 이미지

"소프트웨어 공학"은 좀 다릅니다. 소프트웨어 개발 방법론·프로세스 또는 개발 도구나 환경을 어떻게 하면 더 좋은 품질의 소프트웨어를 만들 수 있을 것인가에 대해 연구하는 분야죠.
원글에서 말씀하신 내용은 "시스템" 분야를 말씀하시는 것 같은데, 시스템이라는 말 자체의 범위가 워낙 넓기 때문에 딱 짤라 말할 수는 없지만, OS 커널 수준 혹은 커널 바로 위(드라이버나 드라이버를 이용하는 user-level 프로그램) 수준에서 네트워킹과 관련된 내용을 다뤄보고 싶으신 것 같습니다.

어쩌다보니 제가 딱 그런 일("네트워크 시스템")을 하는 연구실에 있습니다.
보통 국내 대학원에서 네트워크를 연구한다고 하면 무선네트워크나 임베디드 쪽을 많이 생각하는데, 제가 있는 곳은 리눅스 기반 서버급 네트워킹 문제를 주로 다룹니다.
(연구실 내에 시스템 말고 아예 다른 종류의 네트워크를 다루는 팀도 있습니다. 소셜네트워크 분석이라든지...)
저는 리눅스 커널 자체를 수정하지는 않지만 커스텀 네트워크 드라이버와 GPU를 기반으로 고성능 패킷 처리 시스템을 구현하는 연구를 하고 있지요.

개인적으로 느끼기에 시스템 쪽이 연구로 하자면 쉬운 분야는 아닌 것 같습니다. 연구라는 건 결과가 코드보다는 논문으로 나와야 하는데, 좋은 논문 쓰는 건 코딩보다 훨씬 더 어려운 것 같아요. :)
그래도 그냥 있는 거 가져다 써서 잘 조합해서 결과물을 내놓는 것보다는, 스스로의 아이디어와 로직을 통해 다른 전문가들(교수나 동료, 논문 심사자 등)을 설득해가는 과정을 배우는 것이 장점 같습니다.

대학원생과 교수님의 관계는 워낙 특수(?)하기 때문에 정말 case-by-case (..이건 뭐 연애도 아니고 ㅋㅋ) 같습니다. 일보다 사람이 어려운 법이죠.
중요한 건 투명하게 연구실 재정이 운영되느냐, 학생들이 잡무에 시달리지 않고 연구에 얼마나 집중할 수 있게 해주느냐인 것 같습니다. 예를 들면, 연구비 계정 처리하는 게 상당히 복잡한 일인데 별도의 사무원을 고용하면 대학원생들이 그런 부분에서 해방될 수 있습니다.
참고로 교수님한테 직접 코딩이나 시스템 지식을 배운다기보다는, 그런 실무적인 부분은 선배들로부터 배우는 게 많고 교수님한테는 논문 흐름을 전개하는 방법이나 좋은 발표를 하는 방법 같은 걸 배우게 되는 것 같습니다.
좋은 선배가 있는 연구실을 찾아가세요. ㅎㅎ

ps. 연구하는 것과 코딩하는 것은 좀 괴리(?)가 있어서, 연구하며 코딩한다고 날림코드가 안 되지는 않습니다.
오죽하면 http://matt.might.net/articles/crapl/ 이런 게 다 나왔을까요....ㅠ_ㅠ
중요한 건 핵심 아이디어를 얼마나 정확히 (그리고 논문데드라인 전에....) 구현했느냐인 것이지 깔끔한 코드를 만드는 게 목표가 아니거든요.;;

익명 사용자의 이미지

대학원 연구실이라는 곳이 지도 교수에 따라 매우 다른 환경을 갖게 됩니다.
관심 있는 대학의 연구실로 직접 연락하고 문의를 해보는것이 어떨런지요?
특히, 연구실 홈페이지를 보게 되면 연구원들 프로필이 올라와 있을겁니다.
해당 연구실의 연구원(박사급, 석사2년차 급)에게 직접 메일 또는 전화로
상담해 보고, 졸업생 연락처도 대부분 있을 겁니다. 해당 연구실 졸업생에게
메일로 상담해 보는게 좋을 듯 싶습니다. 이와 동시에 해당 연구실의 교수님께도
연락을 취해보는것도 필수 입니다. 대학원이라는 곳이 최소 2년이상을 생활하는
곳이기에 신중히 고려해 보는것이 좋을 듯 싶습니다.

대학원은 특정 '스킬'을 가르쳐 주는 곳이 아닌 특정 분야, 주제에 대한 '연구'를 하는 곳입니다.
질문자께서 배우고자 하는 시스템프로그래밍 관련 스킬을 배울 수 있는 곳을 찾기 보다는
그러한 스킬을 사용하는 기술분야를 찾는게 맞지 않나 생각합니다.(예를 들어 OS연구실, 네트워크 연구실, 컴파일러 연구실, etc)

익명 사용자의 이미지

관련분야 교수님께 저는 누구이고 어쩌어쩌 한 사람입니다~ 해서 메일을 보냇죠

음...

어쨋든 신경써주셔서 감사합니다.