하늘높이의 프로그래밍 이야기

거창한 제목인 것 같긴 한데...
일단 오랜만에 글을 쓰기 위해 앱을 열었다.

참 오랜만에 블로그에 글을 쓰는데... 유튜브 시대에 무슨 글인가 싶지만
그렇다고 내생각을 정리하는데 동영상을 찍을 수는 없고...
이것도 내 나름의 정리라고 생각해 보자.

일단 이것은 오로지 나의 주관적인 의견과 내 상황에 대한 시점에서 바라본 상황들이라는 점을 밝혀둔다.
사실 개인적으로 타임머신 주제의 미드나 영드는 좋아하지만... 나의 미래는 잘 모르겠다.

마흔을 맞이한 2020년의 어느날.. 앞자리가 19가 20으로 바뀌던것이 엊그제 같은데 벌써 그것도 20년이나 지나 2020년이나 되었다. 라떼는 말이지라는 말을 의식하지 않으면 달고 살게 되는 꼰대가 되었고...
부동산은 마구마구 뛰었으나 그쪽에는 전혀 투자 하지 못해 저절로 손해 보는 구경꾼이 되었다.

그 와중에 개발자라고 
TV를 보다 문득 4차 산업 혁명의 이야기가 나오고 주변이나 회사에서도 인공지능이나 미래에 대해서 주고 받는 이야기가 나오면 관심있게 보기는 하나 영 맘에 드는 주제의 흐름은 아닌듯하다.

옛날에는 4차 산업 혁명 시대가 되면 정확히는 당시에는... 미래가 되면 어쩌면 개발자들이 더 많이 주목 받고 할일이 많아질꺼라고 그러면 단지 컴퓨터가 좋아서 이 직업을 선택한 믾은 매니아틱한 사람들이 좋아지는 세상이 될꺼라고 믿었다.

물론 틀린것은 아니였고 20년간 좋아하는것 하면서 그래도 잘 살았다.
또 실제로 모바일의 세상이 되었고 개발자는 모자랐고 35살이면 닭집을 차려야 한다는 개발자의 정년 유머도 어떻게 보면 인원의 부족으로 조금씩 줄어들어 나역시도 현재까지 개발을 하고 있다.

하지만 최근 2~3년에 내가 생각한 프로젝트가 개인적으로는 실패라는 판단이 들어서고 최근에 좌절이 많아졌다.
실패를 첨 한것도 아니고 과거에 실패 안에서도 건질 것은 있었고 또 그것들이 나의 자양분이었으나 나이가 드니 살짝 실패가 두렵다.

다양한 경험들

구글이 생기면서 일종의 개인 소스 라이브러리 폴더가 많이 사라지고 개인 유틸이라고 짜놓았던 많은 클래스와 함수들이 더 뛰어난 프레임워크로 대체되었듯이 많은 노하우들과 경험들은 어쩌면 정확하지는 않더라도 검색에 의해서 해결이 되었고 (물론 검색을 잘하는것도 경험이고 어느 부분은 검색되지 않는 노하우가 있을수도 있지만)일반 사용자나 비 전문 관리자는 내부의 중요성을 모르니 최종 동작의 상태만 확인하고 적당히 동작하면 어플리케이션의 역할은 그것으로 된 듯하다.

시간은 많이 보냈고 몸집은 무겁고 커졌다.
열정이 사라졌다고 말하기는 어렵지만 아니 말하기 싫지만 또 해야 하는 삶의 과제들이 늘어나게 되었다.

남은 시간을 어떤것으로 주력해야 하나
조금만 지나면 방법도 바뀌고 패러다임도 바뀐다
그래서 고민이다 어떠한 선택이 필요한지 또 무엇을 할 수 있을지...

흐름은 어떻게 바뀌어 갈것인지 말이다..

 

https://www.netflix.com/kr/title/80190844



일단 개인적인 배경 설명은 ...

나는 방송사 뉴스 관련된 부서에서 인터넷 뉴스사이트 프로그래밍 개발 업무를 주로 하는 개발자이며 바둑은 아버지가 너무 좋아셔서 어린 사춘기 반항심과 세대 차이라는 명목아래 전혀 배우지 못했고 현재도 전혀 알지 못한다.

비슷한 예로 초등학교 때 감사히도 컴퓨터가 있었고 가장 큰 친구이자 행복이었기에 주판이나 암산등이 관심이 없었다.

본론으로 들어가서 알파고 사실 몇년되지 않은 일이었고 그 당시에는 머신러닝을 구현할 수는 없어도 나름 이론을 이해한다는 어설픈 개발자 생각과 당시 방송사에서는 이 대국을 유튜브 생중계로 어떻게 해볼까라는 고민이 커서 화재의 중심에서 일했지만 본질에서는 조금 벗어나 일에 관심이 더 있었던 듯 하다.

