소프트웨어를 전공하는 친구를 통해서 얼핏 들은 이야기 인데
코딩 수업을 리눅스로 진행한다고 하더라구요.
주로 뭘 하는지 물어봤더니 gprof? 라는걸 가지고 프로파일링을 한다고 합니다.
이 얘기를 듣고 문득 든 생각이
코딩을 가르치는 대학 수업에서도 리눅스를 사용하고,
현업에서도 리눅스를 많이 사용한다고 하는데,
독학으로 공부중인 저는 윈도우밖에 사용해보지 못했다는 점 입니다.
물론 분야에 따라 다르겠지만 제 생각으론 대부분 프로그래밍을 하는 사람들은
리눅스를 중요하게 생각하는 것 같았습니다.
인터넷에 리눅스를 사용하는 이유를 검색해 보면 주로
'프리 os', '오픈소스', '낮은 성능에서도 돌아간다' 등등이 있는데
이러한 오류때문에 대학에서 프로그래밍수업을 리눅스로 하지는 않는 것 같아서요..
프로그래밍을 공부할 때 리눅스를 사용하는 특별한 이유가 있나요?
가령 메모리 구조 파악이 쉽다거나, 위에서 얘기한 프로파일링이 윈도우환경보다 좋다거나 등..
대학에서 수업을 리눅스로 진행하는 이유는. 1. 실제로 많이 쓰기 때문에. 2. 리눅스가 오픈소스라서 컴퓨터 시스템 연구도 대부분 리눅스를 통해 이뤄지기 때문에 3. 리눅스는 POSIX 표준을 따르고 있는데, 윈도우를 제외한 OS 들은 대부분 POSIX 를 따르기 때문에 - return 0;
3 은 2와도 어느 정도 통함. 그리고 개인적으로 사람들이 리눅스를 쓰는 이유는 리눅스가 개발하기에는 훨씬 편합니다. 시스템 API 도 편하고, 패키지 매니저도 잘돼있고, 보통은 성능도 더 좋음 - return 0;
감사합니다. 그럼 만약 게임프로그래밍이나 그래픽스, 웹프로그래밍 같은 분야는 굳이 리눅스환경에서 공부해야 할 이유가 없는게 맞을까요?
웹은 리눅스 서버 많이쓰고 게임은 윈도우서버 많이쓴다그러던데 뭐 어디서하든 크게 중요한건아님
웹은 애초에 상관 없는데 툴 같은거 관리가 편해서 리눅스 쓰는 경우 많고, 그래픽스는 리눅스 겁나 많이 쓰고여 고성능 컴퓨팅 해야돼서, 게임은 서버 쪽에서 리눅스 쓰는 경우 있음 - return 0;
그래픽스는 뭘 하위분야에 따라 다르겠지만 3D VFX같은 경우는 아티스트들도 전부 리눅스 환경(보통 CentOS)에서 작업하니 대부분 리눅스임
옛날 얘기해서 미안한데,, 옛날에는 연구가 유닉스에서 이루어지고, 그래픽 어플들이 유닉스에서 돌아가고 그랬었음. 그래서 유닉스 워크스테이션이라는 제품이 실제로 존재하고 많이 팔렸었음. 옛날에 한컴 한글 워드프로세서가 유닉스 버전이 있었음. 그리고 어도비도 유닉스 버전 있었구. MS 인터넷 익스플로러 유닉스 버전이 진짜로 있었음. 아마 관성적으로 사용하지 않았을까... MS 윈도가 그 시장을 많이 먹구, 다시 리눅스가 시장을 되찾아오고.. 뭐 그런거 같음. 그리고 연구는 표준적인 환경에서 하는게 좋은데 MS로는 달성하기 어려우니까 유닉스/리눅스를 사용해오는거 같음
관성이라 하기에는 옛날 DOS, MS윈도 너무 후지고 툭하면 블루스크린 뜨던 시절인데.. 연구를 MS윈도에 한다는게... 어렵지. 토발즈가 유닉스를 PC 에서 사용하기 위해 유닉스 같은 걸 만든게 리눅스. MS윈도는 NT, 2000 나오고서야 안정화되고 그때부터 서버 시장 먹기 시작하구, 리눅스는 커널 2.4 인가.. 2.6인가.. 나오고서야 안정화된거 같은데. 마찬가지로 그때부터 서버 시장 먹기 시작하구. 리눅스 승!
공짜라서
윈도우서버 좆같아서
개발하기에 리눅스가 여러모로 편한데 게임은 그냥 윈도우라고 들음
원래 대학에서는 옛날부터 유닉스를 가르쳤습니다. 그 유닉스를 리눅스가 대체한거고 리눅스가 공짜라서 오픈소스라서 대세이기 때문에 대학에서 다루는게 아닙니다. 유닉스가 컴퓨터 역사상에 매우 중요한 위치이기 때문에 가르치는겁니다. 현재에도 통신 기반인 tcp/ip 그게 유닉스에서 나온 겁니다.
그렇다면 조금더 컴퓨터 시스템에 가까운 부분을 디테일하게 다루기 위해서 사용하는 건가요?
원래 대학이 학원이 아니라 학문을 공부하는데라, 그런게 있으니까... 알아두라.. 사용해보라... 그런거겠죠. 저희 때는 수업 때 IBM AIX 에 터미널로 연결해서 vi 사용하는 것도 가르쳤습니다. 진짜 터미널을 사용할 일이 거의 없지만 그런 걸 가르쳤었습니다. 시대가 변해서 리눅스를 다뤄보라.. 그런거겠죠. 디테일한거는 대학교에서 가르쳐주지 않는거 같던데. 저희 때 80,90년대 선배(전산학과 시절)는 코볼도 배웠다고 그러더군요. 코볼은 은행권에서 사용한다고 그러더군요. 요새는 안 그러겠지만. 학교에서는 그런게 있으니까 사용해보라.. 두루두루 이런거 저런거 조금씩 가르칩니다. 실무나 디테일한거 안 가르치고 이론, 원리 이런 거만 가르쳤던거 것 같네요.
그리고 운영체제론이 전공필수일텐데.. 그걸 공부할 때 유닉스 얘기 많이 나옵니다. 요새책은 유닉스 대신 리눅스 얘기가 나올지도 모르겠네요. 리눅스는 유닉스가 아니지만, POSIX 를 따르고 있습니다. 그래서 유닉스 대용으로 사용할 수 있죠. 리눅스/유닉스는 전세계 서버 시장을 장악하고 있는 운영체제입니다. 회사에서 인트라넷으로 업무 처리할 때 그 프로그램(미들웨어라 부릅니다) 그게 유닉스/리눅스 기반에서 년중무휴 365일 * 24시간 작동합니다. 회사들 웹서버도 마찬가지고요. 역사상으로도 중요하고 현실 세계에서도 그렇게 중요도가 높으니 가르치는거겠죠.
다만, 실제 밥먹고 살 수 있는 디테일한거는 스스로 학습해야 합니다. 대학에서 교수님들이 디테일한거 가르쳐줄 시간이 없어서 안 가르쳐줘요. 책이 한권에 500쪽이다.. 하면 그 중에서 중요도 높은 100여쪽 정도만 다릅니다. 나머지는 스스로 공부하거나 소모임이나 따른 어떤 선택 강의를 통해서 공부하거나 그래야죠.
뭔가 동문서답을 한거 같은데, 리눅스/유닉스/MS윈도우 등 운영체제들은 시스템을 디테일하게 다룹니다. 다만, 사용하는 사용자 입장에서 어느 정도까지 운영체제를 수정할 수 있느냐, 어느 정도까지 드라이버를 통하여 기능을 추가할 수 있느냐, 어느 정도 까지 옵션을 줄 수 있느냐 하는 차이는 있겠네요. 리눅스는 그 부분에서 높은 점수를 받을 수 있습니다. 그러나 앞서 말씀드렸듯, 오픈소스/무료이기 때문에 리눅스를 가르치는 것은 아니라 봅니다.
개발자들이 지들쓸라고 만든거다 보니 개발용 도구가 졸라편하게 돼있음
그런 이점도 있군요.. 리눅스하면 터미널이나 vim 같은것만 떠올라서 불편한줄만 알았는데 신기하네요
터미널이나 vim이 편한 거임
개발자들한텐 터미널이랑 vim이 마우스 끼적거리는것보다 자유도가 높아서 편함!!
헉 키보드로만 모든 조작이 되니까 익숙해지면 편해지나보네요 와...
그냥 관성임
댓글 써주신분들 모두 감사합니다!! 궁금했던부분이 많이 해결되었어요!
Linux가 첫 Windows보다 약간 늦게 나오긴 했어도 학계 및 업계에서 다른 OS보다 Linux가 쓰이는 이유는 Unix, BSD, Linux의 역사 (AT&T v UC Berkeley license lawsuit)부터 시작해서 운적인 요소, 정치적인 이유, 실용적인 이유도 있고 여러가지임. 이건 많은 학계, 업계에 분포되있는 전공자들에게 물어봐도 다 뭐때문에 그랬을것이다 답변이 제각각일것이기때문에 이 댓글에서 탁찝어서 이러한 이유때문이다 라고 결론은 안내리겠음.
개발환경 설치가 쉬워서. 윈도우에서 개발환경 맞추려면 바이너리 맞춰 받는거도 귀찮은데 특정 버전 필요해지면 바이너리 나올때까지 손빨고 기다리고있거나 아주 귀찮은 빌드와 없는거나 마찬가지인 패키징 과정을 거쳐서 설치해야함