좋은 개발툴에대해서..

dummy999의 이미지

우리는 무수히 많은 개발언어와 개발도구 또 개발작품을 봅니다.
그러면서 그것들이 어떻게 만들어졌으며 사용소감에대해 논합니다.
그리고 저는 그런것중에서 플래시라는 최고의 개발도구를 논해보려고합니다.

플래시를 3년이상다뤄왔고, 플래시를 위해 자바나 C언어까지 공부했음에도 불구하고
자신의 생각을 플래시에 자유롭게 표현하지못한다면, 이는 자신의 공부방향에 문제가있었다고
생각해야 합니다.
-J출판사 플래시관련책 저자 S씨의 머릿말중에서..

위이야기는 플래시책에 나온말이라서 플래시를 말하는 말이지만 바꿔서 자신이 해온 언어로
3D나 시스템플밍같은 고도의 플밍을 자신이 생각한대로 할수있을까요?
대부분은 뭔가를 참조해야하고 대부분은 불가능하겠다라고 멈춥니다.
그리고 사람들은 그것이 귀차니즘때문이라고 변명하고는 합니다.

플래시의 언어가 컴파일도 되고 했다면 지금 모든 개발자들은 플래시에 집중해야했을껍니다.
아쉽게도 그렇게까지는 안되어있네요.

콘솔타입의 언어는 이제 시스템플밍용일뿐입니다. 적어도 자신이 GUi환경에서 응용플그램을
개발해야한다면 어떤 언어보다도 진보된 플래시라는 도구를 참조해야할필요가 있다고 봅니다.

자바의 JVM처럼 먼저 가상머신을 깔아야하는데 플래시역시 그런형태이죠.
(이것은 컴파일(?)된 내용이 어떤기종과도 호환성이 이뤄질수있다는 말을 의미합니다.)
그리고 그리고 다른언어들처럼 언어구조를 가집니다.
(다이너믹하게 하는데 빠져서는 안됩니다.)
그리고 3D프로그램처럼 만들어진 그림으로 언어와 연동이가능하죠.
(플래시만의 특징이기도 하죠)
필요에따라. 인터프리터방식으로 실행이 가능합니다.
(그냥 현상태까지 실행이 가능하죠.)

플래시로 단순하게 그림만 그릴수있습니다. 그러나 플래시가지고도 플밍까지 할수있습니다.
파스칼이나 C 또는 베이직같은 언어가 그런 툴이 나왔으면좋겠습니다.
어차피 이건 툴에 종속될수밖에 없는 특징이니까요.
vi를쓰던 IDE를 쓰던 툴은 툴입니다.
어떤툴을 쓰던간에 자신이 생각하고자하는것을 그대로 만들수있다면 그사람은 대단합니다.
그러나 최고의 개발툴을 쓸수있다면 그만큼 최고의 작품이 나올수도있지않을까합니다.
(물론 시대를 불문하고 Only 메모장(또는 VI)하나만으로 고집하는 사람들도 있을테지만..)

좋은툴을 쓴다고 허접한개발자라는 사고관념을 버립시다. 메모장이 있는한 좋은툴을 쓰는것은
자유이고 좋은툴은 개발자의 생각을 완벽에 가깝게 표현해주는 도구가 될것이고
그것은 절때로 변하지않을껍니다.

saxboy의 이미지

Quote:

좋은툴을 쓴다고 허접한개발자라는 사고관념을 버립시다. 메모장이 있는한 좋은툴을 쓰는것은
자유이고 좋은툴은 개발자의 생각을 완벽에 가깝게 표현해주는 도구가 될것이고
그것은 절때로 변하지않을껍니다.

