전자전기공학과 대학원 과정 학생의 질문

painbaby의 이미지

안녕하세요.

저는 포항공대 EE (전자전기) 대학원에서 박사과정을 하고 있습니다. 핑계일수 있지만 제 스스로가 컴공과를 전공하지 않아서인지 프로그래밍 (코딩) 실력이 부족하다고 판단되어 질문을 남기게 되었습니다.

지금까지 대학원에서 제가 진행해 온 프로젝트와 연구들 대부분이 결과에 대한 Performance를 검증 할때 리눅스 환경에서 오픈소스 or 시뮬레이션 툴을 사용하여 진행되어 왔습니다.

그런데, 오픈소스나 시뮬레이션 툴을 설치 할때, 한번에 install 및 환경변수, Path등이 제대로 되어 구현을 한적이 없었던 것 같습니다.

수많은 시행착오를 통해 설치가 되고, 그 이후에 소스 코드를 분석할 때도 제가 디자인한 클래스 또는 메서드를 삽입할 경우 스크립트 파일 등에 등록을 해줘야 하는 등등 잘 짜여져 있는 코드들이라서 그런지 클래스간의 dependency?로 어려움이 많았습니다.

드리는 질문은 다음과 같습니다.

오픈소스를 설치하는 경우 선수작업으로 많은 패키지를 설치하고 path를 잡아주는데, 이러한 패키지들 각각의 의미와 어떻게 동작되는지 배울수 있는 서적 또는 노하우가 있을까요?

코드를 분석하고, 알고리즘을 프로그래밍 하는 것이 어렵다기 보단 환경 설정, 디버깅 툴, 프로그래밍을 위한 에디터 이클립스 설치 등 주변 잡다한 것들이 어렵습니다. 이러한 문제를 해결하기 위한 노하우를 배우고 싶습니다. 조언을 기다리겠습니다. 감사합니다.

shint의 이미지

...

//---------------------------------------
//저에 생각
//---------------------------------------
- 누군가. 잘 되게 만들어서 주기만 해도 됩니다.
- 그렇지만. 그건 권한 밖에 이야기가 많습니다.

남에 집 아이가 불량하다해서. 옆집 아줌마가. 가르치기는 어려운겁니다.
그러니. 함부로 법과 규칙을 만들어서 강제적용할 수 는 없습니다. 오히려. 조폭이나 강도. 사기꾼들이 하는짓이 되버리죠.

내가 군대 만들어도 되는지. 고민을 해봐야 합니다.

말씀하시는 어려움은. 기술적 문제가 원인은 아니라고 생각됩니다.

수학. 과학. 모두 잘할 수 있도록 만들 수 있습니다. 그런데 하지 않고 있습니다. 왜 그럴까요?
통신. 교통. 주거. 의료. 모두 무료로 만들 수 있습니다. 그런데 하지 않고 있습니다. 왜 그럴까요?
통일 지금도 할 수 있습니다. 왜 하지 않을까요?

어른들에 마음이 그렇다는 증거입니다. 어른이 바뀌면. 모두 바뀌게 될겁니다.

//---------------------------------------
//개발사가 노력하면 되는데. 돈과 시간. 인재가 부족한가 봅니다.
//---------------------------------------
- 각자에 욕심 부리느라. 더 어려워집니다.
- 이러니. 너도 나도 먹고 살겠다고. 유흥. 사행. 도박. 차별기술. 차별언어로 돈과 이윤을 얻기 바쁩니다.

//---------------------------------------
//컴파일. 환경변수. 경로등이 제대로 구현되지 않은 경우가 허다합니다.
//---------------------------------------
네. 맞습니다. 정말 개판입니다.
저도 국민학교때부터. 되지도 않는 GW-Basic 게임 만들기책을 보며. 1만줄을 따라서 처봤지만. 결국 실패했던 기억이 새록새록 나는군요.
Caps Lock 키를 이해하는데 3년이 걸렸죠. 도스 설명서 같은거 전혀 없습니다. 보석글. 로터스. 배너매니아. 해보면. 별로 쓸데는 없습니다.
1MB 플로피 디스켓으로 부팅해보려고. 끼웠다. 빼기만. 3년을 한거 같습니다.
가끔 페르시아의 왕자나. 젤리아드. F14 전투기. 호화롭다면. X-Wing 까지. 할 수 있었죠.
5년후에나 토탈어나힐레이션 같은 대작을 만나게 되었습니다. 프린세스메이커2도 이쯤에 나왔고...
Hard Parking 을 하지 않으면. 하드가 망가진다고. 두려움에 떨기도 했습니다.
2400 모뎀이 나왔을 무렵에는 전화세가 30만원이 나오는 기가막힌 일도 허다했죠. 그런데도. 접속한번 해보려고. 궁시렁 거렸습니다.

