우리들 만의 문제가 아닌 세계적인 "나무 프로젝트"

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

재밌네. 누군가 번역하여 둔 것을 먼저 봤으나, 원본의 것을 붙인다. 역시 우리만의 문제는 아닌게다.

사용자 삽입 이미지

원본은 : (project.jpg 그림, JPEGx800 픽셀)


문서작성의 5가지 口訣

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

현재 안랩코코넛의 대표이사이시며 IBM, 안철수연구소 등에서 22년간 IT 산업에 종사하셨다는 이정규님의 글.

ZDNet Korea...문서작성의 5가지 口訣

공공기관의 입찰 선정 심사위원으로 참여한 적이 몇 번 있었다. 내공이 있는 심사위원은 제출된 문서의 형식만 척 보아도, 업체의 역량을 가늠해 볼 수가 있다. 커버에 반드시 있어야 할 제목, 부제목, 작성일자, 작성자명, 작성자 이메일, 부서명, 회사명, 문서의 비밀등급을 제대로 기입하였다면 잘 된 문서이다. 특히, 문서의 파일명을 귀퉁이에 기재한 경우는 정보검색의 효율을 관리하고 있다는 반증이 된다. 요약문과 구조화된 목차, 흔히 오리발 조항이라는 disclaimer의 유무, 약자의 설명페이지가 있다면 외형적 형식은 아주 잘 되어 있는 것이다. 그러나, 품격 있는 문서는 그 이상이 필요하다.

나의 문서는... 품격있는 문서의 그 이상은 그렇다 치고 외형적 형식은 얼마나 잘 맞추고 있는걸까?

커버, 제목, 부제목, 작성일자, 작성자명, 메일 등... 은 그렇고, 근래에는 비밀등급표기는 해본적이 없네. 근래의 문서는 모두 내부 열람용이었으나 그래도 표기는 필요했겠다. 왼쪽 상단의 파일명 또는 제목 표기는 문서철의 기본. 요약문과 목차도... 뭐 잘 하고 있네. 그런데 디스크라이머? 역시 비밀등급, 디스크라이머 등에 있어서 외부용 문서로써의 부분은 별로 신경써오지 않은 것이 사실이군.

일단, 기본에서 한 수 배움.

소프트웨어 개발, 철학의 부재

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브

"생각이 없음"

(제목을 바꾸고 내용의 일부분, 이 위치에 있던 인용부분, 을 지웠다. 인용했던 글을 다시 읽어보니 스크랩 금지란다. 뭐, 나와는 다르더라도 그렇게 생각하신다면... :-)

뭐, 컴퓨터나 두들기는 쟁이가 "철학" 운운하면 좀 우스운가? 그런데, 철학이라는게 (한자어로 표현해서 그런지) 말은 좀 거창하지만 그 뜻은, "'생각' 하며 살자" 보다 더 크지 않은 듯.

개발자에게는 적어도 두 줄기의 철학이 필요하다. 그 중 첫번째는 물론, "사용자에 대한 배려"이다. 내가 만든 이 프로그램이, 이 기계가, 이 서비스가 사용자에게 어떤 행복을 줄 수 있을까? 또는 사용자의 행복을 빼앗게 되지는 않을까 하는 고민이 필요하다. 이것이 엔지니어와 취미생활의 차이가 아닐까?

다른 한 줄기는 "(주변과) 어울림"이다. 내가 만든 것이 어디에서 움직이는지를 생각하고 그 곳에 어울리도록 모양을 잡고 속을 채워야 한다. 사람의 삶이 그렇듯이, 기술, 도구 역시 어울림 속에서 그 빛을 발할 수 있고 기쁨을 만들어 낼 수 있다.


예전에, 한 10년도 더 전에, 나에게 많은 실망을 줬던 프로그램이 하나 있었는데, 그것은 다름아닌 당시의 "국민 프로그램", "아래한글" 의 첫 윈도 버전이었다.

윈도95 시대에 들어오면서 윈도가 비로소 DOS에서 벗어나 나름의 철학을 가지고 움직이기 시작했다. 예를 들면 윈도 3.1 시절의 .ini 라는 파일 기반의 설정 방식에서 벗어나 중앙의 규격화된 인터페이스의 레지스트리 방식으로 전환했다든지, 또는 C:\DOS 라는 자기 집만 챙기던 방식에서 나름의 계층화된 저장 구조를 이용하게 되었다든지...