다만 아무리 좋은 툴이라도 그 툴 밖에 모르고, 그 테두리안에서만 무엇을 할 수 있는 개발자라면 말씀하신 <허접한> 개발자라고 부르는 것이 옳겠지요. 이런 분들은 툴 안에서는 굉장히 훌륭한 능력을 보이지만 그 툴에서 또는 외부에서 어떤 문제가 생겼을때 해결할 수 있는 능력은 없습니다.
제가 생각하는 훌륭한 개발자는 또는 엔지니어는 문제가 생겼을때 전체적인 관점에서 문제를 파악하고 해결할 줄 아는 개발자입니다. 곧, 코딩을 잘 하는 개발자보다는 코딩을 하면서 버그를 적게 만들수 있는 방법을 알고 있고, 버그가 생겼을때 <굉장히> 빠른 속도로 디버깅을 마쳐서 남들보다 코딩은 느리지만 개발속도는 몇배나 더 빠른 개발자입니다. 사용한 툴에 문제가 있다면 다른 방법으로 그 문제를 해결할 수 있는 방법을 아는 분들이지요.
하지만 역시 툴을 쓸 줄 모른다면 마찬가지로 아집에 빠져 있다고 이야기하겠습니다. 툴을 쓰지않고도 툴을 쓰는 것보다 빠른 속도로 개발을 마친다면 더 할말이 없습니다만... :D

저는 델파이만 할줄 아는 분, 비베만 할 줄 아는 분 굉장히 여럿 만나봤지만, 모두 언어를 뛰어넘은 개념을 모두 알고 시스템을 이해하는 분들이었습니다. C같은 비교적 저급의 언어를 사용해본적이 없었지만 필요하다면 금방 배워서 사용하실 수 있는 분들이었답니다.

notexist의 이미지

말뿐이져?

과거의 행동도 현재의 행동도 보이지 않는 듯...미래도 별로...기대는 안 되는 것같네요...

There is more than one way to do it...

M.W.Park의 이미지

할 수 있는 것과 못하는 것은 분명 다릅니다.
일련의 dummy999님의 글을 보면 콘솔기반의 스크립트, 저급언어(C?), 그와 연관된 편집기등의 무용론을 보는듯합니다.
이런 이상한 논지를 펼치는 의도가 사뭇 궁금합니다.
어떻게 플래시랑 시스템 프로그래밍에 사용되는 언어랑 비교를 할 수 있습니까?

좋은 툴을 쓴다고 허접한 개발자라고 할 사람은 한명도 없습니다.
좋은 툴을 썼음에도 불구하고 산출물이 허접할 때 허접한 개발자로 불리는 것입니다.
예를 들자면, 겉멋만 든... 소잡는 칼로 닭잡으려는 그런 사람이나... UML만 사용하면 객체지향인 줄 아는 사람을 허접이라고 부를 수 있죠.

이건 논지를 벗어나는 질문입니다만, 한가지 개인적으로 궁금한 건, 혹시 회사에서 일할 때 dummy999님이 구입요청한 툴을 안 사줘서 욕구 불만 상태이신건 아닌지... 아니면 콘솔쪽에 약해서 상사나 동료한테 욕을 먹은 경험이 있는지 이런 것이 상당히 궁금해집니다.

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

mrchu의 이미지

도대체 하시고자 하는 말씀이 뭐죠?

dondek의 이미지

saxboy님의 말씀처럼..
그 좋은 툴의 테두리 안에서만 그 개발자는 의미를 갖게 될 것이며..

더욱 중요한건,
플래쉬라는 좋은 개발툴을 어떤 환경에서 만들었을지 생각해보세여.

다른 개발자들에게 더 좋은(dummy999님께서 생각하시는 최고라 불리우는) 환경을
만들어주기 위해서 콘솔에서 출력되는 수많은 trace message들과 씨름하고 있는
개발자를 생각해보시기 바랍니다.

GUI가 더 좋고 훌륭하다는 기본적인 생각까지 부정하고 싶지 않습니다.
다만 그러한 훌륭한 GUI를 만들어내기 위한 근본적인 것들을 배제하고 있지 않는지
스스로 생각해보시기 바랍니다.

제가 알기로 누구도 GUI의 효용성에 대해서 부정한 사람은 없는걸로 압니다.
최소한 KLDP BBS에서는여..

자료를 모으려는 목적이나, 연구를 할 목적이시라면 더더욱 기본에 충실한
연구가 되었으면 합니다.