지난 10년동안 설치. 제거. 컴파일. 게임. 인터넷 검색. 하는 시간만 5년을 해야 했습니다.

질문 답변 한번에 1시간 3시간 6시간 12시간 일주일 2주일 1달 3달 6개월 1년 3년 5년 10년에 시간과 노력이 필요합니다.

아. 아무리 생각해도 개판입니다.
한. 10년 지나야지. 제품 하나 나오는 정도입니다.
한. 30년 기다리면. 제품 3개정도는 볼 수 있을거 같습니다. 포토샵이나. 한글이나. 플래시나...

프로그래머는 매일 야근하고. 이해가지 않습니다.
포털은 성인물로 넘치고.
제사는 하지도 않고.
한복도 입지 않습니다.
한글도 국어도 잘 모릅니다.

제대로 된게 하나도 없습니다.
카드니 뭐니. 통신도 다 돈 내야 합니다.

//---------------------------------------
//해결 방법
//---------------------------------------
- Microsoft 에 문의
- 소프트웨어 진흥센터에 문의
- 배포. 인증. 권한. 저작권.을 얻을것
- 리눅스 개발사에 문의
- 직접 운영체제 환경을 개발

//---------------------------------------
//우회적인 해결
//---------------------------------------
- 구글 플레이
- 3사 통합 앱스토어
- 삼성 스마트TV

//---------------------------------------
//사실 운영체제 자체가 자유를 막는 행위입니다.
//---------------------------------------
- 보편적 대화 시스템이기도 하지만. 개발자들에 자유를 막는 행위이기도 합니다.

//---------------------------------------
//설치에 관련되서라면.
//---------------------------------------
배포와 설치를 하는 방법에는
윈도우에서는 InstallShield 와 NSIS 를 사용하실 수 있습니다.
Visual Studio 에서도 가능한 버전이 있습니다.

//---------------------------------------
//각종 배포 허가 인증에 관해서라면...
//---------------------------------------
소프트웨어 개발해도 인증 받아야 하구요.
배포도 허가를 받아야 합니다.
권한도 얻어야 합니다.
보안도 허가를 받아야 하고.
저작권도 허가를 받아야 하고.
라이센스도 확인해봐야 합니다.

버전도 확인해야 하고.
언어도 확인해야 하고.

돈도 내야 합니다.
모듈별로 설치도 해야 하고.

게임 영상물 등급. 심의도 받아야 합니다.

개인 사업자인 경우는
사업자 등록
통신판매업 등록

웹서버는 SSL 인증서버에 서명을 등록해야 합니다.

식품은 식품 인증.
전자는 전파 인증.

여러가지 인증제도와 절차가 있습니다.

그래서. 이런것이 불편하고 어려우면.
이미 배포. 심의 권한을 허가 받은 업체와 포털과 제휴를 하시는것이 좋습니다.

SW 공모전과 대회도 있습니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

goforit의 이미지


>오픈소스를 설치하는 경우 선수작업으로 많은 패키지를 설치하고 path를 잡아주는데, 이러한 패키지들 각각의 의미
>와 어떻게 동작되는지 배울수 있는 서적 또는 노하우가 있을까요?

가장 근접하게 Autoconf/libtool/automake를 기반으로 프로그램을 한번 짜보세요. (라이브리러를 몇 개 넣어서)
이런 방법을 통해 프로그램을 배포하면 본인 스스로 라이브러리(패키지) 의존성을 집어 넣야하는데,
Linux 배포판마다, 각각의 배포판의 버전마다 부닥치는 것이 많습니다.

>코드를 분석하고, 알고리즘을 프로그래밍 하는 것이 어렵다기 보단 환경 설정, 디버깅 툴, 프로그래밍을 위한 에디터 >이클립스 설치 등 주변 잡다한 것들이 어렵습니다.

사실 이렇게 잡다하게 설정하는 것이 문제 해결의 반입니다. 논리적인 구현과 디버깅 자체는 일주일하면 그 자체 환경을 정확하게 셋업하는데 일주일이 걸리기도 합니다.
따라서 원래 그런 것이라고 인정하고, 이 런일을 반복을 최소화하기 위해서,
문서화 작업, Script 사용/ Vagrant 을 습관화하는 것이 좋다고 생각합니다.