그런데 문제의 "아래한글"은 그 철학을 전혀 존중해주지 않았으며(디렉토리에 대하여 아직도 독자적인 노선을 걷고 있고...) 심지어는 그래픽 툴킷까지도 독자적인 것을 사용하는 "만행(?)"을 저지르고 있었다. (게다가 더 향상되거나 편리해진 것도 아니었다. 단지 자신들의 기존 방식을 유지한 정도랄까?)

그들의 철학을 지키기 위해서 그랬다면, 듣자하니 별 것도 아닌데 무슨 상관이냐고? 그 무렵의 나는 이런 저런 이유로 윈도 기반 중앙 집중 관리식 전산실을 구성하여 관리하고 있었는데, 이 부분에 있어서는 윈도의 방식과 어울리지 않는 부분을 헤쳐나가기 위하여 이런 저런 꽁수와 삽질을 하지 않을 수 없었다. 그래서? 별로 행복하지 않았다는거지. 따지고 보면 극히 소수에게만 느껴지는, 그래서 무시할 수 있다고 생각하는(이것도 철학인데) 부분이라면? 뭐, 그냥 그렇다는 거다. 철학의 문제이니. :-)


요즘도 철학을 무시하는 경우를 가끔, 심심치 않게 볼 수 있다. 리눅스/유닉스의 세상은 비교적 잘 정리된, 뿌리가 있는, 그리고 오랜 기간 동안 다듬어진 철학을 가지고 있다. 반면, 근래의 리눅스 기반 프로그래머 중 일부는 리눅스/유닉스 세상에 대한 이해로부터 출발하여 "철학이 있는 개발"을 하기 보다는 돈이 되는 것 같아서 "아는 범위에서 일"을 하는 것 같다. 그러나 그 뿌리를 다른 곳에 두고 있고 그 범위 안에서 일을 하게 되므로 결과적으로 주변과 어울리지 않는 것을 만들어내는 것이다.

심각하다. 최근에는 프로그램의 임시 파일을 /usr/local/XXX/log 아래에 남기는 프로그램을 본 적도 있는데, 일반 사용자가 그 곳에 파일을 쓸 수 있을까? 혹시나 쓸 수 있도록 설정한다고 하여도 그것이 근본 철학과 맞는 것일까? 항상 root 계정으로 리눅스 PC를 사용하는, 마치 Administrator가 윈도의 기본 사용자이듯, 비전향 리눅스 개발자의 작품이겠지.

/home 아래에 MySQL, Apache, PHP 등의 패키지를 설치하여 사용하는 모습도 보인다. 엉뚱한 위치에 설치된 것은 물론이고 왜 공식적으로 배포되는 다듬어진 것을 사용하지 않고 직접 일을 만들어가며 하는 것이지?

이런 "철학의 부재"는 어디서 나타난걸까? 어떻게 하면 치료될까?

"기술을 버려야 무선인터넷이 산다"

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브
고객은 편리한 서비스를 바라는 것이지 기술을 바라지는 않는다. 제발 기술을 버리자!

스마트 쇼핑저널 버즈 : 기술을 버려야 무선인터넷이 산다
무선인터넷 재도약을 노리는 이통사 내건 새 전략이다. “휴대폰에서 이런 서비스가 가능하다” “IP 기반의 새로운 무선인터넷 서비스가 등장했다” 등 기술 우위의 서비스 전략에서 탈피하겠다는 취지다. 소비자에게 진정 필요한 서비스를 찾아낼 때 관련 산업도 활성화 될 수 있다는 기초로 돌아가겠다는 전략이다.

'삶, IT-삷' 카테고리의 다른 글

소프트웨어 개발, 철학의 부재  (0) 2007.05.15
인터넷 생활 : 북마크가 필요해?  (0) 2007.05.10
아이를 강하게 키웁시다?  (0) 2007.05.07

왜 screen을 사용하지 않는가?

Clip to Evernote

블로그가 이사를 갔어요!