진리를 나의 수준으로 끌어내리지 마라.
나를 진리의 수준으로 끌어올려라. - 배꼽 중에서

crimsoncream의 이미지

플래쉬 좋더군요. 요즘 만든 제품의 frontend로 쓰고 있는데 기대 이상입니다.
자바는 볼때마다 드는 생각이지만 플랫폼 인디펜던트라기 보다는 플랫폼 그 자체고. 플래쉬나 쉘이나 파이썬류의 스크립트 랭귀지가 아마도 진정한 플랫폼 인디펜던트가 아닐까 생각은 합니다.

다만 애들로 ui 같은 intractive한 처리가 필요한 일 외에는 특별히 할 일이 없는 것 같던데. gui에서 워낙 ui 만드는게 노가다니까 이런 툴이 상당한 존재감을 가지기는 하지만 과연 얘들이 frontend 이상의 의미가 있나요? 제가 생각할 때는 저급언어 :)가 시스템 프로그래밍용이 아니고 플래쉬류가 frontend 용이라고 하는게 더 나을 듯 싶은데요.

그리고 saxboy님 말씀엔 이견이 있습니다.
c언어 갈이 스킬이 중요한 저급언어에선 아무리 시스템에 대한 통찰력이 있어봐야 초보자는 초보자일 뿐입니다. 전 여기에 c 언어의 약점과 java의 장점이 있다고 생각해서요 :)

오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.

fender의 이미지

dummy999님의 글을 읽을 때마다 느끼는 거지만 좀 더 글 쓰기 전에 한 번 더 생각하고 정확히 말하고 싶은게 뭔지 명확하게 정리하고 올리실 필요가 있는 것 같습니다.

일단 모호한 부분을 제외하고 플래쉬에 대해서만 말씀드리자면, 맞습니다. 플래쉬는 사람들이 생각하는 것보다는 훨씬 강력한 플랫폼이고 잠재력도 있습니다. 하지만 나름의 분명한 한계도 가지고 있습니다.

아시는 분은 아시겠지만 매크로미디어에서는 J2EE기반 어플리케이션 서버와 관련 개발툴을 함께 판매합니다. 그리고 최근에는 J2EE나 닷넷 서버와 직접 통신할 수 있는 플래쉬 Remoting이라는 제품을 내놓았습니다. 즉, 플래쉬 프론트 엔드와 백엔드가 통신하기 위해 단순히 페이지가 로딩될 때 파라미터를 넘기는 식이 아닌 페이지 리프레쉬 없이 백단과 연동되는 완전한 웹어플리케이션을 제작할 수 있다는 뜻입니다. 관심 있으신 분들은 아래에서 데모를 확인해보시기 바랍니다.

http://examples.macromedia.com/petmarket/store.html

하지만 범용 개발 플랫폼으로 플래쉬는 명확한 한계를 가지고 있는데, 이는 dummy999님이 말씀하신 대로 컴파일이 없다던가 하는 문제라기 보다는 크로스플랫폼 기반이라는 환경과 플래쉬 자체의 특성에서 오는 문제입니다.

JRE의 크기가 왜 10메가에 가까운지를 생각해보면 쉽게 이해가 갈 것입니다. 그래픽관련, 사운드 관련, 보안관련, 등등... 프리젠테이션에만 초점을 맞춘 플래쉬를 범용언어로 쓰려면 필요한 라이브러리가 수없이 많고, 문제는 그 모든 라이브러리를 플래쉬가 돌아가는 모든 플랫폼에서 개발할 여력을 매크로 미디어가 가지고 있는지, 또 있다고 해도 플래쉬 플레이어가 10메가에 가까워 지면 지금처럼 대중적으로 사용될 수 있을지, 또 그렇다고 해도 자바나 닷넷 등의 기술과 경쟁에서 살아남을 수 있을 지 등등의 이슈가 남습니다.