저녁에 잠시 뭔가를 보려고 넷플릭스를 켰고 그들의 추천시스템에 의해 추천되는 동영상 중 해당 영상을 발견하고... 그땐 그랬지라는 마음으로 잠시 봤는데 늦은 시간임에도 끝까지 멈출수가 없었다.

알파고는 거울 같다는 판후이의 말과 알파고를 만든 것도 인류이기에 인류의 승리라는 설립자의 이야기 또한 바둑을 두길 잘 했고 바둑이 뭔지 더 공부하게 되었다는 이세돌 기사의 인터뷰 역시 단순히 분야의 천재들만의 이야기로 치부하기에는 너무나도 크게 마음에 울림을 남긴다.

자신을 돌아보게 하는 많은 말들
30대의 마지막 나태하지는 않았지만 열심히 살았다고 생각했는데 조금더 열심히 더 도전해보지 못했음이 아쉽다. 도전거리를 찾아야 겠다. 지금처럼 육아에 도전하고 아이들과 시간을 보내는것도 좋지만 조금더 효율을 높이는 방법을 고민하고 찾아봐야겠다.



알파고 이후의 딥러닝의 시대가 되었다.
부모들에게도 약간 쇼킹한 사건이었는지 아이들에게 소위 말하는 코딩교육을 한다고 한다.

그런데 어떤 전단지를 보면 자바가 써 있기도 하고 어디에는 C언어가 써 있다더라. 헉
개발을 잘 모르는 사람은 코딩이 인기라더라며 웹 코딩/퍼블리셔 직군에게 이게 코딩 아니냐며 코딩 교육을 할생각이 없냐는 이야기도 한다.

물론 Java, C, HTML 좋다. 그들의 원리를 조금 배워보는것 역시 좋다. 하지만 그들의 철학과 원리를 이해하기는 15년이 된 개발자도 어렵다.
(나만 그런가?)

그리하여 나의 생각은 아이들이 배울 것은 그것이 아닌데...
아이들이 당장 자바나 HTML 코딩을 배우면 뭐하겠는가... 나 역시 초3에 컴퓨터가 생기고 4학년때부터 뜯기 시작하고 6학년때 GW베이직을 처음 익히고 이 바닥으로 들어왔지만 사실 중요한것은 그것이 아니었다.

개발자가 된 것을 후회하는 것은 아니지만 컴퓨터에 빠져서 다른 기초학문이나 사상을 혹은 수학을 더더더더더 많이 익히지 못했던것을 후회한다.

또한 개발의 언어 외에도 업무의 언어를 더 많이 있히지 못함이 미안하다.

소위 딥러닝의 시대가 되면 더 그럴지 않을까.

현재도 3.5세대나 4세대 IDE툴 즉 개발환경을 제공해주는 툴 들, 예를들면 비주얼스튜디오나 이클립스등의 툴은 나름의 인텔리전스 기능을 가지고 있다. 코드 몇자를 치면 이 코드 쓰려는 거구나. 다 입력해줄테니 여기서 바꿔봐... 그리고 조금더 쉽게 쓸수 일는 프레임워크나 언어는 계속 나온다.

딥러닝 시대가 되면...이것이 더 발전할텐데...
ide가 (이제는 문법이 아니고) 너가 이 알고리즘을 쓰려는 거구나... 이렇게 짜보는 것이 어때?
너가 짠 코드는 이런 부분이 비 효율적이야. 내가 바꿔도 될까?

현재의 DB처럼 넌 맘데로 니멋대로 짜
코스트 기반의 옵티마이저가 분석해서 똑같은 결과 코드로 대체 할 것이다. 너가 짜려고 하는 코드는 스택오버플로우에 이미 있는거란다. 이것대로 해볼렴!! [사실 지금도 컴파일러가 비슷하게 하고 있지만... ]

정말 아쉽지만 결국 코드를 잘 짜는 개발자와 못 짜는 개발자의 차이가 적어진다. 즉 경력자와 초보자의 코드가 별 차이가 없어진다. 정말 잘짜고 효율적인 그리고 수학적인 개발자는 엔진 개발자, 코어 개발자등 한정 분야에만 존재 할 것이다.

그렇다면 나는 어떤 능력을 늘려야 하고 아이들에게는 무엇을 알려줘야 할까?

개발의 언어인가 사고의 능력인가.






얼마전에 아이들을 재우고 밤에 넷플릭스에서 영화 잡스를 보았다. 내가 좋아하는 철학의 애플 그리고 스티브잡스의 일대기

사실 이미 많은 부분이 알려져 있고 실존했던 인물의 긴 스토리를 짧게 영화로 보여주려고 하여.... 다른 영화들에 비해 영화의 스토리라인은 생략이 너무 많아 영화 구성 자체는 개인적으로는 조금 별로 였으나...