죄송합니다! 대부분의 글을 유지하고는 있으나 일부는 유지하지 못했습니다!
10초 이내에 새로 옮겨진 페이지로 이동할 겁니다.
원하시는 글이 아니면 전체 목록을 확인해주세요!
소용환의 생각저장소 / 아카이브
기술자들이여, 왜 screen을 사용하지 않는가? 싸잡아서 "기술자들이여" 라고 말한 부분은 좀 문제가 있다. 공격적인, 과격해보이는 과장이랄까? 그런데 정말, 근래에 만난 기술자들 중에 screen을 사용하는 사람을 보지 못했다. 왜지?
스크린은 여러 프로세스, 특히 대화형 쉘 들이 물리적 터미널을 함께 사용할 수 있도록 해주는 전체화면 창관리자이다. 각각의 가상 터미널은 DEC VT100 터미널의 기능과 더불어 ANSI X3.64와 ISO 2022 표준의 몇몇 제어 기능(예들 들어 줄의 삽입/삭제와 다중문자셋 지원 등)을 제공한다...
GNU 소프트웨어인 screen 에 대한 소개 중 일부분이다. (소개문 전문은 아래에 인용해뒀다.) 이 프로그램에 대한 정의를 내리자면 위의 소개문처럼, "물리적 터미널의 공유를 위한 전체화면 모드의 창관리자"이다. 사실, "창"이라는 표현이 좀 애매할 수 있다. "창"에서 떠올리는 이미지는 그래픽 환경에서 데스크탑위에 떠있는 네모들이겠지만, 여기서 말하는 창은 화면, 또는 터미널을 의미하는 것이다. 다시 말해서, 단일 물리적 터미널을 가상의 여러 터미널로 변신시켜주고, 그래서 여러개의 비 그래픽 모드 프로그램을 하나의 물리적 터미널 안에서 동시에 실행할 수 있게 해주는 녀석이라고 정리할 수 있다.

GNU Screen - GNU Project - Free Software Foundation (FSF)
Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Each virtual terminal provides the functions of the DEC VT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line and support for multiple character sets). There is a scrollback history buffer for each virtual terminal and a copy-and-paste mechanism that allows the user to move text regions between windows. When screen is called, it creates a single window with a shell in it (or the specified command) and then gets out of your way so that you can use the program as you normally would. Then, at any time, you can create new (full-screen) windows with other programs in them (including more shells), kill the current window, view a list of the active windows, turn output logging on and off, copy text between windows, view the scrollback history, switch between windows, etc. All windows run their programs completely independent of each other. Programs continue to run when their window is currently not visible and even when the whole screen session is detached from the users terminal.
아마도 대부분의 기술자들은 여러 이유에서 다양한 형태의 원격작업을 하게 될 것이다. 자신의 사무실에서 사내 서버실의 장비에 접속하기도 하고, IDC에 위치한 서버에 접속하여 작업을 해야하는 경우도 있다. 그런데, 가끔 원격 작업이 힘들 때가 있다. 가령,
  • 여러 프로그램을 동시에 실행하기 위하여 여러개의 접속(telnet이나 ssh 등)을 만들어야 한다.
  • 작업이 오래 걸리는 프로그램의 실행을 유지하기 위하여 접속을 끊을 수 없다.
  • 대화형 작업이기 때문에 스크립트로 처리할 수 없다.
뭐, 이유는 많겠지만 지금 말하려는 것은 위의 세 가지로 충분할 것 같다. 바로 위와 같은 상황에서 screen이 힘을 발휘한다. 즉,
  • 여러개의 접속 대신 단일 접속 안에서 여러 가상 터미널을 만들 수 있다.
  • 가상 터미널을 살짝 떼어 놓았다가 다시 새 연결(새 물리적 터미널)에 붙일 수 있다.
가령, 회사에서 IDC 에 연결하여 작업하던 중, 외근 일정에 의하여 다른 장소로 노트북을 끄고 이동해야 한다. 그럼 작업을 멈추고 쉘을 닫고 접속을 끊어야 하나? screen을 사용한다면 작업을 유지하고 터미널과 쉘을 분리하여 두고 접속만 끊으면 된다. 그리고 외근 후에 다시 연결하여 분리해둔 터미널에 다시 연결하면 만사 OK.