Computer & Me - 2

in #kr-dev7 years ago

이전 스토리 https://steemit.com/kr-dev/@kdj/computer-and-me 에 이어

생각해 보면, 워드프로세서로 쓰기 위해 구입한 AT(286) 컴퓨터가 게임기로 전락했었네요.
90년대 초반 컴퓨터를 보급시킨 공신 중의 하나가 HWP 이었던 것 같습니다.
GUI 에서 WYSWYG (What you see what you get : 보는 대로 출력한다) 이 되는 워드프로세서로
대학생들이 컴퓨터를 구입하게 된 배경이 되기도 했습니다.

이것이 인연인지 컴퓨터관련 학과에 입학했습니다.
절차적 프로그래밍의 대명사인 파스칼을 배웠습니다.
그 때는 터보 C, 터보 파스칼이 최고의 컴파일러였던 것 같네요.
1만 라인 정도의 코드를 작성해서 게임도 만들고, 약간의 돈도 벌었습니다.

사실 90년대 중반까지는 아니 후반까지는 큰 변화가 없었습니다.
그냥 숙제는 C, 아주 가끔 visual C++, 아니면 쉘 프로그래밍 정도면 끝이었으니까요.

프로그래밍 언어 시간에 함수형 프로그래밍이니 동적 언어니 인공지능 언어니 배우긴 했지만,
현실에서는 C 가 만능이었습니다. 왜일까요?
만능이 아니라 그냥 세상은 바뀔 준비를 하고 있는데 "우물안 개구리"였던 것 같습니다.

그 당시에도 이미 Smalltalk 과 같은 좋은 환경이 있었습니다만, 별로 관심이 없었습니다.
Smalltalk 은 나중에 개발 환경으로서 Java 에 큰 영향을 주게 됩니다.

그러던 중 Java (1995, James Gosling) 가 튀어나왔습니다.
그리고 WWW(World wide web) 이 생기고, HTTP, 웹브라우저(모질라, 넷스케이프)가 세상을 보게 됩니다.
자바는 처음엔 브라우저에서 동작하는 (ActiveX 와 비슷한 방식으로) 장난감(?) 이었습니다.
글씨를 흔들리게 한다든지, 간단한 채팅 클라이언트를 브라우저에서 수행시키게 하는 정도의 Applet 으로 시작했지요.

저는 꾸준히 C 만 사용했습니다. Java 를 공부하긴 했지만 VM 에 대해서 공부했고,
자바 프로그래밍은 영 적성에 안맞았습니다. (OOP 가 뭔지 잘 몰랐던 것 같네요)

turboc.jpg
2000년 밝았습니다.
제 주요 업무는 커널이었기 때문에 다른 언어를 별로 관심 있게 보지 않았습니다.
리눅스 커널, 가상 메모리 구조, 크래시 해결, 성능 평가 등을 10년 정도 했습니다.
사실 코딩은 거의 할일이 없었지요.

이 바닥이 어떻게 변하는지 담을 쌓고 산 것 같습니다.
2000년 이후는 진짜 드라마틱하게 소프트웨어가 발전했습니다.
개인이 고성능PC 를 집에다 둘 수 있었고 수많은 코드가 쏟아져 나왔으며
OOP, Functional 등의 개념이 대중화 되기 시작했습니다만
저는 그냥 "저런걸 머리아프게 왜?"

2008년 안드로이드를 만납니다. "어 자바를 쓰네"
자바를 다시 공부하기 시작했습니다. 이제는 자바 프로그래밍을 해야겠다.
제가 알던 자바가 아니었습니다. 이미 거대한 라이브러리들이 풍부했고, 개발 환경도 너무나 훌륭하고,
속도도 매우 빨랐습니다.(물론 컴퓨터가 겁나 빨라진 거죠)

C 언어만 하다가 OOP 를 하기란 쉽지 않습니다.
OOP 는 뭔가 스타일이 다릅니다. 개념적으로 이해하는 것과 코딩하는 것은 사뭇 다릅니다.
C 스타일로 자바를 짜면 망합니다.
자바를 오랫동안 해 온 사람은 파이선 코딩에서도 자바 스타일이 느껴집니다.(이건 나쁘지 않네요)

이때부터 수난이 시작 되네요... 학습한 것은 학습할 것을 따라가지 못합니다.
아 진짜 이길이 아닌가... 한 100번쯤 생각한 것 같습니다.