여러가지 생각이 들어 몆가지 적어 놓아야 할것 같아 기록을 한다.


스티브 잡스는 "천재인 것은 맞지만. 내 주변 저런 성격의 사람이 있지는 않았으면 좋겠다" 라고 생각이 드는 인물 중 하나였다.

이유는

- 출생의 문제로 세상에 대한 원망은 많고 자존감은 너무 높은 절대 갑
- 다른 직원/동료 들과 소통을 하지 못하는 독불 장군
- 뭐도 없으면서 허세만 부리는 전형적인 사기꾼
- 일에 빠져 가족이나 동료를 보지 못하는 일 중독자

주변 사람들로는 참 싫어하는 요소들이며 위에 것들만 보면 전형적인 한국 기업/한국 정치의 사람인데 라는 생각도 들었으나...

그에게는 성공을 할 수 있는 절대적으로 부러운 점 세가지가 있었다.

- 메인프레임 시대에 개인적으로 세계 최소 형 컴퓨터를 만들 수 있는 천재 스티브 워즈니악이 친구로 있었고 그를 동료로 만들수 있었다.

- (애플이) "세상을 바꿀 수 있다"는 사명감을 머리에 두고 그것을 기초로 결정하고 행동하고 있었다.(설령 그 행동이 잘못되고 너무 극한의 방향이라 인간적이지는 않았디만 그의 행동은 결정 자체가 달랐다.)

- 마지막 아름다움에 대한 디테일
(동료와는 소통하지 못했지만 소비자의 니즈는 정확히 파악하고 아름답게 만들었다.)

즉 사람과 비전 그리고 완성도

나는 매 순간 어떤 생각을 가지고 코드를 짜고 계획을 하며 그것을 동료들에게 전파 하고 있는 것일까?

앞으로 나는 어떤 기준을 머릿속에 넣고 생활하고 판단하여 전파해야 할까?

진지하게 나에게 물어봐야 할듯 싶다.

Hello world가 아닌 Change the world 할 수 있을까?


[몇년전 쿠퍼티노에서 찍은 사진을 추억하며...]








티맥스 OS 발표 행사를 보고 핑을 남긴....

원문링크 : 똑똑한 개발자들을 바보로 만드는 방법


글을 보고 혼자 드는 생각은
티맥스의 문제 만으로 보기는 어렵다.
회사의 윗선 들도 철학, 환경, 배경 등 저렇게 하는 이유가 있겠지....


그리고 나 역시 나이가 들어가는 개발자라서 업계의 이런 문제가 점점 고민스럽다.


- 관리인가? 개발인가?
- 모든것을 다 컨트롤 해야하는가? 외주에게 맡겨도 되는가?
- 빠른 개발 속도가 우선인가? 돌다리 모두 두드려 보는 안정성인가?
- 실험인가? 익숙함인가?
(계속된 실험을 하는 페이스북 역시 꾸준한 버그도 보여 준다.)
- 중앙 관리 체계인가? 지방 자치 체제인가?
- 성장인가? 분배인가?
- 방패를 부쉴 창인가? 창을 막을 방패인가?



Thinkin' about the code

Software-development

과거 하드웨어 반도체의 축이던 인텔
그리고 2년 아니 18개월 마다 반도체의 집적도는 전에 비해 2배가 된다는 무어의 법칙

무어의 법칙의 세 가지 조건은 다음과 같다.
출처: 위키피디아

  1. 반도체 메모리칩의 성능 즉, 메모리의 용량이나 CPU의 속도가 18개월에서 24개월마다 2배씩 향상된다는 '기술 개발 속도에 관한 법칙'이다.
  2. 컴퓨팅 성능은 18개월마다 2배씩 향상된다.
  3. 컴퓨팅 가격은 18개월마다 반으로 떨어진다.


어느덧 무어의 법칙은 하드웨어 세상에만 존재하는 법칙이 아닌 비트의 세상, 즉 소프트웨어 세상에도 존재하는듯 하다.

소프트웨어의 세상 역시 제곱, 즉 기하급수적으로 팽창하고 있다.

자고 일어나면 새로운 오픈소스, 개념, 철학
AI, 딥러닝, 클라우드, 아마존, 페이스북, 구글, 마이크로소프트 업체들마다 다들 새로운 계획과 구성을 필요로 한다.

어느 정도 완성되어 마지막 부분만 학습하여도 구현 되는 부분이 있긴하나 제대로 알고 발전시키며 남들에 비해 우위에 있으려면 기초 학습인 수학이나 통계 역시 알아야 좋다.(어느 정도 능력도 요함) 게다가 사상의 패러다임의 변화까지 변화를 주어 신 개념 혹은 철학까지 필요로 한다.

