소프트웨어 개발과 자장면
예전에도 이런 글을 쓴거 같은데. 생각나서 써봅니다.
저는 한국에 중국집이 많다는것을 알고 있습니다.
중국집. 중국요리를 만들어서 판매하는 음식점입니다.
소프트웨어 개발도. 자장면을 만드는것과 별로 다르지 않다고 생각하는데요.
수 많은 자장면집이 있지만. 자장면 만드는 방법을 모두가 알고 공유하고 있지 않나 생각합니다. 레시피'라고 하나요?
프로그램도 자장면 만들듯이. 알고 공유하는게 좋다는 생각인데요.
어떤분 말씀에. 6개월 개발자들 때문에 우리 가치가 떨어진다. 라는 말씀 많으십니다.
하지만.
저는 한달. 하루면 바로 익혀서 사람들이 마음껏 무언가를 만들어나가고. 성장할 수 있었으면 좋겠습니다.
그리고.
그런 편리함과 생산성. 게다가. 사람에 대한 생각까지 더할 수 있다면. 더 좋겠습니다.
우리가 익힌 기술. 아깝겠죠.
하지만. 우리끼리만 가지고 우리끼리만 알 수 있다면. 사라지고 잊혀지게 될겁니다. 그만큼 어렵고 하면요.
사실. 소스를 보여주는건 그다지 도움이 되지 못합니다.
저는 지식의 공유와 그것에 대한 접근 가능성이 향상되는 시대가 어서 왔으면 좋겠습니다.
컨텐츠건. 소프트웨어건. 가치를 인정받되. 재사용 가능한 그런 멋진게 있었으면 좋겠습니다.
누구나 마음만 먹으면. 자장면을 만들 수 있듯이. 소프트웨어도 컨텐츠도 레시피만 있으면 누구나 만들 수 있다면.
그게 우리 사는 삶속에서 문화가 되고. 지금보다 더 나은 시장을 형성 할 수 있게 되지 않을까 생각합니다.
레시피는 있지 않나요? 학부과정 4년안에 고스란히
레시피는 있지 않나요?
학부과정 4년안에 고스란히 들어있는데 말이죠.
전 레시피를 보여줘도 레시피가 아닌줄 아는 사람이 많은게 오히려 걱정인데요.
실제 개발 source에 나오는 테크닉은 사실 개발 sauce지요.
------------------------------
How many legs does a dog have?
비슷한 맥락에서, 꼭 범용까지는 아니더라도 일반
비슷한 맥락에서, 꼭 범용까지는 아니더라도 일반 사용자들의 일상에 밀접한 도메인에서 사용할 수 있는 한글 프로그래밍 환경이 있었으면 좋겠어요.
가령 웹브라우져 플러그인이나, 오피스의 스크립트 같은 것 말이죠.
물론 워낙 컴퓨터에 사용되는 개념들이 다 영어이다보니 모든 범용적인 라이브러리/패키지들이 한글화된 환경을 기대하는 건 요원한 일이겠지만
최소한 키워드와 사용자 정의 심볼, 그리고 해당 도메인에 필요한 핵심 패키지는 한글로 쓸 수 있으면 좋겠다는 생각입니다.
사실 자유소프트웨어 운동의 목표가 사용자에게 컴퓨터 사용의 자유를 준다는 것이지만, 아직까지는, 특히 한국에서는 더더욱 언어적 장벽 때문에, 자유소프트웨어운동의 기여자/향유자가 좁은 개발자들의 풀에만 국한되는 것 같습니다. 안그래도 인구도 적은데 ㅎㅎ 언어적 장벽까지 겹치다보니 한국에선 자유소프트웨어가 활성화되는데 더욱 장벽이 되는 것 같아요.
...
짜장면 만드는 레시피는 얼마든지 찾을 수 있습니다. 하지만 모든 중국집 맛이 똑같은 것은 아니죠.
같은 레시피를 보고도 누구는 연구에 연구를 거듭하여 최고의 맛을 만들고 누구는 돈주고 먹기 아까운 맛을 만듭니다.
제 주변의 개발자들은 천성이 share를 좋아해서, 이해할 만한 사람이 잘 모르는 것을 물어보면 "아 내가 아는 걸 물어봐 주는구나" 하고 감격하며 친절하게 가르쳐 줍니다. 문제가 되는 건 전혀 이해할 레벨이 아니면서 구글질하면 30초만에 나올 것들을 물어보는 사람들이죠.
중국집 커뮤니티에서 "저 짜파게티 잘 끓이는데요, 중국집은 개업만 하면 대박이라면서요? 어떻게 하면 개업하죠?" 같은 질문 던지면, 아마 여기서 6개월 배워 개발자 운운할 때와 비슷한 반응이 나올 것 같습니다.
이게 제일 와닿는거 같습니다.
이게 제일 와닿는거 같습니다.
부러운 환경이네요. 어떤 사람들은 '이렇게 저렇게
부러운 환경이네요.
어떤 사람들은 '이렇게 저렇게 하면 됩니다.'라고
쫒아다니면서 가르쳐줘도 안배우다가
정작 필요할때가 되면 '이거 어떻게 하는거야?'하고 물어보지요.
문제는 수준이 비슷한 동료들일 경우에 시간낭비만 하는
문제는 수준이 비슷한 동료들일 경우에 시간낭비만 하는 경우가 되겠습니다. 가르쳐주는 것은 감사하지만 사실은 본인이 이미 찾아봤거나 해맸던 단계를 다시 반복하게 되는 경우가 발생해서 감사하면서도 마음 속으로는 '이게 아닌데.. 내가 몇번이고 반복했던.. 이미 아는 거 잖아~ 짜증나... (미안하지만)' 이 됩니다.
그래서 정말 많이 알거나 본인보다 경험이 많다고 여겨지는 분들에게 물어야 되는 것이죠.
jick 님이 언급하신 '연구에 연구를 거듭하여 최고의 맛을 만들기' 에 해당하는 부분이 이 과정에서 나오게 되는 것입니다.
경험 많은 분에게 여쭈거나 혼자서 (당시에는) 머리 터지는 기분으로 골똘히 연구하다가 어느새 트여서 원하는 결과물이 나오는 때.
그래서 급한대로 대충 처리하길 원하는 성격 급한 상사를 만나면 자기 말 끝까지 안믿는다고 미운 털 박히기도 하지만, 결과적으로 자신의 능력을 키우고자 어쩔 수 없을 때도 있습니다.
--
즐 Tux~
소프트웨어를 자장면에 비유한다라...
학교에서는 레시피를 가르쳐 주지 않습니다. 기초 지식만 알려주죠.
이건 학원도 마찬가지입니다.
주로 재료 손질하는 법, 칼질하는 법, 조리기구 다루는 법만 알려주죠.
물론 이게 지루해서 혼자서 레시피를 연구하는 학생들도 가끔 있습니다.
그런데 레시피도 아닌 몸에 베어도 모자란 기초만 꼴랑 6개월 배우고 요리사 하겠다라고 하면...
음식점 가면 홀 청소하고 설거지부터 해야겠죠.
-- recipe = '조리법'이 올바른 국어
--
recipe = '조리법'이 올바른 국어 사용이죠.
--
--
그냥 말 뿐인 것 같아서 제 생각을 말씀드리겠습니다.
이미 인터넷 블로그들에서 아이디어를 공개하는 분들이 많습니다. 코딩 기법이라든지 적재적소 대로 '이런 상황일 때는 이런 방법을 쓰면 된다' 혹은 '이런 함수에서 해당 기능을 처리한다' 등으로 말이지요. 어떤 분들은 그림까지 올려서 더 이해하기 쉽도록 해줍니다.
--
님의 글을 이해하고자 다시 읽었습니다.
구체적인 예를 들어주십시오.
소스만으로는 안된다고 하셨는데, 그럼 흐름도 내지 설계까지 공개하길 원하시는 건가요?
제대로(?) 열린 마음으로 프로젝트를 오픈소스화 할 때 가능할 것 같군요. 적어도 상용 SW 개발 시에는 적용될 수 없는 범위인 것 같습니다.
공개하는 프로그램이 상업용으로 큰 가치가 없거나 이미 알려진 혹은 쉽게 구현이 가능한 것이라면 상관이 없는데, (제 표현이 과장되었을 수도 있겠지만)
이미 비슷한 프로그램을 개발하고 있는 (경쟁) 업체나 개발자의 경우, 그런 기술이 노출이 되면 받을 수 있는 타격이 (크- | 작-) 되겠죠.
적어도 요즘 스마트폰 덕에 활성화 되고 있는 음성인식 기술 같은 것은 공개하는 행위 자체가 아닌 것 같습니다.
이런 류는 전에도 생각해봤습니다. 리눅스에서 TTS (text-to-speech) 기술과 관련된 패키지로 영어권 패키지는 찾을 수 있는데 한국어권 패키지는 찾을 수 없었죠. 제가 못 찾았거나 개발자가 기술유출을 우려해서 선뜻 나서지 않는 것이겠지요.
--
즐 Tux~