다른 이유로는 스크립팅언어라는 한계와 플래쉬 자체가 표준화되지 않은 매크로미디어의 제품에 불과하다는 측면입니다. 플래쉬를 범용 개발플랫폼으로 사용해서 수십명의 개발자가 수십만 라인에 이르는 코딩을 했을 때 모듈화와 소스관리가 가능할지, 또 빌드 자동화는 가능한지, 그리고 과연 자바와 같은 충분한 써드파티 라이브러리 지원을 얻을 수 있는지 등등의 문제가 생긴다는 것입니다.

분명 매크로미디어도 이런 한계를 잘알고 있고 그래서 플래쉬의 강점이 최대한 발휘될 수 있는 프리젠테이션 부분이나 웹어플리케이션 프론트엔드 분야에 집중하는 것입니다.

단순히 그림이 잘 나온다고 범용 프로그램 개발툴로 적합하다고 생각하는 건 실무를 잘 이해하지 못한데서 오는 지나치게 단순한 생각이 아닌가 합니다.

여담이지만 개인적으로 앞으로의 클라이언트 어플리케이션은 XUL 계열이 주류를 이룰 것으로 판단합니다. 즉, 표준적 XUL을 생성하는 언어 독립적 UI 빌더를 이용해 앞단을 제작하고 이를 돌릴 수 있는 .NET, GTK+, QT, 혹은 SWT, wxWindows 등등의 툴킷 바인딩이 나온다면 진정한 크로스플랫폼 네이티브 어플리케이션 개발이 활성화될 것으로 봅니다. 어쩌면 UI만 따로 컴포넌트화 되서 공유될 수 있을지 모릅니다. 뭐 최고의 브라우저 껍데기나 최고의 메일 프로그램 껍데기를 개발하는 오픈소스 프로젝트가 생겨날지도 모른다는 생각입니다 :)

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

dummy999의 이미지

제가 말하는것은 하이테크류(gui속성을 가진것들)는 어떤작업에도 시간적인 소비를 최소화해준다는 점이 있습니다.
(물론아시겠죠)

c언어로 몇년을 짠플그래머라할지라도 개념못잡으면 자기의 생각조차 표현이 불가능합니다.
그러나 그런개념은 플래시같은 그래픽환경툴은 확실하게 잡아주고
표현도 좀더 완벽하게 해주게합니다.

그리고 개념을 잡은 사람이라면 설령 스크립트 언어를 준다할지라도 이건 시프와
차원이 다르다라고 생각하진않을것같습니다.
어차피 다른건인정되고 거기서 공통점을 찾은것이 고수일테니까요.

제가 구입한 책의 머릿말에도 수학을 잘한사람이 플래시를 자기가 원하는 형태로 가장잘했다라고
말을 하더라구요 실질적으로따지면 컴퓨터 과를 나와야 하고 아니면 디자인과를 나와야
잘할텐데 컴퓨터와 관련도 없는과가 그렇게 플래시로 잘할수있다는것은
그만큼 플래시의 UI가 초보자수준에서도 완벽하게 이해가가능했으며 또한 그사람역시
열정이있었기때문은 아니었을까요?
다시말해 이해하는데 다른언어들처럼 어려움이 없었다라는점을 말하고싶었습니다.

그리고 플래시를 쓴다해서 자신이 원하는 것을 100% 그대로 얻어낼수는 없습니다.
기술이 부족하면 좋은거 앞에다두고 쓸줄모르게 되는격이죠. 어디까지나 기술이 인정받는것은
콘솔이던 그래픽환경이던 같습니다.

그리고 말의 요는 이런 좋은 툴속에서 콘솔을 사용할줄아는 우수한 사용자를 배출하는것이
처음부터 저급환경에서 적응한 우수한 사용자를 배출하는것보다 더 효과적이지
않을까한다는겁니다.

어차피 개념을 잡았다면 콘솔이던 그래픽이던 큰차이가 없지만 첨엔 콘솔보다 그래픽쪽이
시간적인 면에서 개념잡기가 우수하기에 거기서 작업을 하면 좀더 개념잡는데나 또는 오류에대한 정보를
최소화하지않을까하는 차원에서 글을썼습니다.

------------------------------------
F/OSS bless you... ^^*