나 혼자 아무리 똑똑하려 해봐야 양적으로 할 수 없는 시기가 도래 하였다.
(모두 이해하려면 아이언맨이나 베트맨 정도 되어야지 나같은 일반인은 잘 모르겠다.)

사람들과 더 함께 일하고 그들은 발전 시키고 함께 성장하는 방법을 찾아야 한다. 그렇게 하면 변화의 양을 감당할 수 있을까?


어렸을 때는 윈도우나 리눅스가 새로 나오면 베타테스트 때부터 설치해보고 그랬었는데...
윈도우, 리눅스 등 OS 설치만 해도 몇 천번은 되지 않을까? 리눅스 하루에 열댓개씩 나눠깔던 시기도 있었으니까...

이제는 플랫폼도 다양해지고....
나이도 먹고 생활에 시간도 없다보니...

이제서야 겨우 윈도우 10을 깔았다.
열정이 식었나? 나이가 들었나?
가정이 생겨서? 관리하는게 너무 많아서?
뭐 이런 저런 이유가 있겠지...

이것도 최근에 하고자 하는것이 이슈가 있어서 겨우 설치...

재미있는 경험 아이디어가 나왔으면 좋겠는데
생각하다 보면 몸은 하나고...
모든것을 다 할수는 없고

지금은
남 혹은 서로를 믿고 이용하고 그들에게 맡기는 법 부터 배워야 한다.

롤 모델[Role model]: 자기가 마땅히 해야 할 직책이나 임무 따위의 본보기가 되는 대상이나 모범.

롤 모델의 변화.

사람이라면 누구나 하고 싶은 일과 하기 싫은 일이 있을 것이다.  하고 싶은 일들의 모여 꿈이라는 것이 되고 또 그것들이 변화돼 삶의 목적, 목표가 될 것이다. 그럼 생각해보자. 나는 하고 싶은 것이 무엇일까?

나의 어렸을 때 장래 희망은 단순한 프로그래머였는데..... 프로그래머라는 직업으로 7년 동안 살아온 현재의 나의 꿈은 무엇인가? 그리고 앞으로 내가 해야 할 것, 나의 꿈은 무엇인가? 라는 생각을 해보게 된다.

후회는 아니지만 만약에 내가 .....뭐 뭐를 했다면.... 이라고 생각해보자.
만약에 내가 어렸을 때 컴퓨터를 접하지 않았다면?
만약에 내가 졸업을 하고 프로그래머의 길로 들어 서지 않았다면?
만약에 내가 다른 분야의 일을 했다면?

지금의 나는 어디서 무엇을 하고 있었을까?

요즘에 나는... 나 나름 대로 굉장히 중대한 결정을 내리고 있다.
그렇다면 이 결정을 내리는데 있어서 가장 중요한 원인은 무엇일까?

가장 큰 원인은 나의 롤 모델이 변화하고 있는 것 같다.


세상이 나에게 묻고 있다. 당신의 꿈은 무엇이냐? 당신은 누구처럼 되고 싶으냐?

만약 7년 전 아니 2년 전까지만 해도 누군가 나에게 그 질문을 한다면....

나는 이렇게 대답했을 것이다. "은퇴할 나이가 들어서도 코딩이 주 직업인 아름다운 프로그래머...."

지금은 아닌 것 같다. 그럼 무엇이라고 대답할 것인가? 그것은 아직 찾고 있다. 나만의 롤 모델을..

아마 현재 생각하고 있는 단어는.... "행복한  아키텍쳐 그리고 컨설턴트"

   

어느 것이 정답인지는 계속 살아보면 알겠지.
오늘도 이렇게 고민하며 또 잠이 든다.

최근에 누군가 나에게 물었다...

개발자로서의 당신의 원칙은 무엇인가?
대답할 수가 없었다. 혹은 말도 안되는 말을 하며 둘러대었던것 같다.

"개발자로서의 나의 원칙은 무엇인가?"
생각을 많이 하게 하는 질문이다. 하지만 쉽게 답변할 수도 없는 질문인것 같다.

개발자로서의 6년째....
어렸을때부터 꿈꿔온 프로그래머....

하지만 나의 개발 원칙은 무엇인가?라는 질문에 나는 당황할 수 밖에 없었다.
그렇다면 지금까지 내가 개발 한것은 원칙없이 개발한 것들 뿐이라는 것일까?
지금까지 내가 프로그램을 작성할때 생각한 원칙은 무엇일까?

한 단어로 집약되지 않는 모호한 잡념뿐이다.
당분간은 이 질문에 대한 답변을 찾아야겠다.
어쩌면 이것에 대한 답변을 얻는것이
앞으로 5년 혹은 10년간 나의 생활에 있어서 하나의 잣대가 될것이라고 생각한다.

찾아보고 고민해보자... 개발의 원칙...개발자의 원칙...
어렵다. 그 원칙을 찾아 이곳에 정리 할수 있는 날이 오겠지?