올해 초부터 웹 백엔드를 시작했습니다. 웹쪽은 진짜 안하려고 했는데...
이제는 파이선, 노드, 리액트 이런걸 합니다. (정말 수난입니다)

새로운 것을 배울 때는 넘어진다는 것을 충분히 이해해서 "맨땅에 헤딩"하는 것은 당연한 일입니다.
얼마전에 jQuery 와 Bootstrap 을 알게 되었고, 2-3일 정도 맨땅 학습합니다.
저는 이에 대해서 아주 조금 알고 있지만, "맨땅에 헤딩"기간이 지났다는 것을 알게 됩니다.

개발은 수난의 연속입니다.
사실 이런 이야기 누구한테 하소연할 곳도 없고, 그냥 들어주는 사람이 있으면 고맙습니다.

수많은 수난을 겪으면서 제가 얻은 것은 한가지입니다.

  • 포기하지 않으면 언젠간 "맨땅"에서 벗어날 것입니다.
  • "맨땅"을 피하면 절대 "맨땅"을 벗어나지 못할 것입니다.
Sort:  

English world

I wish I could read your post but my bad luck I don't know Korean.I will try with translator. :-)

우와앗.... 앞으로도 이런 이야기 많이 들려주세요.
저도 일기 식으로 한번 털어놔 보고 싶네요 ㅎㅎ

노력해 보겠습니다. 감사합니다.

상당히 흥미로운 내용과 방식의 글이네요 ^^ 팔로잉 하도록 하겠습니다 ^^

감사합니다
kr-dev 에 자주 방문해 주십시오. ^^

재밌게 잘 읽었습니다. kdj님 프로그래밍 연대기 보면서 추억에 잠기네요.. ㅎㅎ 저도 C, 어셈블리를 거쳐 장기간 C++ 백엔드에 정착했었습니다. 눈닫고 귀닫고 세상 변하는거 외면(?) 하면서 C++ 백엔드의 장인이 되자 하며 버텼는데, 지금 생각해보면 그건 다 핑계였고 변화를 맞딱드리고 초보딱지를 다시 붙이기 싫었던게 아닌가 싶습니다.

몇년전에, 유행(?) 하던 모든 기술을 이용하는 스타트업으로 과감히 이직해서 클라우드 SaaS 풀스택 개발 하며 열심히 맨땅에 헤딩 하다가, 이제는 조금 방귀좀 낀다 하는 수준이 되었습니다. C++서버에 직접 REST인터페이스 붙이면서 성능이 좋을거야라고 자위하던 수준에서 완전히 벗어나서, 이제는 C++에 외부인터페이스를 직접 붙이는것은 아둔한짓이라는 생각이 먼저 들고, C++,NodeJS, Python을 섞어서 백엔드 만들고 프론트엔드도 Bootstrap, JQuery, Angular등을 이용해 직접 작업해보니까, 몇년전까지 C++ 부심 부리던 제가 어찌나 한심하게 느껴지던지요. ㅎㅎ

그렇게 새로운 것들에 좀 익숙해지고 편해지고 나니 다시 자바 루비 리액트 리듀스 등을 써야 하는 새로운 "수난"을 앞에 두고 있습니다. 싹다 바꾸려니 걱정은 좀 되지만 수난이 수난만으로 끝나는 것은 아니란걸 알기에 다가올 맨땅이 기대가 되네요. 앞으로 많은 교류 기대하겠습니다. ^^

외국 소프트웨어 회사들은 학습을 유도하기 때문에, 가만이 있어도 자동 학습이 될 것 같기도 하네요...
국내는 아직 학습 = 비용 = 낭비 이런 생각이 아직 남아있는 것 같군요.

저는 처음에 C 로 공부하기 시작해서 터보 C, C++, C# 으로 넘어 왔어요
한때 C++ 로 게임 개발 할때는 자체 엔진을 스스로 만들어야 한다는 생각에 사로 잡혔었죠
그런데 시대가 바뀌고 세상은 참 빠르게 변하더라구요
강력한 엔진들이 등장하면서 자체 엔진을 개발하는 것은 시간 낭비가 되버린 시대가 되어 버렸죠
새로운 것은 계속 쏟아져 나오고 거기에 발 맞춰 나가기 위해 계속 달려야 하는게 개발자들의 숙명인가 봅니다 ㅎㅎ

오픈소스 개발에 참여하는 것은 작지만 강력함에 힘을 보탤 수 있는 것이겠지요...