필자는 IT 세상을 바꿀 있다고 아직 믿고 있다. 이런 망상도 본다. 만약, 이더리얼이나 비트코인( 가상화폐의 종류이다) 쓰는 사람들끼리만 마을을 만들고, 진짜 일을 하는 사람들(농축산업 종사자, 가공자, 음식점, 교사, 의사, 군인 ) 모아 두고 화폐를 통용시키게 하면 국가 조차 필요 없게 된다. 모든 사람들을 하나의 공동체에 포함하지만 상위 10% 재산을 가진 사람들은 제외한다면, 상위 10% 사람들은 안에서 자기 똥을 치워줄 사람, 밥을 해줄 사람들을 찾아야만 것이다. IT 어느 정도 있었던 사람이라면 망상이지만 만들 수는 있다고 생각할 것이다. 중간중간에 필자가 소송을 당할만한 내용도 들어가겠지만 Dirty Play 모르고는 돈에 근접할 수도 없을 것이다. 정작 중요한 것은 돈에 얼마나 근접하고, 많이 버느냐가 중요한 것은 아니다. 돈을 정말 하나의 수단으로 있는 능력자가 되느냐 마느냐는 사실, 당신의 마인드와 책을 충분히 소화해서 멋진 것을 만들어 내는 데에 달려 있다.



----



컴퓨터 언어는 우리가 일상적으로 쓰는 언어와 같다. 컴퓨터와 소통하기 위한 언어이다. 수백 개의 언어를 아는 것은 커리어에 도움이 되겠다. 그러나 생활 영어를 구사하는 실력보다는 TED에서 발표 원어민들 대상으로 세미나를 있다면 분명 높은 LEVEL 위치한다고 말할 있다. 


프로그래머가 되기 위해서는 앞서 말했 코드를 열심히 쳐야 한다. 2~3일이면 번째 마일스톤에는 도달했을 테니 초급 프로그래머가 추가로 공부할 Keyword 다음과 같다.


절차 지향 프로그래밍

객체지향 프로그래밍


전자는 컴퓨터의 탄생과 함께 개념이고, 후자는 명확한 날짜는 모르지만 중학생 (23 ) Borland 사의 Trubo C++ 3.0 구입했던 기억이 있으니 최소 20년은 넘은 개념이다. 그러나 많은 전공 학생들이 아직도 제대로 모르는 부분이 있어서 명확하게 적어 보려고 한다. 시간 코드 설명이면 전공자 모두가 고개를 끄덕였으니 말이 빠른 편임을 고려했을 . 3~4시간의 직접 강의라면 정도, 스스로 공부할 지도를 얻을 있는 셈이다. 세부적인 내용까지 들어가더라도 10시간을 넘지 않았다.


객체지향 프로그래밍은 다음의 개념을 알면 된다.


추상화

전달

객체지향 5 개념


추상화는 다음과 같이 나눠진다.


모델링 설계 방법

코드를 줄이는 방법


전달은 다음과 같이 나눠진다.


메모리를 통해 전달하는 방법

API 통해 전달하는 방법


객체지향 5 개념은 다음과 같이 나눠진다.

class, object, 다형성, 상속, 캡슐화


절차 지향과 객체지향 이야기

C 절차 지향이고 C++ 객체지향 언어라고 한다.


틀렸다.  아니라 "~ 절차 지향 언어다. 객체지향 언어다."라고 말하는 자체가 틀린 내용이다. 객체지향은 대상을 추상화하는 방식이 절차 지향과 달라서 프로그래밍을 설계를 바라보는 생각의 흐름이 달라지는 것을 말한다. 객체지향, 절차 지향 언어를 말하는 것은 무의미하다고, 이미 십수 전부터 학원 강사 활동하며, 많은 설파를 했지만 전달되지 않는 이유는 모르겠다. C++ 창시자(비얀 스트라 스트럽) C 번역되는 번역기를 먼저 만들었다. 만약, 객체지향 절차 지향을 나눈다고 하면 객체 지향 프로그래밍이 절차 지향 프로그래밍 언어로 번역되는 프로그램을 창시자가 먼저 만든 것이다. 논리적으로 태생을 달리하려는 세력 때문에 C C++ C/C++처럼 묶어버리고 , 가짜 객체지향 언어라고 하는 사람들도 보인다. 2016 명확히 이야기하면 C C++ 분명히 다른 언어이다.


그러나 모든 언어는 같다고 말하고 싶다. 밥을 달라고 하던 I'm hungry라고 하던 おなかすいた라고 하던 언어를 이용해서 밥만 먹으면 된다. 영문법 책을 보면 한국어와 영어가 같이 있는데 JAVA & C, PYTHON & JAVA 등과 같은 책은 없는 것일까?


그것은 그것들을 설명할 있는 언어를 사람들이 모르기 때문에 그렇다고 보인다. 필자 역시 배우는 단계에서 다른 언어로 이해하고자 선임자들이 방법이 잘못되었다고 말해서 안개 속을 오래도록 걸었었다. 프로젝트를 진행하면서 선임자들보다 잘한다는 것을 깨닫기 시작했을 확실하게 말할 자신이 생겼다. 이것은 무언가에 비유해서 설명할 것들이 아니다.



1065  git clone --depth=1 https://github.com/linagora/hublin.git && cd hublin

 1095  base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine

 1098  base=https://github.com/docker/machine/releases/download/v0.16.0 &&   curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&   sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&   chmod +x /usr/local/bin/docker-machine

 

1821  git config --global user.email "mynameis@hajunho.com"

 1822  git config --global user.name "joe"

 

1761  ssh-keygen

 1762  ls

 1763  cat id_rsa.pub

 

 


프로그래머는 연구직군 입니다. 야근, 특근을 한다고 해도 창조의 '재미' 없으면 안됩니다. 성장이 끝난 회사에서는 정치가

개발자와 프로그래머, 코더, 아키텍트는 사실 동일한 말입니다. 외국계 자격증에서 나누는 방식을 따르자면 아키텍트 > 디벨로퍼 > 개발자 순일 것입니다. 그런데 여기엔 슈퍼 코더란 신조어도 고려해야 하고, 코더의 네임 밸류가 아키텍트 보다 우위로 평가될 때도 있습니다. 소프트웨어는 프로그램과 문서를 합친 것을 말합니다. 프로그램과 함께 훌륭한 문서까지 만드는 사람을 소프트웨어 엔지니어라고 부릅니다. 소프트웨어 엔지니어가 기술적으로 배울 점이 있다고 인정한 사람을 아키텍트라고 하면 되겠습니다.  아키텍트 역시 개발 경력이 없으면 엉뚱한 설계를 하기에, 요즘에는 정확한 정의와 목적 없는 용어들이 난무하는 경우도 적지 않습니다. 프로그램을 만드는 사람은 프로그래머입니다. 개발을 하니 개발자라 불러도 무관합니다. 개발을 코드를 짜니 코더라고 해도 되고, 코더가 프로그래밍 언어을 짜면서 새로운 모듈을 구상하고 설계도 하니 코더를 아키텍트로 불러도 됩니다. 하나를 가리키기 위해 많은 단어가 필요하다는 것은 비효율적인 일입니다. 이런 다양하고 복잡한 관계를 가진 용어들을 책에서는 프로그래머로 통일하려고 합니다.

분야에서 일하며 프로그래머를 꿈꾸는 많은 학생들을 만났습니다. 친구는 소위 말해 스펙을 쌓아 놓은 친구였습니다. 인서울 대학교에 4.3대의 학점, 950 대의 토익 점수를 보유했고 IT 관련 자격증 2개를 준비했습니다. 제가 팀장으로 있던 회사의 계약직 직원이었는데 이전 직원이 망쳐 놓은 코드들을 새롭게 다시 있을 정도로 실력이 있었습니다. 서울대 대학원 지인을 소개시켜주고 진학의 마음을 다지도록 했습니다. 아니라 기술연구 소장님, 대표님께도 공부의 의지를 표방하고 준비하여 대학원에 가는 듯했습니다. 그러던 부모님께서 편찮으시다는 소식이 전해졌고, 가사를 돕기 위해 그는 일을 그만두고 진학도 포기한 부모님께서 운영하시던 가게 일을 도왔습니다. 제가 그를 위해 있는 것은 아무것도 없었습니다. 비슷한 처지의 학생들이 많습니다. 지식을가르치기 하기에는 학생들의 삶이 지나치게 고됩니다.[e][f]

1년의 경험이 있으면 분야에 대해 시간 정도 이야기 분량이 나옵니다. 10시간의 멘토링으로, 대학생 멘티들은 자신의 길을 스스로 찾을 있었습니다. 10시간의 멘토링을 하나의 책으로 담고 싶었습니다. 지식을 전달하는 이상의, 학생들로 하여금배웠다!’ 느낌이 드는 경험을 책으로 하게 하고 싶었습니다. 그러나 글을 쓰는 지금도경험을 책으로 전달하는 에는 대단한 의구심을 가지고 있습니다. 책의 이야기인 장자의 윤편을 보면 있을 것입니다. 하지만 저와 만나지 못하고 안개 속을 걷던 학생이 책을 읽고 정보를 얻을 있다면 그의 인생에 조금이나마 도움이 수도 있다는 생각에 펜을 잡았습니다. 또한 급한 성격 탓에 제대로 전달 못한 말들을 다시 써줄 훌륭한 공저자와 함께 진행을 있어 오히려 책으로 전달이 될지도 모른다는 희망을 가지고 있습니다. 좋고 나쁨의 피드백을 모두 대학생을 대상으로 했기에 대상 독자로도 대학생을 고려했습니다. 그러나 대한민국 땅에서 프로그래머를 하고자 하는 사람이라면 책이 분명 도움이 것이라 확신합니다. 끝으로 책이 나오기까지 도움 주신 출판사 관계자 공저자, 그리고 나의 가족. 특히 아내에게 고마움을 전합니다.



프로그래머는 연구직군 입니다. 야근, 특근을 한다고 해도 창조의 '재미' 없으면 안됩니다. 성장이 끝난 회사에서는 정치가

개발자와 프로그래머, 코더, 아키텍트는 사실 동일한 말입니다. 외국계 자격증에서 나누는 방식을 따르자면 아키텍트 > 디벨로퍼 > 개발자 순일 것입니다. 그런데 여기엔 슈퍼 코더란 신조어도 고려해야 하고, 코더의 네임 밸류가 아키텍트 보다 우위로 평가될 때도 있습니다. 소프트웨어는 프로그램과 문서를 합친 것을 말합니다. 프로그램과 함께 훌륭한 문서까지 만드는 사람을 소프트웨어 엔지니어라고 부릅니다. 소프트웨어 엔지니어가 기술적으로 배울 점이 있다고 인정한 사람을 아키텍트라고 하면 되겠습니다.  아키텍트 역시 개발 경력이 없으면 엉뚱한 설계를 하기에, 요즘에는 정확한 정의와 목적 없는 용어들이 난무하는 경우도 적지 않습니다. 프로그램을 만드는 사람은 프로그래머입니다. 개발을 하니 개발자라 불러도 무관합니다. 개발을 코드를 짜니 코더라고 해도 되고, 코더가 프로그래밍 언어을 짜면서 새로운 모듈을 구상하고 설계도 하니 코더를 아키텍트로 불러도 됩니다. 하나를 가리키기 위해 많은 단어가 필요하다는 것은 비효율적인 일입니다. 이런 다양하고 복잡한 관계를 가진 용어들을 책에서는 프로그래머로 통일하려고 합니다.

분야에서 일하며 프로그래머를 꿈꾸는 많은 학생들을 만났습니다. 친구는 소위 말해 스펙을 쌓아 놓은 친구였습니다. 인서울 대학교에 4.3대의 학점, 950 대의 토익 점수를 보유했고 IT 관련 자격증 2개를 준비했습니다. 제가 팀장으로 있던 회사의 계약직 직원이었는데 이전 직원이 망쳐 놓은 코드들을 새롭게 다시 있을 정도로 실력이 있었습니다. 서울대 대학원 지인을 소개시켜주고 진학의 마음을 다지도록 했습니다. 아니라 기술연구 소장님, 대표님께도 공부의 의지를 표방하고 준비하여 대학원에 가는 듯했습니다. 그러던 부모님께서 편찮으시다는 소식이 전해졌고, 가사를 돕기 위해 그는 일을 그만두고 진학도 포기한 부모님께서 운영하시던 가게 일을 도왔습니다. 제가 그를 위해 있는 것은 아무것도 없었습니다. 비슷한 처지의 학생들이 많습니다. 지식을가르치기 하기에는 학생들의 삶이 지나치게 고됩니다.[e][f]

1년의 경험이 있으면 분야에 대해 시간 정도 이야기 분량이 나옵니다. 10시간의 멘토링으로, 대학생 멘티들은 자신의 길을 스스로 찾을 있었습니다. 10시간의 멘토링을 하나의 책으로 담고 싶었습니다. 지식을 전달하는 이상의, 학생들로 하여금배웠다!’ 느낌이 드는 경험을 책으로 하게 하고 싶었습니다. 그러나 글을 쓰는 지금도경험을 책으로 전달하는 에는 대단한 의구심을 가지고 있습니다. 책의 이야기인 장자의 윤편을 보면 있을 것입니다. 하지만 저와 만나지 못하고 안개 속을 걷던 학생이 책을 읽고 정보를 얻을 있다면 그의 인생에 조금이나마 도움이 수도 있다는 생각에 펜을 잡았습니다. 또한 급한 성격 탓에 제대로 전달 못한 말들을 다시 써줄 훌륭한 공저자와 함께 진행을 있어 오히려 책으로 전달이 될지도 모른다는 희망을 가지고 있습니다. 좋고 나쁨의 피드백을 모두 대학생을 대상으로 했기에 대상 독자로도 대학생을 고려했습니다. 그러나 대한민국 땅에서 프로그래머를 하고자 하는 사람이라면 책이 분명 도움이 것이라 확신합니다. 끝으로 책이 나오기까지 도움 주신 출판사 관계자 공저자, 그리고 나의 가족. 특히 아내에게 고마움을 전합니다.


우선 JAVA C 같다고 보자. 그러면 C++, C# 같은 언어가 된다. JAVA에는 포인터가 없다고 한다. 그래서 포인터 예외는 자바 8에서 레퍼런스 예외로 명칭을 바꾸려나 보다. JAVA에는 포인터가 있다. Object Void 포인터이며, 인스턴스 변수라고 불리는 것이 포인터다. 멤버 변수는 일반 변수나 struct 대응되며, 자바에서 메소드라고 하는 것은 C function 같다. 리누스 토발즈는 자신이 객체지향 프로그래밍을 하고 있다고 말했는지 모르겠지만 이미 리눅스 커널은 C 만들어진 객체 지향 소스이다. wrapping 되는 class 들은 wrapping 하며 쓰이는 함수 포인터와 같다. 앞서 말했던 new malloc, calloc이다. 메모리 확보 추가 키워드는 static이다.


최근 일주일 동안 C 배웠지만 JAVA 모르는 학생들과 기술 면담을 하면서 라이브 코딩으로 가르쳐 주는 내용들이며 분량은 1시간 30분짜리다. - 아마 글로 옮기면 얼마나 길어질지 모르겠다. - "중도 탈락"이라는 말을 쓰는 학업 성적은 우수했던 학생들이 다시 공부를 있게끔 해준 기술적 내용 강의 학생들은 바로 알고리즘 공부나 디자인 패턴, 그리고 수학의 정석을 다시 편다. 기본 앱들을 만들 있고 공모전에서 수상했던 친구들이다. 대부분 맥을 쓰는데 맥과 리눅스도 같다고 설파한다.(모든 프레임웍 같다고 설파하는데 조금 자중해야 - 초반부 학생들이 자신감을 가지기 위해 하는 것이지만 철학부터 다른 프레임웍을 같다고 하는 것은 어폐가 있음. 이에, 전면 수정 예정)


UNIX LINUX 같지 않지만 같다고 말하는 이유는 수많은 파일 시스템을 지원하고 완전히 다른 메커니즘으로 구현되었지만 정책은 같기에 그렇다. 간단히 말하면 배시 셸을 쓴다. 맥도 배시 셸을 쓴다. 이제 윈도도 배시 셸을 것이다.



사족 - 사족은 언젠가는 지워진다10 만에 지워질 때도 있다. 구독자를 위한 얼리어 답터 글들이다.

우선, 책은 그냥 나오는 것이 아니다. 이야기한 적이 있지만 나도 쓰는데 기여를 경험이 있었다. 소스 검증하다 보면 새로운 것이 나와서 또다시 검증해야 했고, 프로그래밍 언어가 대규모 업데이트가 되면 업데이트를 해야 했다. 어떤 내용은 쓰려면 회사에서 중요한 내용들이라 적기도 그렇다. 매거진에도 그런 분이 계시지만 학생들의 포트폴리오를 만들어 주려고 자신이 했던 부분들을 공개하지 않고 감추는 스토리도 있다. 우수한 실력으로 책을 썼지만 보다 진솔한 이야기들을 주려고 기존의 강한 이미지를 던지는 분들도 계신다. 그러나 안타까운 것은 그런 정보를 얻고 정보를 부재시키는 신입 개발자가 억대 연봉을 받고 기업에 들어갔다는 이야기이다.(국내 이야기다) 배가 아픈 아니라. 똑똑한 머리로 선배들이 닦아놓은 길들을 교묘하게 이용하는 행위들이 싫다. 그래서 귀를 쫑긋 세우고 있는 애독자들을 위해서 업계 험담들을 올리고 지우고 했는 했었다.


2~3 멘토링을 받았던 친구들은 모두 리눅스 마스터 자격증을 땄다. 레드헷 자격증 같이 외국 자격증을 따도 되겠지만 덤프의 위력이 너무도 크고, 외국 자격증들은 바우처도 비싸고 유효기간이 짜증 나고, 그냥 배시 셸만 학습하면 된다는 생각에서였다. 그리고 학생들이 공부를 나가면서 실무적인 마일스톤을 가질 있으니 얼마나 좋은가?(실제로 회사에서 인턴으로 학생들을 보면 확실히 차이가 났다) 자격증을 친구들과 아닌 친구들 모두 내가 팀장인 회사에서 인턴을 시켰는데 실력 차이가 확실했다. 자격증은 그저 이거 이거 알아요 말할 있는 것을 그냥 기본은 아요로 대신 말해주는 같다.  개발에서는 자격증은 아무 소용도 없게 느껴진다. 그래도 사람을 뽑는 입장에서 오라클 자격증이 있는 친구는 SQL 기본 문법은 알겠구나 하는 정도로 생각한다. 기술사가 아닌데, 기술사 진로를 물어보는 학생에게는 경험을 이야기해 준다. 이음 멘토링 멘토 네트워크에서 만난 나의 멘토 한분은 기술사도 따고 감리사도 따고 박사도 따고 교수님도 하시고 기업 CTO 였다. 놀라운 것은 박사가 있는데 디자인 박사 학위를 밟고 계셨다. 앞으로는 디자인이 중요하다고 생각해서 하고 계셨다고 했다. 단기간 멘토링 때문에 이야기를 종종 하지만 이렇게 배움의 열정 앞에서는 돈도 사실 무의미하다.


학위나 일했던 경력이나 자격증이 증명하는 것은 이런 형식이라고 보인다. 작은 자격증이라 할지라도 무시하는 더러운 개발 문화 그런 풍조를 없애고 싶다. 자기 능력에서 열심히 공부해서 땄는데 한마디 꺼내는 문화. 강사 시절이 있었기에 나도 여려 땄지만 워드 자격증도 나는 당당하게 말한다. 물론, 워드 자격증 없이 잘하는 사람이 있다는 것을 알고 있다. 단순히 워드를 조금은 봤고, 이러이러하 기능들을 봤어요 하는 말을 줄여서 자격증이 있다고 하는 것이다괜히 내가 어쭙잖게 통합해서 정리했던 것으로 공부한 친구들이 이상한 문화를 만들까 노파심에 미리 적고 준비를 본다.겸손부터 적었지만 나도 인성을 바꾸기가 쉽지 않았다. 그게 쉬운가...  년도 이야기이긴 하지만, 대학교 나와도 아무 쓸모없다는 기조가 있었다. 그러나 시간이 지나면 분명 다르다는 것을 우리는 있다. 슈퍼 코더들이 학교에서 시간을 낭비할 필요는 없겠지만 내가 하는 멘토링의 최종 목적은 학교가 그런 요람이 되도록 모든 지식들을 학교로 돌려주는 있었다. 정작 자신은 학교를 무시하고 그것들의 존재에 대해서 많은 부정들을 했었지만 말이다. 앞서 말했듯이 시간 개념을 놓고 봐야 한다.


애플리케이션만 만드는 프로그래머는 의아해하겠지만 점점 칩단(LOW LEVEL) 내려가면서 프로그래밍을 하다 보면 for (int i = 0; i < 7; i++) dosomething();  보다.

dosomething();

dosomething();

dosomething();

dosomething();

dosomething();

dosomething();

dosomething();

빠를 때가 온다는 것이다. 결국 컴파일러 최적화 옵션만 맹신하지 말고 하부 구현까지도 의심해봐야 하는 레벨도 있다. 내려가면 해당 분야 박사님과 아무리 디버깅을 해도 원인을 찾지 못해서 결국, CPU fetch cycle 때문에 리셋이 난다는 식의 보고서를 적도 있었다. 내가 정도면 전기기사나 전기공사 기사 자격증을 공부하고 설계를 공부하는 것은 기본. HOMEBREW CPU 만든 사람과 같이 CPU 하나는 만들어 봐야 원인을 찾을 있을 같다. 물론, 그렇게 보내는 시간 동안 세상은 어떻게 변해 있을지 모르기에 실천으로 옮기지는 않을 것이다.


설계의 시작은 모든 가능성을 의심하는 것이고, 디버깅의 시작은 자신이 만든 부분만 의심하면 된다. 너무 넓은 범위를 잡으면 된다. 우선, 자전거로 안전한 동네 바퀴만 돌면 된다는 것이다. 당장에는 외국인과 대화할 언어를 배우지는 못했지만 집에서 서투르게 외국어를 말해보면 된다. 외국어를 어떻게 말할지 고민하지 말고 당장 코드 타이핑부터 시작하라.


- 툴은 C Visual studio 2015, JAVA oracle JDK8 + Eclipse mar2, Beyond compare

( 10년은 협업을 책임질 툴이라 선택, beyond compare 돈이 들어가기에 차선책 툴을 찾는게 좋아 보이긴 )





프로그래머랑 대화할 우선 헬로우 월드는 찍어 봤다고 하자. 연봉 5000 넘는 자바 개발자가 세미나를 하는데 public static void main (String args[]) (*자바에서 기초중에 기초) 못쳐서 인터넷 검색을 하는 것을 보았다.


gcc -E  --> Preprocessor, but don't compile

gcc -S  --> Compile but don't assemble

gcc -c  --> asseble but don't link

gcc with no switch will link your object files and generate the executable



https://www.gitbook.com/book/tra38/essential-copying-and-pasting-from-stack-overflow/details

https://www.youtube.com/watch?v=Cs1rn3KHgTA

창시자의 책을 보시면 헬로우 월드 예제가 틀렸다는 것부터 아실 겁니다. 대소문자 구분에 ! 아닌 같아요.

Nothing and Everything 입니다. 아무것도 아닌 같지만 전부일수도 있습니다.


여기까지 굳이 말할 필요 없지만 제가 말하고 싶은 것은


천재라면 혼자 칩만들고 굳이 모듈 나눌 필요도 없이 원코딩으로 하드웨어 제어 코드, 운영체제, 프레임웍, 사용자들이 어플까지 만들면 되고 서버 역시 필요한 모듈들을 코딩할 필요도 없이 기계어로 짜서 넣어버리면 되겠지요. 그게 안되기 때문에 모듈을 나누는 것이구요. 디자인패턴 역시 자주 쓰는 코드들을 정의해 두고 서로 소통하기 위해 정도는 알고 서로 이야기 하자고 만든 것으로 생각됩니다. 겸손하게 소통하고 치킨게임이 되어 가고 있지만, 모두를 이끌어 주는 것이 필요하다고 생각됩니다. 그리고 개발자 하청은 더러운 경영자, 발주자들의 목록을 만들어서 우리들이 사람들과는 아무리 돈을 줘도 일을 안하거나, 일을 해도 대충 일해주고 소스를 경쟁업체에 넘겨준다던가 하는 방법으로 가면 좋을 같습니다. 물론, 좋은 분들은 돈을 적게 주시더라도 되었을 분명 이익을 쉐어링 것이기 때문에 목록 공유하고 성심 성의껏 일하구요. IT 협동 조합이 최근 만들어져서 많은 기대를 하고 있지만 그런 목록 만들기는 온갖 이해 관계가 얽혀서 쉬운 일은 아닐겁니다. 그러나 필요하지요.

그리고 물타기는 아닙니다. 역시 Ctrl+C, V에다가 어차피 Ctrl+C,V라고 말하며 어느 정도 지식은 있는 영약한 학생들이 유명 학교 빽그라운드만 믿고 나이가 13 차이나는데 살살 긁으며 빡돌게 하는 후임들이 많아서 어떤 요지인지는 100% 알고 있습니다. 옥시 사태처럼 진짜 중요한 정보 하나 정도는 알려줘야 하나 말아야 하는 기로에 고민을 합니다. 그럴 기준점이 되는 것은 제품 사용자들은 가족이 수도 있기에 사용자에게 무엇을 것인가가 기준점이 됩니다. 정치를 못하는 것도 아니라서 불이익을 주거나 잘라버리는 것은 사실 어렵지 않습니다만, 어린 노무 ㅅㄲ들을 상대로 이런 고민을 해야 하는 제가 너무 우스울 때가 있지요.

그리고 댓글이 많이 달리는 주제를 이끌어 주신데 감사드립니다.

  • 경영·사무  영업·고객상담  IT·인터넷  디자인  서비스  전문직  의료  생산·제조  건설 유통·무역  미디어  교육  특수계층·공공
  • 웹마스터·QA·테스터
  • 서버·네트워크·보안
  • 웹기획·웹마케팅·PM
  • 웹프로그래머
  • 게임·Game
  • 컨텐츠·사이트운영
  • 응용프로그래머
  • 시스템프로그래머
  • ERP·시스템분석·설계
  • 통신·모바일
  • 하드웨어·소프트웨어
  • 웹디자인
  • HTML·웹표준·UI개발
  • 동영상·편집·코덱
  • IT·디자인·컴퓨터교육
  • 데이터베이스·DBA

이뿐이랴...

건강 이꼬르 절약

내용 삭제

부트코드를 이해하기 위해 USB에 부트코드를 만들고 USB로 부팅하는 방법을 소개한다. BIOS에서 부팅 순서는 변경 시킬 수 있고, 컴파일러의 역할을 알고 있는 사람이라면 쉽게 할 수 있겠다.


http://www.yes24.com/24/Goods/1469757?Acode=101

rawwrite를 찾을 수가 없어 dd 윈도우즈 버전으로 대체하여 실행하였다. 하드 지우긴 그래서 USB로 부팅하였다. USB 중 SANDISK는 안된다. 내부적으로 보안 영역이 따로 있어 이미지를 0번지부터 써도 0번지부터 기록되지 않는 듯하다. 윈도우용 부트로더를 먼저 이해하고 u-boot와 리눅스 커널을 보면 한결 쉽다.


[org 0]

[bits 16]

jmp 0x07C0:start    ;far jmp 를 한다.

start:

mov ax, cs    ;cs 에는 0x07C0 이 들어 있다.

mov ds, ax     ;ds 를 cs 와 같게 해준다.

        mov ax, 0xB800    ;비디오 메모리의 세그먼트를

mov es, ax    ;es 레지스터에 넣는다.

mov di, 0;제일 윗 줄의 처음에 쓸 것이다.

mov ax, word [msgBack] ;써야 할 데이터의 주소값을 지정한다. 

mov cx, 0x7FF       ;화면 전체에 쓰기 위해서는 

    ;0x7FF(10진수 2047)개의 WORD 가 필요하다.

paint:

mov word [es:di], ax;비디오 메모리에 쓴다.

add di,2;한 WORD를 썼으므로, 2를 더한다.

dec cx    ;한 WORD를 썼으므로, CX 의 값을 하나 줄인다.

jnz paint   ;CX 가 0이 아니면, paint로 점프하여

   ;나머지를 더 쓴다.

mov edi, 0;제일 윗 줄의 처음에 쓸 것이다.

mov byte [es:edi], 'A'  ;비디오 메모리에 쓴다.

inc edi;한 개의 BYTE를 썼으므로 1을 더한다.

mov byte [es:edi], 0x06 ;배경색을 쓴다.

inc edi;한 개의 BYTE를 썼으므로 1을 더한다.

mov byte [es:edi], 'B'

inc edi

mov byte [es:edi], 0x06

inc edi

mov byte [es:edi], 'C'

inc edi

mov byte [es:edi], 0x06

inc edi

mov byte [es:edi], '1'

inc edi

mov byte [es:edi], 0x06

inc edi

mov byte [es:edi], '2'

inc edi

mov byte [es:edi], 0x06

inc edi

mov byte [es:edi], '3'

inc edi

mov byte [es:edi], 0x06

jmp $;이 번지에서 무한루프를 돈다.

msgBack db '.', 0xE7;배경색으로 사용할 데이터

times 510-($-$$) db 0;여기서 부터, 509 번지까지 0 으로 채운다.

 dw 0xAA55;510 번지에 0xAA 를, 511 번지에 0x55 를 넣어 둔다.



updated at 20180722

다시 커널 책을 펴다 -> 현제 제목으로 변경 후 매거진 변경(Linux Master)

정상동작 확인(역시 Sandisk에서는 안되니 다른 USB 사용 요망)


nasm -Administrator 권한으로 설치 必

C:\NASM>nasm -f bin -o boot.bin boot.asm


USB 드라이브가 e라고 가정

C:\NASM>dd if=c:\nasm\boot.bin of=\\.\e: bs=512 count=1


NASM 2.13.01_64bit magnet

magnet:?xt=urn:btih:BDFF52A5C3CDD8604D4921CE75DD6D9D549D10BE&dn=nasm-2.13.01-installer-x64.exe&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce


DD 0.4 beta magnet

magnet:?xt=urn:btih:2ACA21B101B83BBB83A663A90D7905A573A6EB81&dn=dd-0.4beta1.exe&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce

'블로그 항해 일지 > Embedded' 카테고리의 다른 글

SW PWM, UART 구현  (0) 2019.01.11
ODROID GPS 모듈 입양 完  (2) 2019.01.08
GPIO 제어 via 블루투스 on 삼성폰  (0) 2019.01.08
블루투스 연결  (0) 2019.01.08
GPIO 컨트롤  (0) 2019.01.08

관련 강의가 있어 우선, 환경 세팅을 진행하였다. VMWARE에 UBUNTU 18.04 설치.

같은 컴퓨터에서 20명 우분투 환경 설정하는데 버그가 이렇게 다양하게 나오는지 황당했다.


VTx Enabling 문제

-> hp elite 8300은 특이하게 Security -> System Security에 해당 옵션이 들어 있어서 황당. 보통은 CPU 혹은 system 의 Advanced Setting에 들어있는데 말이다. 본디 가상화 메뉴가 바이오스 버전인 줄 알고 2013 버전 바이오스를 2018 버전으로 업데이트까지 했었음 ㅠㅠ


네트워크가 막힌 상태에서 VMWARE player 14 설치가 안 되는 버그

-> 14 버전에서 설치 시 네트워크로 뭘 체크하나 봄. vmware player 12 버전으로 해결


ubuntu 18.04에서 lock 파일로 apt 동작 안 하는 문제

-> 백그라운드에서 자주 쓰나? lock파일 삭제(캐시 폴더에서도 삭제)로 해결


네트워크 연결 후 apt-get 실행 시 모두 같은 환경인데 몇몇만 실행 안 되는 문제

-> 동일 IP에서 너무 많은 요청이라 막는 듯. /etc/apt/sources.list에서 us.ubuntu블라블라를 kr.ubuntu로 모두 수정하여 해결


build-essential 설치를 못하는 문제 및 기타

-> 리눅스의 bash shell이 어색한 친구들 문제. history 보고 하나씩 해결


모두 LOG가 남는 문제라 쉬운 troubleshooting.




아래 명령어는 알아두자~

https://www.tecmint.com/useful-basic-commands-of-apt-get-and-apt-cache-for-package-management/ 

 

'진행 프로젝트 > [진행] My tools.' 카테고리의 다른 글

kakao T crash  (2) 2019.01.18
ibk onebank crash  (0) 2019.01.18
하스스톤 크러시 로그  (0) 2019.01.18
그냥 테스트 코드  (0) 2019.01.17
Snapkit Error type - 1  (0) 2019.01.02

크롬보다 파폭에서 더 잘되네.

http://hajunho.com/jjj/

위에꺼 이제 안된다.

 들어가면 복잡한데

three.js 로더를 이용해서 obj 파일 불러왔다고 보면 간단함.


요새 데이터 시각화에 관심이 늘었는데 매거진을 하나 파야 할 것 같다. 아니다. 일만 많아지니 오드로리드랑 안드로이드에 집중해야지.

'진행 프로젝트 > [진행] 개발 팁 &amp;amp;amp;quot;줘볼까?&amp;amp;amp;quot;' 카테고리의 다른 글

drawrect  (0) 2020.11.25
date  (0) 2020.11.25
drawText  (0) 2020.11.24
포로그래메트리  (0) 2020.10.04
I love swift & 3D programming.  (0) 2019.01.22

0 코드

Uri uri = Uri.parse("market://details?id=" this.getPackageName());
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
    startActivity(goToMarket);
catch (ActivityNotFoundException e) {
    startActivity(new Intent(Intent.ACTION_VIEW,
            Uri.parse("http://play.google.com/store/apps/details?id=" this.getPackageName())));
}
return true;


1 사실, 이 사이트 소개

https://code-examples.net/ko/q/a50cf5

구글에서 "code-examples.net"  -site:code-examples.net 로 검색하면, 트위터 달랑 하나 나온다. 그만큼 구글링에 의존하고 있는데 목록을 따로 하루 하나씩 봐 두는 것도 나중에 찾기 까다로운 녀석이 나왔을 때 도움이 된다고 생각한다.

'프로그래머' 카테고리의 다른 글

alba todo  (0) 2022.03.06
log4git  (0) 2021.01.04
자신의 성격을 아는 것은 중요하다.  (0) 2020.06.19
안드로이드 BT 메뉴 띄우기  (0) 2019.01.08
And "roid"  (0) 2019.01.08

낙서 같은 거라서 ODROID 매거진이 아닌 ETC에 넣는다.


판다. 하드커널에서

설명서도 제공한다

https://wiki.odroid.com/accessory/connectivity/usb_gps

근데 설명서 업데이트를 해야할 것 같다. 제대로 안된다.


여하튼, 디바이스 드라이버가 잘 동작하고 관련 앱이 잘 도니

cgps는 


gpsmon은

근데 왜 값이 다를까 ㅡㅡ; 다른 플랫폼이라면 이해하겠는데 말이다 ㅠㅠ 

Latitude, Longitude는 정말 중요한데 말이다 ㅠㅠ


gps라 결국 모듈은 창문 밖으로 내어 놓아야 했다.


배움은 힘들다. 메뉴얼도 한번에 되는 것도 없다.

또 한, 계속 돈이 들어가고. 용어의 모호함도 많다. 


책도 그렇다.

서점을 가면, 프로그래밍 언어 관련 책은 외서 번역본이 많은 이유가 국내에서 뭔가를 제대로 정립해서 대가가 되어 이론을 만든 사람이 없다. 다 차용했다. 그래서 번역이 이상하게 된다.


프로그래밍 서적은 간단하다. 모든 것은 CPU와 메모리의 장난에서 출발하면 좋을 것 같다.

어려운 용어도 간단해진다.

선언 declaration : 변수의 저장 메모리 예약

정의 definition : 예약된 메모리에 데이터를 저장

초기화 initialization : 선언과 정의를 동시에


오늘도 기초 공부를 한다. 나이가 들고 경험이 쌓일수록 더더욱 기초만 공부하게 되는 것 같다.

integral - signed, unsigned, (struct, union, enum), (pointer, array, function) ...

'블로그 항해 일지 > Embedded' 카테고리의 다른 글

SW PWM, UART 구현  (0) 2019.01.11
x86용 부트코드  (0) 2019.01.08
GPIO 제어 via 블루투스 on 삼성폰  (0) 2019.01.08
블루투스 연결  (0) 2019.01.08
GPIO 컨트롤  (0) 2019.01.08

글자 수 ㅠㅠ 한글이 abbreviations 주말 엄마와 아이가 놀러 간 틈을 타, 


전등, 모터 등을 켜고 끌 때 블루투스를 이용하면 편리할 것 같고 이미 많은 사람들이 미리 만들어 놔서 오픈소스를 이용하여 금방 구현하였다. 3시간, 검색 및 오픈소스 검증 2시간, 수정 코딩 1시간. 


제목을 수정했는데 on 삼성폰이라고 ... Android 니 LG에서도 되겠지만 안해봤으니 그렇게 안 적으련다.


0 결과

https://www.youtube.com/watch?v=AuZUqi0V7qc


1 소스

http://webnautes.tistory.com/1137

https://github.com/OmarAflak/Bluetooth-Terminal

* 참조

http://ippuu.iptime.org/entry/Linux-Device-Driver-XU3XU4-GPIO-Timer-%EB%B0%8F-IOCTL-%EC%A0%81%EC%9A%A9-%EC%A0%9C%EC%96%B4

http://ippuu.iptime.org/entry/Device-DriverXU3XU4-GPIO-%EC%A0%9C%EC%96%B4-%EA%B4%80%EB%A0%A8


2 유의사항

- Android 터미널은 마이그레이션 해야 한다. 대부분 자동으로 되는데 중간에 퍼미션은 열어 줬던 듯. 

- 라즈베리나 오드로이드나 둘 다 리눅스 기반이지만 기본 탑재된 패키지가 다르니 몇몇 설치해줘야 패키지가 있을 것이다

- 컴파일 때, 라이브러리 지정 순서도 중요하다 -lwiringPi -lpthread -lcrypt -lwiritingPiDev -lm -lrt -lbluetooth 순으로 했다. 안 되는 조합이 딱 1개 있었는데 좀 신기했음. Makefile 만들기 전 테스트라 ^^;;


3 결론

블루투스 프로토콜 스택은 참 잘되어 있다. 오픈소스도 많다. 1.0~4.0까지의 하위 호환성도 참 좋다.

'블로그 항해 일지 > Embedded' 카테고리의 다른 글

x86용 부트코드  (0) 2019.01.08
ODROID GPS 모듈 입양 完  (2) 2019.01.08
블루투스 연결  (0) 2019.01.08
GPIO 컨트롤  (0) 2019.01.08
Ubuntu Image download  (0) 2019.01.08

AndroidManifest 권한 설정


<protected-broadcast android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
<uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />


<application

<activity

android:exported="true"


도 하고



BT_On()


BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (!mBluetoothAdapter.isEnabled()) {
    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}


IAllowYouToFindMeDuring300s()

Intent discoverableIntent = new
        Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);


IntentOfBTScanMenu()

startActivity(new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS));


Android 플랫폼이 추상화를 참 잘해놔서

C++과는 달리 JAVA+Android Studio는 필요한 애들을 자동으로 다운로드하고 실행하게 잘해놔서 API 호출 코드 몇줄이면, 정말 편하게 만든다. 


'프로그래머' 카테고리의 다른 글

alba todo  (0) 2022.03.06
log4git  (0) 2021.01.04
자신의 성격을 아는 것은 중요하다.  (0) 2020.06.19
별점주기 코드  (0) 2019.01.08
And "roid"  (0) 2019.01.08

안드로이드는 프로그래밍 스킬 + 디자인 패턴까지 배울 수 있는 만병 통치약이다. 삼성 최초의 안드로이드 디바이스 P1 개발을 시작으로 IPC, RIL, Framework, 보안 모듈, Application 경험은 하였지만, 사실 기억이 잘 안 난다. 트러블 슈팅을 어떻게 해야 할지에 대한 감만 남은 상태. 




Framework 아랫단(프레임웍 커널, IPC, RIL, 등)은 대부분 C/C++로 구성되어 있고, 삼성/LG와 같은 대기업 소속 연구원이 아니면 접해보기 어렵다. 시대가 변해도 바뀌지 않는 ARM architecture 기반의 Instruction set과 CP(모뎀칩)에 S/W가 쌓이기에 별다른 것은 없겠지만 최신 트렌드를 따라가기 위해 Application에 집중하기로 한다. 거대한 Android에서 사실 개인이 한 분야만 해도 따라가기 힘든데, Android/iOS, Embedded, WEB(Node.js, React)을 병행해야 하는 개발자에게는 버겁다. 간단히 말하면 능력이 안된다는 말. 유순하게 표현하면 능력 밖, 좋게 포장하면 전문성을 위한 포기 정도로 보면 되겠다. 현실을 그렇더라도 염세주의는 좋아하지 않으니 시작과 끝은 Android Application으로 하자.





한 3년간은 iOS를 하느라 Android 지식이 옛날 지식밖에 없어서 새로운 게 뭐가 있을지 조금 둘러보게 되었다.



Material Component

머티리얼 디자인은 나온 지 꽤 오래되었지만 대부분 사용하지 않는 듯하다.




Transformation

Top App Bar

Text Field

Tabs

Fonts

Floating Action Button

Chips

Cards

Buttons

Button Navigation

Bottom App Bar




다시 기본기를 다져야겠다.



Fragment, NDK

안드로이드 화면 한 장 한 장은 Activity라는 단위로 구성된다. 물론, 하나의 화면을 꼭 하나의 Activity로 구성할 필요는 없다. SlotView 형식으로 하나의 Activitiy 에 여러 화면을 올려도 되고, setContentView를 이용한 xml 구성이 아닌 코드로 구성해도 된다. 혹은 엔진을 얹여 해당 framework을 이용해도 되겠다. 그러나 기본적인 앱은 안드로이드가 제공하는 기본을 따르는 것이 좋고, 예전에는 Activity에 Relative Layout이나 FrameLayout을 기본으로 한 xml을 썼다면, 지금은 Fragment로 구성한다는 것을 알면 된다. 그렇다. Fragment는 Fragment가 있기 이전 Activity 전환 시 생기는 깜빡임 현상을 줄이기 위해 만든 slotView에서 발전하여 안드로이드가 공식 지원하는 레이아웃이 되겠다. 그리고 기기별로 따로 코드로 따로 구성해 주어야 했던 힘듦도 사라졌다. 태블릿에서는 Fragment를 2개 보여주고, 폰에서는 1개만 보여주고 화면 전환이 가능하도록 하였다. 여기서 말하는 레이아웃은 안드로이드에서 말하는 레이아웃이 아닌 어도비 포토샵의 레이아웃으로 보면 되겠다. 갈아 끼우는... 중첩은 되지 않는 replace로 바꿔야 한다.




1.0 이전은 Eclipse에 비해 못쓸 수준이던 Android Studio도 많은 버전업을 거치면서 gradle, cmake, NDK 및 여러 예제가 포함되었다. gradle은 Ant, Maven 보다 향상된 자동화 도구인데 정말 작년부터는 gradle이 모두를 대체한다고 봐도 무방할 정도로 편리하고 안정적이 되었다. cmake는 다양한 플랫폼에 빌드용 project 파일을 만들어주는 녀석이다. 버추어 버신, 아니 달빅, 아니 L, 아니... 안드로이드 프레임웍에서는 문제없지만 C/C++은 기본적으로 UNIX만을 위해, 또는 각자의 머신에 종속되어 있던 태생이 있으므로 cmake를 결합하여야 한다. 안드로이드 프레임웍과 애플리케이션도 혼자 짜면 자바를 이용 안 해도 되겠지만 이미 만든 프로그램도 많고, C/C++은 강력하기에 그것들을 연결한 NDK도 필수. 이제 레퍼런스 보면서 API 찾아서 잘 쓰면 된다.




Fragment로 구성된 앱의 기본 구조를 살펴보자.




엔트리 포인트는 AndroidManifext.xml이다.

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>




해당 엔트리 포인트에서

setContentView(R.layout.activity_entry_point);

xml 레이아웃을 세팅한다.




세팅된 레이아웃에서 

<include layout="@layout/content_entry_point" />

다른 레이아웃을 불러오고




해당 레이아웃에서 Fragment를 설정한다. 연결된 JAVA 파일을 설정해 준다는 뜻

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment"
android:name="com.hajunho.odroid.odroidcontroller.EntryPointFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:layout="@layout/fragment_entry_point" />




해당 파일에서는 다시 xml를 불러와 펼쳐준다.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_entry_point, container, false);
}




복잡하게 연결하지 않더라도 Fragment를 상속받은 블라블라Fragment를 만들고

instance블라블라Fragment = new instance블라블라Fragment();

getSupportFragmentManager().beginTransaction().add(R.id.container, instance블라블라Fragment).commit();




붙이는 container는 간단한 FrameLayout으로 구성하면 되겠다.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>




NDK는 Android Studio가 버전업을 하면서 기초 코드가 작성된 상태로 나오고 내부에서 자동 빌드가 가능했다. C 파일이 내부에서 있어서 변형하면 바로 적용이 되었다. 따로 컴파일해서 so 파일 만들고 연결 브릿지 만들지 않아도 되니 무지하게 편했다 ㅠㅠ 대기업 선행 개발의 삽질을 안해도 되니 이제 플랫폼이 나오면 성숙되기를 기다렸다가 들어가는게 좋을 것 같다. (물론, 돈과는 멀어지겠지)



Dagger2 Fragment 

요새 유행하는 "위존성 주입"을 위한 Fragment를 만들어 보았다. 의존성 주입은 같은 코드를 계속 적어야만 하는 번거러움을 없애고자 기존 모듈에 @블라블라 와 같은 annotation 만 적으면 다른 곳에서 @ annotation을 이용하여 모듈처럼 불러 쓸 수 있게 만든 것이다. 사실 싱글톤으로 만들고 생성 코드를 Factory나 Builder 패턴을 이용해서 만들어 두면 되는데, 유행은 따라야 편해보이고 어려운 개념을 많이 쓸 수록 연봉은 올라간다. 보일러 플레이트 코드를 줄이는 방법이 Dagger2 밖에 없으랴? 간단히 라이브러리로 만들면 될 것을 ^^;;




우선, app 바로 밑에 있는 build.gradle에 다운로드 코드, 아니 디펜던시 코드를 추가한다.

dependencies {

api 'com.google.dagger:dagger:2.15'
annotationProcessor 'com.google.dagger:dagger-compiler:2.15'
api 'com.google.dagger:dagger-android:2.15'
api 'com.google.dagger:dagger-android-support:2.15'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.15'
api 'com.android.support:multidex:1.0.3'

.

.

.

이제 

import dagger.android.support.DaggerFragment;

만 해주면 DaggerFragment를 이용할 수 있다.




public class MainFragment extends DaggerFragment {
}




https://www.androidhuman.com/life/2016/06/06/dagger2_resources/
Dagger2 학습에 필요한 참고자료

#Android and #Koltin

www.androidhuman.com


여기서 youtube 강의는 dagger가 뭔지 한번에 알 수 있게 해 주었다. 인터넷에서 찾은 머티리얼 디자인 예제 소스도 Dagger2를 이용하여 구현되어 있었다.



Image Loading Library

메모리가 작은 안드로이드에서 가장 골칫 거리는 Image Loader였다. 초창기 버전의 유니버셜 이미지 로더는 이제 다른 프로젝트에 가려지게 된 것 같다.

http://gun0912.tistory.com/17
[안드로이드/Android]유용한 라이브러리 - Glide (이미지 로딩 라이브러리)

우리가 ImageView에 사진을 띄우고자 하는 경우는 여러가지 입니다. 1. 안드로이드 앱 안의 drawable폴더의 리소스를 보여주는 경우 2 .안드로이드 디바이스 안에 저장되어있는 사진을 보여주는 경우(갤러리 혹은..

gun0912.tistory.com





잠깐만 둘러보아도 많은 것이 변형되었지만 1주일간 이것저것 만들다 보니 딱히 크게 변화된 사항도 또 없는 것 같다. 어차피 자바라는 프로그래밍 언어 테두리에서 벗어나지 않아서 그런가?



코틀린

모르는 프로그래밍 언어다. 새로운 언어가 있다고 해서 우선 repository를 찾았다.




https://github.com/JetBrains/kotlin
JetBrains/kotlin

kotlin - The Kotlin Programming Language

github.com


소스 받아서 확장자부터 보았다. cpp, hpp, c, h 파일은 없고, java와 kt가 대부분.

자바로 만들어졌구나, 그래서 이런 생각이 들었다.

자바에서 더 추상화한 언어라면 더 적은 코드로 원하는 것을 구현할 수 있겠네? 그 대신 앱의 복잡도가 증가할수록 트러블 슈팅은 더 어려워지겠네? 어라? 인텔리 J 만든 JetBrain사에서 만들었구나. 새로운 언어에 대한 도전으로 Android Studio를 이용해서 접근하는구나... 어차피 오라클 때문에 JDK가 아닌 OpenJDK로 간 구글도 JAVA보다는 코틀린을 밀테니 아랫단에서 C++코드로 구현해서 상위단으로 올린 Android API는 코틀린에서 다 지원하겠네? JNI, NDK만 되면 C++ 코드도 다 쓸 수 있으니 향 후 에는 결국 코틀린으로 가긴 하겠다는 생각. 왜냐면 모바일은 포토샵이나 AutoCAD 같은 거물급 앱은 없어서 킬러앱이 프레임웍의 방향성을 좌지우지 하지는 못하기 때문이다.




https://try.kotlinlang.org/#/Examples/Hello,%20world!/Simplest%20version/Simplest%20version.kt
Try Kotlin

Try Kotlin right in the browser.

try.kotlinlang.org





코드를 좀 보았다. 결국 양자 컴퓨터 이전의 컴퓨터 언어는 다 거기서 거기구나 괜히 더 햇갈리기만 하겠구나... 라는 생각이 들었다.




결국, 언어에 대한 입맛보다는 해당 프로젝트를 어떤 언어로 구현하기로 결정했고 다른 프로그래머들과 어떤 언어로 소통할지 정해지는 프로젝트가 더 중요하다는 생각이 들었다.




Android/iOS 두 가지 지원 때문에 폰갭이 나왔었고, XML, XAML 개념, 그리고 React native까지...

그러나 두 회사가 하나의 회사는 아니기에 결국 Native 앱은 Native로 만들어야 한다는... 뭐 FACEBOOK이 Google이나 Apple에게 압력을 줄 정도면 모르겠지만.




일전에 안드로이드 폰을 통일한 삼성이 따로 삼성 앱스토어를 만들고 기본 배포하려고 할 때 구글에서 인증을 해주지 않겠다는 협박을 했었다. 세상은 그렇다. 코볼 엔지니어가 아직 나보다 더 많은 연봉을 받는 이 시대에 굳이 유행을 따를 필요는 있으랴?




Android는 아직 자바로 충분하다. 그러나 분명 나중에는 버릴 것 같다. 애플도 SWIFT 공식 언어를 내고 아직까지 Objective-C를 지원하고 있다. 둘 다 사용해보니 마이그레이션 되는 코드도 있고, 안 되는 코드도 분명 있더라. 그러나 기본 기능은 확실히 SWIFT로 다 만들 수 있다. 코틀린도 그런 것 같다. iOS 앱은 마이그레이션 하다가 swift 코드와 objective-c 코드가 공존하게 되었는데 알 수 없는 링크 에러 때문에 더 진행하지 못하는 부분이 있었다. 물론, 프레임웍까지 디버깅하거나 ICE 물려서 더 아래단까지 보고 누구 잘잘못 따질 시간적, 경제적 비용, 권한도 없다.




Android는 자바에서 코틀린으로 바뀌겠지만 한방에 마이그레이션 될리는 절대, 절대 없다. 구글이 꽤 큰 프로젝트들에 대한 소스 접근 권한이 있어서 대부분 테스트 해 보지도 못할 테고 한 명이 짠 것도 아니어서 완벽한 이론에 기초될 리도 없다. 물론, 같은 목적과 수준의 앱이라면 구글이 마이그레이션을 장려하거나 그 앱의 편을 조용히 들어줄 것이다.(검색이 더 잘되게 한다던가 -> 페이스북에서 페이스북 동영상은 youtube 링크보다 10배 더 많이 퍼지게 해 놓은 것이랑 같은...)




개인적인 생각이지만,

너무 계속해서 새로운 언어가 나오다 보니, 이제 기본기는 C++로 회귀할까 생각 중이다. 필요한 프로젝트가 C++ 이 아니더라도 프로젝트 완성하는 데는 큰 어려움이 없으니까 말이다. 상위단에서 구현되는 새로운 개념을 LOW LEVEL 언어로 구현하면 "정수"를 알 수 있기도 하고 말이다.




시간을 어디 배분하느냐의 차이겠다. 남는 시간에 오버워치를 할 것 인가... 좀 더 NERD 하게 될 것인가.

'프로그래머' 카테고리의 다른 글

alba todo  (0) 2022.03.06
log4git  (0) 2021.01.04
자신의 성격을 아는 것은 중요하다.  (0) 2020.06.19
별점주기 코드  (0) 2019.01.08
안드로이드 BT 메뉴 띄우기  (0) 2019.01.08

ODROID에 BT 동글을 연결해 봅니다.


!! bT동글을 꽂았는데 안되는 경우

# dmesg -Hw

실행 해 보시면 간혹 USB 허브를 이용하는 경우 제대로 인식이 안되는 경우가 있다는 것을 알 수 있습니다. 

10번 중 1번 정도 발생


PARING

기본 내장이지만 customize 해서 쓰시는 분은 아래 패키지 설치 하셔야 합니다.

sudo apt-get install bluetooth bluez bluez-tools rfkill rfcomm

lsmod | grep bluetooth 로 검색되시면 블투모듈이 올라온겁니다.


# bluetoothctl

# list (이 명령어는 자동 실행됨)

[New] Controller 00:1A:7D:DA:71:13 odroid

로 ODROID MAC Address 확인

# info 00:1A:7D:DA:71:13 로 세부정보 확인 가능


# power on (보통 자동으로 on되어 있음)

# scan on

Android 휴대폰 MAC Address 확인


# scan off

# agent on

# default-agent

# pair XX:XX:XX:XX:XX:XX

# trust XX:XX:XX:XX:XX:XX 


볼거리

https://code.tutsplus.com/tutorials/create-a-bluetooth-scanner-with-androids-bluetooth-api--cms-24084

https://developer.android.com/guide/topics/connectivity/bluetooth?hl=ko

https://stackoverflow.com/questions/6141668/bluetooth-examples-for-android

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothSocket.java

https://arsviator.blogspot.com/2010/05/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%B8%94%EB%A3%A8%ED%88%AC%EC%8A%A4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-bluewatch-project-2.html

https://github.com/bablokb/pi-btnap

'블로그 항해 일지 > Embedded' 카테고리의 다른 글

x86용 부트코드  (0) 2019.01.08
ODROID GPS 모듈 입양 完  (2) 2019.01.08
GPIO 제어 via 블루투스 on 삼성폰  (0) 2019.01.08
GPIO 컨트롤  (0) 2019.01.08
Ubuntu Image download  (0) 2019.01.08


GPIO 제어를 위해 WiringPI library를 이용합니다. WiringPI는 Broadcom의 BCM2835, BCM2836, BCM2837 칩을 위한 라이브러리입니다.

http://wiringpi.com/




브로드컴의 BCM 시리즈 칩은 다음과 같은 페리(Peripheral, 주변장치)를 붙여 설계할 수 있습니다.


• Timers

• Interrupt controller

• GPIO

• USB

• PCM / I2S

• DMA controller

• I2C master

• I2C / SPI slave

• SPI0, SPI1, SPI2

• PWM

• UART0, UART1 

* 2835 datasheet 참조 https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf




Raspberry Pi Model B+ 은 Broadcom BCM2835을 쓰고, Raspberry Pi 2 Model B는 Broadcom BCM2836 칩을 씁니다. 둘 다 GPIO 개수가 40개로 ODROID-XU4 보다 10개가 많습니다. 라즈베리 파이는 PWM도 달려있어 장치 제어에 많이 쓰고 그만큼 유저도 많습니다. 현재로서는 직접 설계 없이 콘텐츠를 붙이는 장치 제어 필드(업계)에서는 사실 오드로이드 보다는 라즈베리 파이를 이용한 프로젝트가 많습니다. 다른 것 보다 가격이...

https://www.board-db.org/compare/84,4,28/




ODROID에는 듀얼코어(Samsung Exynos5422 Cortex-A15 2 Ghz and Cortex-A7 Octa core CPU) 칩이 들어 있습니다. 브로드컴 제품이던 삼성 제품이던 둘 다 ARM Architecture를 기반으로 하기 때문에 S/W도 비슷하게 갑니다. ODROID를 제작한 HardKernel에서도 wiringPI를 이용합니다. 이전에는 잘 정리된 위키 페이지가 없어서 많은 삽질(실습)을 했어야 했습니다. 지금은 아래 사이트 보고 그대로 따라 하면 만들기 쉽도록 되어 있습니다.

https://wiki.odroid.com/odroid-xu4/application_note/gpio/wiringpi




1편에서 리눅스를 설치했으니 대부분의 장치는 리눅스에서 제어하도록 매핑되어 있습니다. 펌웨어 단에서 장치에서는 MMIO(Memory Mapped I/O), IMIO(IO Mapped I/O)가 주류지만 리눅스 시스템에서는 파일/디렉토리로 모든 것을 가능하게 해 놓았죠. 이미 디바이스 드라이버란 이름이 있지만 MMIO, IMIO, PMIO(Port mapped I/O) 처럼 FMIO(File Mapped I/O)라고 하고 싶습니다.




PIN 번호 참조

https://wiki.odroid.com/odroid-xu4/hardware/expansion_connectors
odroid-xu4:hardware:expansion_connectors [ODROID Wiki]



wiki.odroid.com

0. 결과

https://youtu.be/Ifztgr99bRs


ODROID CON10 header의 핀번호는 인터넷에서 구할 수 있는 표번호와 다르다. 전에 한 학생이 다시 그려서 줬는데 구글 드라이브를 쓰기 전이라 잃어버렸다. 진작에 포스팅 할껄 하는 아쉬움이 남는다 그런데 넌(그 학생) 지식공유를 위해 블로그 하래두 안하니... 마음 편하게 확장 보드를 구매하자.



1. FMIO in shell

odroid@odroid-server:~$ echo 29 > /sys/class/gpio/export

odroid@odroid-server:~$ echo out > /sys/class/gpio/gpio29/direction

odroid@odroid-server:~$ echo 1 > /sys/class/gpio/gpio29/value



2. FMIO with source

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h> 




int main(int argc, char** argv)

{

FILE *fp;

char setValue[4];

int toggle = 0; 

if((fp = fopen(“/sys/class/gpio/export”, “ab”)) == NULL) {

printf(“Cannot open export file.\n”);

return -1;

}

rewind(fp);

strcpy(setValue, “1”);

fwrite(&setValue, sizeof(char), 1, fp);

fclose(fp);

sleep(1);

if((fp == fopen(“/sys/class/gpio/gpio25/value”, “rb+”)) == NULL) {

printf(“Cannot open value file. \n”);

return -1;



rewind(fp);

strcpy(setValue, “0”);

fwrite(&setValue, sizeof(char), 1, fp);

fclose(fp);

return 0;

}



3. FMIO using WiringPI

#include <stdio.h>

#include <wiringPi.h>

#include <sys/time.h>

int main(int argc, char **argv) {

unsigned int delay_cnt=0;

wiringPiSetup();

pinMode(06,OUTPUT);

digitalWrite(06,HIGH);

return 0;

}

https://wiki.odroid.com/odroid-xu4/application_note/gpio/wiringpi
odroid-xu4:application_note:gpio:wiringpi [ODROID Wiki]



wiki.odroid.com





ODROID에는 PWM이 없습니다. 각도 제어 서보모터의 경우 delay를 이용하여 S/W 파형을 만들어도 떨림없이 제어가 잘 되네요. 물론, 100%(모든 서보모터)는 아니고맥심칩처럼 컨버터를 넣은 보조 회로가 필요합니다.


뭐든 추상화하면 상위단 코드는 간결해집니다. 또, 알고리즘이나 다지인 패턴같이 좀 더 낫다고 생각되는 과제를 고민할 수 있게 됩니다. 임베디드 월드와 비교해 볼 때, 데스크톱에서 하는 응용 프로그램이야 정말 생각한 대로 작동한다고 할 수 있습니다. 응용프로그래머는 그렇게 추상화시킨 API를 사용할 때 정말 수많은 엔지니어가 많은 고생을 했었다는 사실을 잊지 말았으면 합니다.

'블로그 항해 일지 > Embedded' 카테고리의 다른 글

x86용 부트코드  (0) 2019.01.08
ODROID GPS 모듈 입양 完  (2) 2019.01.08
GPIO 제어 via 블루투스 on 삼성폰  (0) 2019.01.08
블루투스 연결  (0) 2019.01.08
Ubuntu Image download  (0) 2019.01.08


라즈베리 파이와 경쟁할 국내 기술의 뛰어난 제품, 오드로이드!

기본적으로 밑에 단 작업이 다 되어 있는 운영체제, 우분투 16.04를 받아보자.

1. 이미지 받기 전 eMMC 카드 포멧

다음 명령어를 이용하여 포멧해야 한다. on Windows®

C:\> Diskpart
DISKPART> list disk
DISKPART> select disk (id)
DISKPART> online disk (if the disk is not online)
DISKPART> attributes disk clear readonly
DISKPART> clean
DISKPART> convert mbr (or gpt)
DISKPART> create partition primary
DISKPART> select part 1
DISKPART> active (if this is the boot partition)
DISKPART> format fs=ntfs label=(name) quick
DISKPART> assign letter (letter)
DISKPART> list volume


2. Win32 Disk Imager for ODROID 이용, 다운로드

마그넷 링크 원본은 이 글 가장 아래에...

마그넷 다운로드를 위한 비트 토렌트 다운로드

Disk Image 마그넷

Ubuntu 16.04 Image 마그넷


3. 부팅 확인

* 주의 *

1. USB 허브 비추

2. 앞쪽 USB 포트 비추(메인보드에 직접 꽂으세요-전력문제 배제-)


Disk Image


magnet:?xt=urn:btih:22394D44F7E369D838CC63470387F1415C95A031&dn=win32diskimager2-binary.zip&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce


Ubuntu mate 16.04 


magnet:?xt=urn:btih:2F97C2B4265EB528A72FCE8BD5FF11886FF63BAD&dn=ubuntu-16.04-mate-odroid-xu4-20170731.img&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce




'블로그 항해 일지 > Embedded' 카테고리의 다른 글

x86용 부트코드  (0) 2019.01.08
ODROID GPS 모듈 입양 完  (2) 2019.01.08
GPIO 제어 via 블루투스 on 삼성폰  (0) 2019.01.08
블루투스 연결  (0) 2019.01.08
GPIO 컨트롤  (0) 2019.01.08



저명인의 방송을 보고 코어를 제대로 파악하지 못하고 무작정 따라 하기 때문.

즉, 위닉스 뽀송 광고 때문.


위닉스 뽀송 광고를 바로 링크하면 듣기 많이 거북할 수도 있어 다른 광고도 함께 있는 링크를 단다.


https://www.youtube.com/watch?v=9LJTgqRt_k4

김수미가 욕을 하던 시점은 7LI ^^LI 77l처럼 직접적인 욕을 하는 것보다 견공 자제분처럼 간접적으로 욕하는, 나라 팔아먹은 이완용 같은 사람들이 판치던 시점이었다.


https://www.youtube.com/watch?v=gtTdKa8ucmA


3분 40초에 최경영 기자가 욕을 한다.


그렇다. 


내가 대학생 때는 복도에서 담배를 피우는 학생도 많았다. 버스 타면 할아버지들이 창문 열고 담배피던 분도 많았다. 또, 기업에서 안하무인으로 쌍욕하는 상사가 많았다. 김수미가 욕을 하면 욕 때문에 힘들어 하는 사람들을 위해 욕을 일상어와 같이 평준화시키려나 보다 한다. 김수미가 걸어왔던 길이 있기 때문이다. 최경영 기자가 욕을 하면 뭔가 이유가 있겠지 한다. 그가 걸어왔던 길이 있기 때문이다.


김수미도 여전히 그 길을 걷고 있고, 최경영 기자는 뉴스타파 편집장을 거쳐 다시 KBS로 복귀할 정도로 바른 길을 걸었다. 한 개인의 힘이 조직의 방향을 결정할 정도가 되었다는 것이다.

개인 방송은 그런 것을 보지는 않는다. 욕이 많은 이유는 단순하다.

회사에서 밀어주기 때문이다. 왜 김수미, 최경영(너무 저명한 사람은 존칭을 생략한다)

욕을 해도 되고 우린 욕하면 안 되냐고 말할 수도 있다.


아래 내 글을 더 보지 않고 이것에 대해 생각하면 아마 한 달이 지나도 논리를 못 찾을 것이다. 내 글을 구독하는 구독자를 제외하고는 생각의 시간을 투자하지도 않을 것이다. 




-

-

-

-

-

-

-

-

-

-

-

-

-

-




개인 방송에서 욕하면 정산한 돈 지급이 안된다고 했을 때 최경영은 확실히 걸러진다. 돈과 관계없이 정의로운 사람이기 때문이다. 그러면 김수미는?

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-




https://www.youtube.com/watch?v=sYSAPSIXhdc


살아온 인생을 보면 된다. 동네 양아치 짓 하다가 개인 방송을 하는 게 아니라 시대상을 반영하는 여러 작품의 아이콘으로 출연했었기 때문이다. 또 한 전쟁과 가난 속에 어려운 시대를 살아갈 수밖에 없었던 우리네 할머니들의 억척스러움도 그 안에 있었기 때문에 용납될 수 있었다.


욕 못하는 사람 없다.


오래 전 방송국에 일 하는 분께 들었다. 아나운서나 방송국 관계자들이 뒤에서 욕하면 훨씬 잘한다는 것.


개인 방송하는 사람들이여. 나중에 니 아들이나 딸이 니 면상 보고 쌍욕 하기 전에 적당히 해라.


방관자 효과 때문.


삼성전자 재직 시절 검증 파견으로 경북 구미 원룸촌에 살았던 기억이 있다.


기숙사에 살고 싶어 하는 과장님이 계셨는데 집이 3번이나 털리셔서 너무 무서웠기 때문이다. 직급도 높고 연봉도 높고 다른 기준이 만족되지 않아서 기숙사에 못 들어갔었다.


그 당시 TV에 문이나 초인종 바로 아래 벽에

"여긴 여자 혼자 사는 집"이라는 표식을 하는 이야기가 있었는데,


http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=200912220500255

난 직접 봤었다. 그리고 한 번은 지인 연락을 받고 연장 챙겨서 보호하러 간 적도 있었다.

뭐, 그랬다. 지금 십 년도 넘었으니 안 그렇겠지.

내가 하고 싶은 말은 그 당시 원룸촌에서 도둑이 들어 당했던 많은 분들이 있었고.

따로 알릴 방법이 다른 분들을 위해 전봇대나 건물에 전단지를 만들어 붙여 놓는 것을 보았다.

그리고 그것을 떼는 사람도 보았고, 집값 떨어질 것을 걱정한 집주인 들이라는 것을 알게 되었다.

일반화하고 싶지 않다. 내가 아는 많은 집주인들은 경제적 여유에서 오는 인간다움을 가진(가질 수밖에 없는) 사람들이 많으니까.

털린 집이 또 털렸던 이유는 당연히 도둑놈이 나쁜 ㅅㄲ니까가 명확한 이유겠다. 그러나 이 이유와 더불어 경찰의 무능이나 주변 사람들의 무관심, 안전 불감증, 등을 이유로 들고 싶지는 않다.

딱, 바로 그 집주인이 문제다. 혹은 몇몇 집주인. 

결국 구미 집값은 내가 처음 구미 갔을 때와 8개월 뒤 구미를 떠날 동안 반토막이 났다. 도둑이 많다는 이유가 아니라 삼성전자가 위쪽으로 올라간다는 이유로.


몇몇 집주인을 방관하는 이가 많아지면 방관자 효과가 나타난다. 


물론, 난 싸웠다. 그때 그 성격 아직도 그대로다. 최근 쓸데없이 아이들 놀이터 앞에 계속 지상 주차하는 가오 잡이 동네 아저씨에게 캠 들고 찾아가서 인터넷에 얼굴을 올려버리거나, 밤에 담배 피우러 오는 고등학생들에게 야구 방망이 들고나가기도 했다. 다른 사람들은 나 덕분에 편안하다고 생각한다. 그러나 꼭 내가 아니더라도 문제가 심각해지면 나서는 사람이 1%는 있다고 생각한다.


http://news.khan.co.kr/kh_news/khan_art_view.html?artid=201106171948295&code=100100#csidx92529de1e0c70f99ba1ded99831dcdb

우리나라에서 방관자 효과는 없애버리자.

1

OLPP도 그렇고 개인적으로 제대로 인식되지 않은 무언가 때문에 새로운 원리를 만드는 것을 좋아한다. 세상이 잘못되어 있는 것을 그냥 있는 그대로 말하는 것을 좋아한다. 어머니께서 그렇게 사시다가 20년이 넘도록 고통을 받고 계시지만 사실 어머니께 받은 가장 큰 선물이 바로 그런 점이다. 그러나 내부 고발자들이 잘 못 사는 것도 그렇고, 솔직한 것은 세상 사는데 표면적으로는 별 도움이 되진 않는다.


2

남자는 웃통을 벗어도 되고, 여자는 니들이 보이니 안된다는 말도 안 되는 논리 때문에 페북 페이지를 2년간 운영하다가 최근 잘렸다. 해외 스타 중에는 해당 운동을 열심히 하는 스타도 있다. 나도 스타의 인스타 팔로워를 하며 그 영향은 받은 것이었고, #MeToo도 좋지만, #FreeTheNipple도 찾아보시라. 괜히 또 스타 이름 적으면 킬베 운영할 때처럼 직접 사람들이 바로 알 수 있는 것과 찾아서 아는 것은 다르다는 이상한 논리로 계정  잘릴라.


3

보이루~

나도 잘 알고 아마 이 글을 읽는 사람도 잘 알 것이다. 모르면 찾아보면 되고. 유튜브 구독자가 250만 명이다. 웬만한 셀럽이 10만을 넘기 힘든 것을 봤을 때 정말 대단한 사람이다. 방송에서 욕해도 구글에서 밀어준다. 그러나 자막에는 욕을 넣지 않는다. 방송 신고 메뉴에도 글자만 있지 음성은 없다. 왜냐면 음성인식이 개판이기 때문이다. 



찍어 논 영상이 이것밖에 없지만, 난 SK 누구 처음 나왔을 때 지르고 실망해서 카카오 제품도 똑같이 샀는데 수준이 개판이었다. 물론, 너무 인식이 안돼서 크게 소리 지른 거고(재미있으라고) 지금은 수준이 많이 좋아졌다. 국내 명문대 음성인식 분야 지인이 이야기하는데 AI는 무조건 빅 데이터가 있어야 하고, 빅 데이터를 모으려면 어쩔 수 없는 기업들의 선택이라고 한다. 구글도 구글 홈 광고하는 거 보면 일단 출혈 세일과 더불어 지속되는 광고, 제품의 핵심 기능과는 관계없는 아기자기한 objects(것 들)로 현혹시켜 사게 만들어야 한다. 이 논리를 알고 구글, SK, 카카오 고민하다가 카카오 제품으로 선택하고 누구는 지인주고 카카오 제품은 몇 개 더 사서 주변에 선물했다.

 기업이 핵심적인 뭔가를 밝히기 꺼려하는 점도 그렇다. 구글의 자본력과 시장 지배력을 이기려면 빠르게 움직여서 국내 사용자를 확보해야 빅 데이터를 처리할 수 있기에 그렇게 한 것이다. 나도 이왕이면 국내 기업이 잘 되면 좋겠지만 스타트업에 있을 때 카카오는 친일 후손이 만들어서 탄탄하게 시작했고, 바로 서울에 사무실 얻어서 힘들게 하지 않았다는 말을 스타트업에서 힘들게 일하는 사장에게서 들었었다. 게다가 돈 벌면 전부 외제 제품으로 도배하는 "그렇게 욕한 사람조차" 것을 보며 사실 요즘은 국내 기업도 순수하게 경쟁력이 있으면 좋겠다는 생각이다. 그러나 구글이랑 네이버 청문회 하는 것 보니 아직도 국내, 국내 하며 매달리는 것 같아 많이 아쉬웠다. 그렇게 성장한 삼성, 현대가 자국민에게 하는 꼴을 보고도 그런 것을 보면 이렇게 나처럼 말할 수 있는 사람이 참 없긴 없나 보다 하는 생각이 든다. 오마이뉴스나 뉴스타파에는 많은데 말이다.(시사인은 이제 뺐다)

 뭔가 의미가 있는 것 같은 3번 글은 내가 오버워치를 하다가 마이크로 욕하는 놈에게 글로 욕하다 결국 나는 증거가 남아 계정이 잘려서 쓰는 글이긴 하다. 음성 인식은 좀 더 기다려봐야 한다는 것. 그리고 카카오 미니는 1년 넘게 싸게 팔았으면 이제 그만 할인을 풀었으면 좋겠다. 어떤 마케터가 들어왔는지 카카오 뱅크나 카카오톡 마케팅을 보면 수많은 사람들에게 몇 개 상품(혹은 돈)이나 돈을 놔두고 추첨해서 드려요. 혹은 이모티콘 한정 걸어두고 사람들 유혹한다. 데탑에서 광고하는 것도 유일하다. 자국민에서 어떻게든 더 좋은 서비스로 보답할 생각은 안 하고 카카오톡에 전부 밀어 넣기 바쁘다. 뭐, 개인적 의견이니 카카오 지인들은 굳이 연락 끊을 필요는 없다. ^^ 그 정도 배포는 된다고 생각하고 브런치에 적어 본다.


4

염세주의 대표 작가의 좋지 않은 결말과 더불어 염세주의는 내가 추구할 방향이 아니라고 생각했다. 통념상으로도 좋은 생각을 하는 것이 맞다고. 그런데 현실은 리얼리즘이 아니면 이해할 수 없는 게 많고. 어릴 적과 다르게 지금은 모든 것을 이해하려고 하고 있다. 어릴 적엔 가정 불화 때문에 수학 빼고는 다 틀린 학문이라 수학만 안 했다. 이렇게 말하면 다른 사람은 어려워한다. 가정 불화 자체가 말도 안 된다. 다른 학문은 늘 바뀐다. 가장 잘 바뀌는 게 법학이고 그 외에도 모든 게 바뀐다. 수학은 사람의 약속에서 출발한 학문이라 안 바뀐다. 1은 1이고 2는 2이듯이. 새로운 법칙이 나오기는 하지만 본질적인 것 자체가 바뀌지는 않는다. 그래서 수능 때도 난 수학을 제외하고는 점수가 모두 서울대 의대 수준이었다.  수학이 쉽게 나와 반에서 반 이상이 80점 받을 때 난 25점 받았다. 집에서 하도 서울대 거려서 중학교 때 까지는 서울대 가서 자살하는 게 꿈이었는데 그 꿈을 이루지 못해서 다행이다. 그런데 지방 국립이지만 장학금 받고 공대를 가게 되고 대학교 이후부터는 수학만 하게 되었으니 세상 참 아이러니하기도 하고. 또, 프로그래밍하면서 학비도 벌고 지금까지 돈을 벌고 있으니 그것도 아이러니하다.

 이런 밑밥을 까는 난 정말 이번 연도 초까지 학벌 사회에 대해서 이해하지 못했다. 가르쳤던 학생이 서울대, 카이스트, 같이 일하는 사람들이 스탠퍼드, MIT 자주 술 마시는 지인들이 서울대 사람들이라 그런지 모르겠는데. 오히려 명문을 나온 사람들이 (그리고 대기업이) 학벌에 대해서 잘 인지하지 못한다. 내가 그 속에 섞여서 내가 그렇게 된 게 아니라. 난 그 사람들이 질풍 노도기 때 나처럼 이상한 생각 안 하고 공부에 집중해서 잘했다고 생각했다. 그러나 최근 학벌 사회가 되는 것에 대해서 확실히 알았다. 김규삼 만화에서 우리가 학벌 사회를 이루는 벽돌이 아닐까라고 표현했는데, 그 이유에 대해서는 늘 궁금했다.

 확실히 알았다. 그리고 그 위에 있는 공자라는 위대한 인물도.


‘子曰(자왈) “學而時習之(학이시습지) 면 不亦說乎(불역열호)아

有朋自遠方來(유붕자원방래) 면 不亦樂乎(불역락호)아

人不知而不溫(인부지이불온)이면 不亦君子乎(불역군자호)아”


논어의 이 구절은 내일모레 40이 될 위치에 있고 나니 한 줄 한 줄이 뭐라 표현할 수 없을 정도로 위대하다는 것을 알게 되었다.


우선, 학벌 지심이 있는 사람은 정말 자신이 노력할 수 있는 최선을 다했었던 사람이다. 그런데도 뒤쳐지다 보니 서울대/카이스트 출신을 인정할 수밖에 없고. 마치 사람 계급을 나누는 것처럼 할 수밖에 없었던 것이다. 아니, 학교 등급이나 시험문제도 사람이 내는 것이고 사람의 능력이라는 것을 측정하는 단위가 틀렸기 때문에 운동만 했던 사람도 수능 전국 1등보다 더 잘 사는 게 인정되는 세상에 무슨... 명석하고 학창 시절 성실하게 보냈고 부모님 말씀 잘 들었고 등등 시험 성적으로 인정할 수 있는 부분들이 많다.

 학벌 세탁이 유행이다.

최근 위와 같이 생각하던, 그런 사람이 미국 명문대에서 학벌 세탁하려고 했는데 현금만 20억 이상을 벌고 나니 공부에 대한 꿈을 접었다. 솔직하게 말해줘서 고맙긴 했지만 그 전의 대화들이 날 깔아뭉게려고 말한 부분들이 있어(결국 다 밝힐 거지만) 고마워도 한 20%? 뭐 싫은 것은 아니니.


공부하다 보면 정말 재미있는 순간이 온다. 그 순간은 2가지다. 남들보다 뛰어나다는 것에 대한 기쁨. 그리고 정말 순수하게 신의 법칙을 알아가는 것에 대한 기쁨이다. 공자가 말한 글을 긁어온 위엣 글의 첫 번째 구절은 딱 그것(순수한 앎의 기쁨)을 말하는 것이다. 스타트업 ㅈ 같다고 일전에 글을 썼던 이유가... 공자가 말한 저 부분은 정말 1도 없었다. 하긴 하루 대화가 돈과 관련된데 70% 이상이었으니. 돈이 중요한 것은 사실이지만 대기업 7년 다니면서 돈 이야기를 하루에 1%라도 한 것은 손꼽을 정도다. 그러나 스타트업, 중소기업을 전전하는 지금 그렇게 될 수밖에 없는 이유도 명확히 알고 있다. 이 매거진에서 말할 것이고. 그것은 정말 리얼리즘.


5

요새 글 쓸 시간이 없다. 올해 출판하려고 한 기술 서적 중급 써놨는데 최근 산 외서 보다 보니 대부분이 비슷하고(정말 안 보고 쓴 건데) 나보다 훨씬 설명을 잘해서 멘붕이 왔고. 일도 많아서 아이랑 놀아주는 것만 해도 벅차다. 오버워치 계정 잘리고 항의를 해야 하는데(돈은 돌려줘야 하잖아. 내가 산 물건을 내 동의 없이 다시 가져갔으면) 로스트 아크라는 대작이 나와서 그럴 시간도 없고.


이 글들도 쓴 지 오래되어 이제야 발행한다.


뒤에서 응원해 주시는 분들이 많다. 내가 다칠까 봐 걱정해 주는 사람도 많고. 그런데 그렇게 걱정만 하다 무지개 다리나 요단강 건너시는 상갓집에 많이 가다 보니 오히려 더 말할 건 말하고.


어차피 대단한 사람도 아닌 개인의 의견이니 볼 사람만 보게... 하자는 것이다. 글쓰기 귀찮아서 유튜브에 영상 찍어서 10개 정도 올리다가 그만뒀는데 그나마 글을 읽는 사람들은 나이가 좀 있기 때문이다. 유튜브의 경우 아이들이 보기 때문. 리얼리즘 중시하게 된 나 역시 김구라가 자기 아이에게 너무 리얼리즘을 가르쳐서 방송에서 보던 동현이가 조금은 어눌해 보인 것이 아쉬워 내 아이에게는 세상 이야기를 하지 않고 디즈니 랜드 레고가 만들어준 세상에 놀게 하기 때문에 유튜브는 좀 아닌 듯하여 2000 구독자께 죄송하지만 400 구독자를 선택했다.


6

너무 리얼은 사실 재미없고 불쾌하기도 하다. 늘 생각이 많다고 이야기를 듣던 나인데 그런 생각이 20년 넘게 보였으니 얼마나 많을까? 사실 쓰면서 지워나가고 내려놓고자 하는 마음도 있다. 책을 쓰면서 알았다. 쓰면서 알게 되는 게 아니라 쓰면서 지우고 내려놓게 되는 것이라는 것을.


경험해 보고 경험을 적는다. 어머니의 영향으로 그런 경험이 여성을 위하는 쪽으로, 나쁜 사람들의 행위로 영향을 받아 리얼리즘으로 바뀌었다.


이런 조각 생각들로 이 매거진의 존재 이유를 설명해 본다.


브런치 맞춤법 검사를 돌리고 막 클릭하는데 공자 부분도 조정을 해 주네. 나도 긁어온거니 한번 확인해 보시길.

이 글을 쓴 이유는... PC방을 좋은 이미지로 착각해서 아르바이트하는 착한 아르바이트생이 없었으면 하는 바람에서다. 딱히 뭔가에 대한 결론이랄 것은 없고 개인의 생각을 남겨 당신의 생각에 도움이 되고자 경험을 끄적여 본다.


-아래- 기사 외에도 많은 기사가 있는데 왜 다들 일반화를 하려고 하는지 모르겠다. 냇물 가장 위에서 독극물을 내려보내면 아래쪽 사람들은 다 죽는데, 독극물 내려보낸 사람을 욕하는 게 아니라. 위에 사는 사람들의 정신이 문제다. 물은 위에서 아래로 내리면 안 된다. 등등... 그냥 저~ 산이네 하니까 우~~~~ 하고 사람들이 달려가는 꼴. 뻔한 이야기를 굳이 누가 나서서 하지 않으니 젊은 요즘 기자들이 이상한 생각을 하나보다.라는 생각.


PC 방 살인 사건에 대해서 내 경험과 빗대어 이야기해 보면 이렇다.


1. 게임은 폭력성과 연관이 있다. 게임을 해서 폭력적이 되는 것은 아니다. 폭력성이 높은 게임을 하면 폭력적이 된다. 쿠키런 고수인 와이프가 살인 기술을 배우는 것을 아니라는 것. 우리는 굳이 배울 필요 없는 살인 기술을 폭력성 높은 게임을 통해 배운다. 물론, 재미도 있고. 화를 푸는 방법을 노래로 배웠다면 노래로 풀 텐데 게임에서 배우는 것은 폭력의 방법이다. FPS 게임에서 50 킬 넘게 하면, 혹은 사람 머리를 터뜨리는 헤드샷을 5번 이상하면, 확실히 스트레스가 풀린다. 물론, 좋은 말로 바꿀 수도 있겠다. 가상 세계에서 사람을 죽인다는 의미보다, 게임이 마련해 놓은 캐릭터를 게임의 룰에 맞게끔 잘 조작해서 상대를 쓰러뜨리는 승리 목표를 달성하면 스트레스가 풀린다. 는 식으로. 국감에서 게임이 안 좋다 논하는 그분들도 난이도 조절해서 헤드샷 하게 만들어 드리면 아마 스트레스 푸는 데는 확실히 동의하실 것이다. 나도 수십 년간 게임했고 지금도 한다. 군대보다 게임에서 무기의 종류와 살인 기술을 더 많이 배웠다. 그러니 군에서도 게임 시뮬레이션을 이용해서 군인 육성하려고 하지 않겠나? 


2. 자동차 사고 나면 브랜드를 보고 싶은데 브랜드는 나오지 않는다. 보일러 사고 나면 나는 관련이 없더라도 해당 보일러 브랜드가 궁금한데 알 수가 없다. PC 살인 사건에서 게임이 문제면 살인자가 즐겨하던 게임이 뭔지 알고 싶은데 뭔지 모른다. 게임이 문제가 아니라 폭력성이 높은 게임이 문제인데 뭔지 알 길이 없다. 살인자 면회 가서 물어보면 될 것 같긴 하다. 게임으로 일반화하지 말고, 어떤 게임이 문제인지 확인해야 한다. 수원 PC방에서 도끼로 손을 찍었던 사람과 PC 방 살인자가 즐겨하던 게임이 동일 게임이라면 그 게임은 뭔가 조치를 취해야 하지 않을까? 폐쇄라기보다는 할 수 있는 연령대를 더 올리던지.


3. PC방 문화 자체도 연관 있다. 옛날 오락실에는 조폭들이 많이 왔었다. 지금의 PC 방 문화도 크게 다르지 않다. 담배가 살인자를 의미하는 것은 아니지만, 반항의 상징이다. 지금처럼 규제가 심하고 의식이 많이 바뀌었는데도 담배를 피운다는 것은 문신과 비슷하게 반항을 의미하며, 반항의 특정 대상이 없다고 했을 때 우월주의의 상징이다. PC방 가면 그 자리에서 담배 피우는 사람도 많이 있고, 사실 옛날 오락실 분위기 그대로 옮겨놓은 듯하다. 물론, 현대적 PC방, 규모가 있는 PC방은 다르지만 오락실이 PC방으로 변모되는 과정 중에 있는 것으로 보인다. 아직은 큰 곳을 가던 작은 곳을 가던 어린 학생들이 쌍욕을 자유롭게 하는 장소는 PC방이다.


4. 웃길지도 모르지만, PC 방 말고 한 가지 더 말하면 살인자의 문신도 연관 있다. 문신 많이 한 연예인이 종편급 채널에 나올 때는 문신을 다 가린다. 왜 그럴까? 우리 정서가 문신을 허용하지 않는 이유가 있다. 지금은 거의 조폭이 사라졌지만 나 어릴 때는 유명 거리를 지배하는 것은 어둠의 주먹들이었다. 난 부산사람이니 해운대나 서면, 부산대 등... 그래서 관련해서 영화도 많이 나왔는데 사실 그런 류의 조폭이 사라진지는 20년이 넘었다. 지인이 건설 쪽에 있어서 직접 연관 있는 경우도 많고. 우리나라 경찰이 이룬 쾌거로 확실히 알고 있다. 그런 조폭들이 즐겨하는 게 문신이었다. 그래서 좋지 않은 이미지는 있지만 이제 많은 타투 신봉자들이 문화를 많이 바꾸긴 했지만, 여전히 좋지 않은 시선은 이 친구 덕분에 이어질 것 같다. 물론, 난 1년에 한두 번 정도 문신하려고 와이프에게 물어본다. 하는 답변은 "네 딸이 문신한다고 할 때 어떻게 반박하려고?" 사실 난 괜찮긴 하지만 문신하는 친구들 보면 낫는 과정에 많이 아파해서 그 점이 아쉽긴 하다. 내가 문신하려는 이유는 늘그막에 해야 할 일이 있는데 그 일이 생각보다 험한 일이기 때문에 굳은 다짐을 위해서이다. 뭐, 사실 그런 게 없어도 이미 하나 있긴 하지만. 떠나는 사람은 작별 인사를 하지 않듯이 사실, 필요도 없고.


1, 2, 3, 4를 말한 이유는 학생들이여~ PC방 아르바이트하지 말고. 하게 된다고 해도 흡연실이 없어서 앉아서 담배 피우는 PC방은 피하고, 흡연실이 있는 PC 방도 피하라는 뜻이다. 그게 아니면 건전할 수가 없다. 굳이 건전할 필요는 없겠지만 질 나쁜 사람들 계속 보다 보면 미간 위를 억누르는 듯한 개운치 못한 기분을 매일 느껴야 한다.


그냥 내 경험이다. 결혼해도 새벽까지 PC방에서 새벽까지 게임해서 오버워치 1년 안되어서 금장 달고. 최근 처가댁 갔다가 PC 방 밤새면서 휴대폰 배터리 다되어 할아버지 걱정시키고, 학생들에게 GTX 그래픽 카드를 스승의 날 선물로 받을 정도로 확실한 경험에서 말한다. 그리고 PC방 알바도 했었구나. 해운대 신시가지에서. ^^;; PC 방은 건전하지 않고, 폭력성이 있는 게임은 사람을 폭력적으로 만든다. 물론, 내가 어릴 적 아르바이트할 때 야간에 항상 오던 조폭은 나에게는 너무 좋은 사람이었다. 그렇다고 사실과 내 생각을 적지 않을 이유는 없다.


아마 PC 방 자체를 좋게 만들려고 애쓰는 사장님 많을 것이다. 그러면 그냥 10시 되면 문을 닫는 게 맞을 텐데 그렇게 할 수 없는 경제 구조다. 결국 게임 폐인이 있지 않으면 PC방 유지가 되지 않고, 지속적인 폭력성 게임은 사람을 폭력적이게 만들 수밖에 없다.


게임 회사가 그렇다고 한 계정에 접속 시간을 제한하지는 않는다. 법에서 강제하니 그나마 청소년들이 10시에 못 오도록 막는 수준에서 그친다. 


게임과 담배와 마약은 크게 다르지 않다. 또 한, 내가 만났던 서울/카이스트 출신 및 잘 나가는 사람들은 담배도 피우지 않았지만, 게임도 하지 않았다. 더 재미있는 것은 게임 만드는 사람들이 무슨 게임 광인 것처럼 생각하는데 게임 만드는 사람보다 게임 폐인들이 게임을 더 많이 할 수밖에 없다. 물론, 게임 광이었지만 네임 벨류가 올라가고 더불어 일이 많아져서 바빴지만 게임할 시간 거의 없다. 우리나라 의사 되기 힘들다고 하지만 의사 신입생은 매년 2000~3000명이다. 프로게이머? 지금까지 프로게이머 다 합해봐야 1000명 안된다. 지인이 프로게이머 한다고 하면, 물론 그 가능성은 시간을 두고 지켜봐야겠지만. 숫자로 말하면, 차라리 의대를 추천하는 게 낫다.


난 PC방 자주 가고 사람들과도 곧잘 어울린다. 끊었던 담배도 가끔 피울 때도 있다. 내가 살인자는 아니지만 살인에 대한 기술은 모두 게임에서 배워서 안다고 생각한다. 주짓수나 태권도를 배운 사람이 폭력적인 것은 아지만 특정 상황에서 충분히 위험할 수 있다고 생각한다. 그나마 그런 격투기는 사람을 겸손하게 만들지만 게임 속에서는 사실 대부분이 이건희다. 나 역시 게임과 군대가 아니었다면 칼을 쥘 줄도 몰랐겠지. 이것에 대해 이야기한다면 끝도 없고, 결국 사람이 하는 일이니, 우리나라 총기 소유도 합법화되어야 한다는 결말까지 가니까 그만해야겠다.


살인/폭력 사건이 계속 나고 그 장소가 PC 방이라면, 전국의 PC방 수에 관계없이 문제는 있는 것인데.

해당 문제에 대해서 논리로만 말하려고 하니.


내가 게이머라는 사실과 폭력성 게임은 살인 사건과 직접적 연관이 있다는 사실을 남긴다. 해외 연구나 논문 말고 실험으로 증명하면 좋을 텐데. 선량한 10 사람을 폭력성 게임 속에서 PC 방 게임 폐인의 평균 플레이 시간만큼 몇 달간 돌렸을 때 살인 충동에 대해 연구하면 좋을 텐데 말이다. 어떤 결과가 나더라도 게임 산업이 커진 만큼 충분히 연구되어야 한다. 우리 먹거리에 들어간 나쁜 균이 뭔지 항상 연구하고 찾아야 하듯이 말이다. 굳이 말 안 해도 우린 다 알고 있다. 사행, 폭력 같이 자극적 요소가 변형되어 게임에 녹아났고. 게임 업계가 충분히 할 돈이 되지만 자정 작용을 위한 돈은 아까워한다는 것을.


좀 더 사견으로 가겠다. 개인적 게임 취향을 적자면 오래전 디센트라는 미로 찾기 게임이 있었다. FPS랑 조작 방법이 비슷하지만 뒤집히기도 해서 3D FPS가 어지러운 사람이 하면 손을 못 댈 정도로 어려운 퍼즐이었는데 난 재미있었고 엔딩 크레디트도 보았다. 그런데 지금 나오는 게임들은 그만큼의 쾌감과 몰입감을 주는 게임은 사실상 없다. 그때의 성취감과 쾌감은 사실 군에서 전역했을 때나, 취뽀했을 때나 내가 결혼할 때도 아이를 낳았을 때도 느껴보지 못한 새로운 형태의 감정이었다. 그래서 게임을 사랑하고 비판적으로 말하고 싶지는 않지만 확실히 문제는 있다. 문제를 인식하지 못하면 지금 같은 문제는 계속 발생한다.


스필버그가 레디 플레이어 원이란 영화에서 해결책을 이미 제시했다. 일주일 중 하루는 접속 못하게 하면 된다. 혹은 계정 당 하루 접속할 수 있는 시간을 제한하면 된다. 교육용 게임을 제외하고는 꼭 그렇게 되었으면 하는 바람이다.


- 아 래 -


https://www.huffingtonpost.kr/entry/story_kr_5bee2162e4b0860184a6d1dd

http://www.inven.co.kr/webzine/news/?news=209557

https://www.gamemeca.com/view.php?gid=1502503

https://news.joins.com/article/23082155


- 내가 경험하고 들은 바에 의하면, 70%가 비리 때문.(10개 중 7개)

1. 어릴 적부터 강사 활동을 하다 보니, 제자가 많아졌다.

2. 또, 술을 좋아하다 보니 민감한 정보를 많이 듣게 된다.

3. 제자들의 이야기를 들어보면, 사장의 친인척이 월급 700 이상 받는 경우가 많다. 

    각기 다른 기업, 다른 고용 형태로. 그런 경우는 다른 이유 불문하고 연봉 비공개의 이유로 흑백논리 적용!

4. 대기업 비리야 뉴스에 많이 나온다. 중소기업, 스타트업, 비리는 더 많다. 문제는 자각하지도 못한다.

5. 직급이 낮으면 비리를 판단할 수 없다. 권한이 없다. 누가 물어볼 때는 우리 회사는 미국 문화, 중요한 것 물어볼 때는 군대 문화.

6. 내가 있었던 스타트업도 몇 달 동안 얼굴도 못 보던 사장형을 감사로 앉히고 월급 1000. 원래 중소기업 돌던 애들은 딱 그 수준에 맞춰주는 것. 그런 더러운 관례를 벗어나지는 못하더라. 따져보면 대기업도 수익의 매우 적은 % 밖에 직원들에게 주지 않는다. "발톱의 떼"라고 표현하는 것은 몸에서 차지하는 비율을 따져 이야기하는 것.


돈에 대해서 깨끗하고 공정한 기업은 이런 이야기를 오히려 더 편하고 환영한다. 연봉 관련 수많은 거짓 기사와, 멋진 기사를 찾다 보면 아마 전 직원 연봉 공개했던 기업의 이야기와 충분히 고개를 끄덕일 만한 논리를 발견할 수 있을 것이다.


대기업 임직원이 참 많지만, 중소기업중앙회 자료나 연봉 관련 기사를 보면 제대로 모르는 경우가 많은데, 내 경험상 중소기업 연봉 정보를 알기가 더 힘들다. 대기업은 연봉 이야기했다고 자를 권한이 한 사람에게 있지는 않기 때문이다.


결론적으로 직원은 설국열차의 뒷칸에 있어야 한다는 것. 내가 부탁하고 싶은 것은 직원들 연봉 공개하지 말라고 하지 말고 비리 저지를 때 정말 남들 모르게 좀 해달라.


그 외 다양한 이유도 있을 것이다.

1. 평가와 보상이 제대로 이루어지지 않거나, 해당 내용에 대해서 논리적으로 설명할 수 없기 때문.

2. 해당 사원의 역량을 평가할 수 있는 잣대가 없어 다른 사람들을 이해시킬 논리를 만들 수 없기 때문.

3. 직원이 회사가 가지지 못한 핵심 역량을 가지고 있고 돈으로 데려올 수밖에 없었으며, 그 역량이 사활을 좌우하고 그 액수가 다른 사람 연봉의 몇 배가 되기 때문.

4. 그 외 다른 이유.


+


1. 판단을 컴퓨터에게만 맡기지 않으면 정확한 결과물을 내는 것이 컴퓨터이다. 

2. 즉, 투자를 제외한 돈 계산만 컴퓨터가 하면 매우 정확할 것이다.

3. 아이리니 하게도 회계 분야에서 판단이 불필요한 부분이라도 컴퓨터가 대체할 수 없다.

4. 물론, 해당 분야(회계)에는 AI 역시 들어갈 수 없다.

5. 연봉 정보는 비공개되어야 비리를 저지를 수 있기 때문이다.

6. 브런치라는 공간을 마련해 준 카카오에게도 미안하지만 카카오도 못한다.

7. 이에 반해, 미국의 한 스타트업은 연봉 정보를 직원 전체에 공개하고 명확한 논리로 설명도 했다.


- 물타기 


1. - 또 다른 이야기 - 의 7의 이유로 작은 스타트업이 대단한 것이다.


- 아니라는 논리


1. 그 스타트업이 대단한 것이다.

2. 서울대 교수 모두가 대단하다. 강석진 같은 교수가 나쁜 것이다.

그런 기업 이름은 공개되어야 한다.


꿀위키/블라인드메신저/잡플레닛의 해당 기능을 기획하고 만들었던 사람은 연봉 비공개 문제를 정확히 본 것.

결혼을 안 하는 갖가지 이유에 대해 띄엄띄엄 글을 쓰다 보니 쓸데없는 말 줄임 "결같이"을 쓰게 되는 것 같아서 한 번씩 시간이 날 때 비슷한 말을 하고 싶다.


제목이 같던, 같지 않던 결혼에 대해서 이야기하는 것은 상당히 좋은 일이다. 왜냐면 난 결혼을 했기 때문이다. 그리고 독신주의자를 선호하는 사람이기도 하고. 개인주의도 선호해서 이혼에 대해서도 긍정적이다. 주변에 좋은 분 중에 이혼한 사람이 많은데 그들을 이해하려면 어쩔 수 없는 생각 회로의 정렬이 필요했던 것도 하나의 이유겠다. 그리고 한편으로는 이혼도 싫어한다. 귀찮은 건 딱 질색이기 때문이다. 비슷한 사람 주변에도 많다. 그래서 친한 지인 중엔 혼인 신고 안 하고 결혼해서 이혼하는 케이스도 몇 된다.


그만큼, 내 생각에는 큰 문제라고 생각한다.


내 생각과 대중, 혹은 기자들의 생각은 다를 것 같다. 혁신 제품이니 뭐니 시대를 바뀔 기술이니 뭐니 떠들어도 내 생각에 컴퓨터 기술은 지난 30년간 딱히 발전된 게 없다. 아직도 불편하다. 내비게이션 없을 때에도 길 물어서 잘 다녔다. 이메일 없어도 소식 잘 전했고, 더 감성적일 수 있었다. 전화번호는 외워야 해서 치매 걱정 안 해도 되었었다. 아직도 어머니의 말을 못 알아듣는 인공지능. 물론, 더 발전할 것도 같은데 내가 살아생전에는 아닌 것 같다. 태블릿 나와서 노트북 사라질 줄 알았는데 노트북이 대세다. 휴대폰에 시간이 나오니 시계가 사라질 진다더니, 기존 시계는 더 소중해지고 따라한 스마트 워치가 나온다. 이메일이 나와서 우체국에 우편 기능이 사라진다더니 우편 기능은 더 중요해졌다. 연말이라고 서로 간에 이메일을 보내진 않듯이 차라리 서로의 감정과 생각을 교환하는 좋은 문화만 사라졌다. 미디어를 보면 스티브 잡스가 하고 싶었던 것이 이해되는데, 과연 스티브 잡스가 하고 싶었던 것은 과연 무엇이었을까? 주저리 적었지만 스티브 잡스 욕할 정도로 뭔가를 보는 내 관점은 다르니 솔로인 사람은 내가 강력하게 주장해도 너무 비판하지는 말아주길 바란다.


사실, 모은 돈이 아까워서 결혼 못하는 사람은 그냥 결혼을 안 해야 한다. 나름 나이를 조금 먹으니 결혼과 사창가나 유흥업소의 섹스 화대와 비교하는 말도 많이 들었다. 스타트업 다니면서 오피스걸이란 것도 알게 되었다. 스타트업에는 졸부들이 많은데 어느 정도 돈을 많이 벌면, 의료보험비가 많이 나온다. 그래서 뉴질랜드나 호주로 많이 간다. 의료보험비를 안내기 때문이다. 20~30억 이상 넘어가면 의료 보험비가 600만 원을 넘는데 그 돈으로 한 달 외국 사는 돈이랑 같다고 한다. 그리고 수술 아니라도 외국에서 아프면 돈이 많이 나가기 때문에 (감기 걸리면 100만 원, 제왕절개 2000~3000만 원 등...) 한국으로 들어와서 그 달 의료보험비만 내면 된다고 한다. 그래서 외국이 마치 대단하고 외국 다녀온 자기네들이 대단한 양 이야기를 하며 기자들에게 술 사주면 기자들은 그걸 받아 적으니까 한국에서 외국인 상대로 영어 못하는 게 부끄러워하는 공중파 광고를 볼 수 있었던 것이다. 공무원들의 학벌 세탁에 대해서는 내 책에 써서 출판했었다. 요지만 말하면 외국 대학교에는 학위를 따서 자국으로 돌아갈 사람들에게는 학비를 2배 받는 대신 쉽게 학위를 준다. 그 이유는 굳이 말 안 해도 알 것이다.(궁금하면 댓글) 서울대가 우리가 생각하는 것과는 달리 전 세계 대학 순위에 이름을 내밀기도 부끄러운 게 문제가 아니라 근본적으로 왜 해외 학위를 대단하게 생각하게 되었는지에 대한 문제의 이유는 나는 스타트업 경험으로 다 풀게 되었다. 궁금하면 글을 좀 더 쓸 수 있겠다.


믓튼, 내 주장은 나의 주장이 아니라 그냥 보고 들은 것을 적는다. 그래서 국소적으로 적어본다. 스타트업에서만 그랬다고. 대기업에서는 결혼을 그 딴식으로 생각하지는 않더라. 다만 스타트업과 다르지 않은 발언을 들었는데. 그중 하나가 이 글의 제목이었다. 결혼해도 바람피우는 게 스타트업 문화라고 하면 대기업은 더 신중하긴 하지만, 사실 다를 바 없고 결혼하지 말아야 한다.


1년에 돈 아무리 많이 모아도 3000만 원 넘기기 힘들다. 내가 다니던 기업으로 치면(대기업이던 스타트업이던) 보너스 한방이긴 하고, 금융권, 전문직 등이 있긴 하지만 평균적으로. 그러나 집값은 그것보다 더 오른다. 그래서 돈 때문에 고민을 하게 되고. 소심해진다. 여자에 대해 모른다. 뭔가를 장만해야 할 것 같다는 생각과 책임이 든다. 지레 겁이 난다. 등...... 이야기를 하면 끝이 없겠다. 


지금은 달라졌다고 할지 모르겠지만 내 주변에는 원룸에서 살아도 좋다는 여자는 주변에 엄청 많다. 물론, 전제를 자기를 사랑해준다는 것 하에. 이것은 인간의 순수함이나 감정에 호소하는 것이 아니라 실제로도 그렇다.


1. 분양받아 들어간 집에서 물이 세고 시공 시행사는 날라서 엄청나게 매물이 많이 나온 아파트가 있었다.

2. 사람 한번 아픈데 보험 없으면 최소 1000만 원~1.5억 까지 나간다. 경미한 수준의 암에서 간암까지. 또 한 그 사이 돈 못 벌고 나가는 돈도 포함.

3. 음주운전은 보험 안된다. 음주 운전해서 사람 쳤는데 안 죽으면 평생 돈 물어주고 살아야 한다. 5~10억. 그래서 덤프트럭 운전 세계에서는 사람 치면 그냥 엑셀 계속 밟고 있으라는 이야기가 오갔었다. 그냥 죽였다고 생각하고 1.5억이라고 치자. 내가 입을 잘못 열면 지금도 형사 처벌받을 사람이 있을는지도 모른다. 


길게 적기는 내가 알고 있는 지식의 종류가 부끄러워 그냥 1~3 이유만 들어도 사람을 본다는 말이 맞을 것이다.


나 역시 국산차도 있지만 부끄럽게도 외제차도 있다.(흉기 차 때문이지만) 50평 아파트에 살지고 딸아이가 있는데 정말 돈 한 푼 없어도 사람만 괜찮으면 보내고 싶다. 사람 괜찮다는 것은 건강하고 정신적으로도 건강하다는 것을 의미하고 그렇다면 최소 10억 가치부터 시작하기 때문이다. 내 자산 다 합해도 10억 안되는데 나보다 더 부자인 사람이 왔는데 굳이 차나 집나 모은 돈이 있어야 할까? 합리적인 생각인 것이다.


이런 경제적이고 합리적인 생각. 그리고 숫자놀음에... 숫자 놀이하는 사위는 받고 싶지 않다. 결혼할 때 돈이 많이 든다고 생각하겠지만 결혼식장 비용은 사실 축의금으로 충당되고 남는다. 그게 아니면 소소하게 결혼식 하면 되고, 나중에 지인이 많아졌을 때 결혼식을 올려도 된다. 신혼여행? 사랑하는 사람과 가는 곳이 바로 최고의 여행지다. 집이 없는 것은 이렇게 발전된 세상에서 본인의 탓이 아니다. 투기꾼 사기꾼 부동산업자 정부의 탓이다. 작게 시작하면 된다. 나는 결혼을 빨리하려고 해서 원룸에서 살려고 했는데 그게 잘 안돼서 5년을 더 끌다 보니 결국 투룸에서 시작했었다. 결혼하면 돈이 더 모인다. 이런 신기한 현상에서는 나중에 더 설명하려고 한다.


딱히... 주제도 없고, 생각을 적었다.


사람마다 사연이 있는데 잘 안다고 말하고 싶지는 않은데...


다들 결혼했으면 한다.


아이가 너무 예뻐서 그럴 수도 있고.

나만 당할 수는 없으니 너희도 당해봐라 일수도 있고.

결혼하니 오히려 효도하게 되더라 라는 것일 수도 있고.

글에도 여러 이유가 있을 것이다.

.

.

.


주변에서 결혼 안 할 것 같은 지인 4명(못생겨서, 철저한 독신주의자라, 돈이 없어서 등...)이 최근 모두 결혼했다. 스포츠 댄스 클럽, 살사 댄스 클럽 정말 대단하다고 생각하지 않을 수 없다. 더 신기한 것은 그중 3명은 여자 쪽이 더 대단하다는 것이다(대학원 학벌, 모은 재산, 장인어른 능력 등...) 굳이 이런 글 안 써도 아직 한국에는 사람의 내면만 보는 사람의 비율이 더 높은 것 같다. SNS 좀 해 ㅡㅡ; 


진짜 못생긴 놈 한 명 있는데 제수씨는 예뻐서 이제 잘생긴 것으로 기준을 바꾸어 봐야겠네. 이 글을 빌어 진심을 적어놔 본다. 이제 그런 생각도 못하게 되었으니, 먼 훗날 내 생각도 바뀔 것 같아 기록해 둔다.


----------------------------------------------------------



사랑해요 라는 말속에는 
땅속으로 스며든 빗물처럼 
자연스럽게 스며든 그대의 깊이를 
기쁘게 인정한다는 뜻이며 
있는 그대로의 모습과 볼 수 없는 모습까지도 
경계 없이 좋아한다는 뜻이며 
그대 한숨과 절망마저도 
껴안을 준비가 되어 있다는 뜻이며 
슬플 때나 기쁠 때 
구분 없이 한결같은 마음으로  
그대 숨 쉬는 길목마다 
눈부신 그리움이 되고 기다림이 되어주겠다는 뜻이며 
내 사랑으로 
그대 삶에 힘찬 성장의 날개를 달아주겠다는 무언의 약속이며  
그대가 내게 있어 
세상에서 가장 아름다운 가슴에 피는 꽃으로 남아있듯 
나도 그대에게 있어 
지워지지 않는 의미로 남고 싶다는 뜻이다 

2004년 12월 - 喜也 李姬淑



아무리 단순한 개인 의견이라도 매우 어려운 주제의 첫 번째 글이라, "이런 글을 쓰겠다."라는 정도의 outline만 써 놓으려고 한다.


http://www.korean.go.kr/front/mcfaq/mcfaqView.do?mn_id=62&mcfaq_seq=5148


상담 사례 모음 - '각가지'와 '갖가지'의 차이 | 국립국어원


www.korean.go.kr 


이런 의미와는 별개로

각가지 이유라고 하면 normal하고,

갖가지 이유라고 하면 약간은 비아냥대는 듯한 느낌이다.



그러나 기본적으로 20대 30대는 결혼한 사람들에게 대한 비아냥이 존재하고,

40대는 결혼 안 한 것에 대한 비아냥이 존재하는 시기다.


내가 주변인에서 들은 결혼 안 하는 것에 대한 이유는 다음과 같다.




1. 남자의 경우 예쁜 여자를 못 만나서, 여자의 경우 제대로 된 남자를 못 만나서. 

2. 자신의 스타일에 맞지 않아.

3. 모은 돈이 아까워서.

4. 집안이 안 맞아서.

5. 종교 문제

6. 유부남이 너무 들이대서

7. 기타(엊그제 일요일 친동생 결혼식이었다. 참석 못했다.)



어찌 보면 7번이 가장 큰 이유일 것이고 가장 어려운 문제다. 인간관계랑 연관되어 있는. 그래서 개인사도 적게 되었다.



다음 글에서는 6번부터 풀어 보려고 한다.



유부남이 너무 들이대서



남자들 모이면 대부분 여자 이야기한다.



최근 지인을 만나 경기도 모 대학가에서 술을 마시게 되었는데, 술집이 떠나갈 듯 시끄러워 나중에 계산하고 나갈 때 이런 말을 건네더라. "너무 시끄러워서 가시는 건 아니죠?"




물론, 아니다. 대학 가는 시끄러운 게 정답이니까. 게 중에는 너무 또렷한 발음의 (타고난 성우) 학생도 있어서 본의 아니게 여러 이야기를 듣게 되었는데 00학번인 내 시절이나 크게 변화된 것은 없었다. 같이 갔던 지인이 어느 붙여진 테이블을 보더니, 예쁜 여학생 하나에 많은 남학생이 모여있고 여학생 목소리가 가장 크고 그 목소리밖에 안 들린다고 했다. 그도 그럴 것이 그 친구만 거의 말을 하고 있었으니. 남자 테이블은 별거 없었다.




남자들 모이면 대부분 여자 이야기한다.




예쁜 여자 이야기한다.






20년 넘게 알아 온 지인이 있다. E라고 부르겠다. 나보다 나이다 좀 많은 ^^ 예쁜 여자 이야기할 때 나오던 항상 그런 사람이다.



많이 예쁘다. 아니 예뻤던 지인이다. 세월이란 게 무상하게도 나이를 안겨주었고 예뻤던 지인도 많이 늙었다.



난 내 아이의 외모도 객관적으로 평가할 정도로 어찌 보면 냉정, 어찌 보면 그런데 별 관심이 없다. 어릴 적부터 사실 정말 관심이 없었기 때문에 한 20년 정도 사람들이 외모 평가하는 것을 들으며 그냥 물든 것뿐이고. 지금은 그런류(!)의 사람도 많다는 것을 인정하는 것뿐이다.



그런 면에서도 E는 예쁘다. 그리고 교직(고등학교)에 오래 계셨다. 조금 더 말하면 피해가 갈 정도로 큰 일도 하시고 계시기 때문에 더 이상은 말 안 하겠지만. 젊을 때 매우 예쁘셔서 차을 세워두면 처음 보는 사람이 차 번호를 보고 연락하거나 길 가다가도 헌팅은 일쑤인 그런 삶을 사셨다.



지금도 독신이시다. 



이유는 하나다. 또 매우 간단하다.



유부남에게 너무 실망해서. 교직에 있는데 선생님들이 유부남인데도 대시를 많이 해서다. 교직도 이 정도인데 실상 남자들은 어떨까?라고 생각하셨는데 실제 남고를 거치고 학생들의 고민을 들으면서 남자에 대한 환상이 이미 깨진 지 오래.



얼굴도 예쁘고 마음도 예쁘고 다른 사람에 비해서 누구보다도 날 챙겨주시던 분. 그리고 그런 분이 아직도 독신이시기에 난 독신주의자를 고집하던 시절도 있었다. 그리고 인간관계가 매우 넓은 편이라고 자부하는데 내가 선배라고 부르고 인정하는 유일한 사람도 독신이시다. 



그래서 난 독신주의자를 지지하고 응원한다. 뭐, 날 아는 사람은 내가 가진 지위와 관계없이 독신주의자가 싫으면 성격대로 그냥 쌍욕 할 수도 있다고 생각하겠지만. 모르는 사람을 위해 남겨둔다.



진심으로 지지하고 내가 아는 지인처럼 단순한 하나의 이유라도 그 하나의 이유가 본인에게 중요하다면 결혼을 하지 않을 이유로 적당하다. 결혼은 집안이 하는 것이기도 하지만 결혼 당사자들의 의지가 가장 중요하다는 것은 두말할 나위 없다.


나이가 들면 말이 줄어야 한다. 진실이라도 교직에 계신 분들께 실례가 될 수도 있고 내 주변 사람도 떠날 수 있기 때문이다. 그러나 내가 저번에 밝히 7의 이유 중 가장 큰 이유는 사실, 난 진실을 숨기는 것을 정말 싫어하는 사람이기 때문이다. 



내 개인 의견이 사회를 일반화하지도 못할뿐더러. 내 기억에도 좋은 선생님 비율이 90% 이상이기에... 하나만 집어서 일반화를 시키는 바보짓은 하지 않는다.


다만 그런 이유가 있다는 것을 말하고자 한다.


그리고 추가로 몇 자 더 적자면, 지인 중에 반대인 예쁜 남자도 있다. 키 187에 순정 만화에 나오는... 남자인데 몸매도 좋다. 같이 다니면 뒤에서 여자들이 지인에게 수군대는 소리도 들을 정도로...(우린 어쩌라는 거야 남자가 몸매 저러면... 같은 류다.) 한 번도 먼저 대시한 적이 없는데 여자 친구는 계속 있었고, 나이 때도 정말 다양했다. 그리고 한 번씩 보여줄 때 보면 정말 예뻤다. 그런 지인이 하던 이야기가 있다. 처음에는 예뻤는데 나중에는 질리더라고. "얜 눈이 왜 이렇게 커?", "얘는 다리가 왜 이리 길어" 등의 이유라며. 사실 지금도 전혀 공감이 안된다. 그런 경우를 겪을 수가 없으니까. 나의 경우엔 땅 달 막하고 배불뚝이 소리만 들은 지 10년이 넘어서 지금까지도, 남은 평생도 그런 기분을 느끼지 못할 것 같기는 하다.



그래서 안다. 모두가 같은 상황을 겪을 수는 없다.

남자들이 모이면 예쁜 여자 이야기를 하지만, 예쁘다는 것이 꼭 결혼의 이유는 아니라도 생각한다.

그러나 많은 여자들이 유부남이 대시하는 경우에 있지는 않겠지만, 그런 상황을 겪었을 때


결혼에 대해 생각이 없어지는 것은 확실하다.

물론, 남녀가 바뀐 그 반대의 경우도.

지인도 젊은 시절 그런 일을 겪어서 결혼을 안한다고 생각했고 그렇게 20년이 흘러버렸다.

세월이 간다고 나이가 들었다고 어릴적 생각이 틀린게 아니라서, 바뀌지도 않는다.


가치관도 그렇지만, 하나은행 골프장 영상을 봐라. 나이가 뭔 상관인가. 늙어도 개짓하는 놈은 개짓한다.




집안이 맞지 않아서



집안에는 여러 비교가 있겠고, 이야기를 시작하면 책 한 권도 부족하겠지.



단순하게 보자. 인터넷 방송인에게 내 딸을 시집보낸다고 가정해 보자.



내가 좋아하는 방송인은 이런 류겠지만.

https://www.youtube.com/watch?v=bRwiWmrrG_Q



비슷한 구독자 수 (300만 가까이...)로 본다면 

https://www.youtube.com/watch?v=mw6y8OY10uc



https://www.youtube.com/watch?v=M_h2RnbpJNI



세명 다 자수성가한 사람의 공통점이 있는데 굳이 말 안 해도 집안을 알 수가 있다. 



꽃게는 자기가 옆으로 걷더라도 자식은 바로 걷길 바란다는 말이 있었다. 내가 좋은 집안을 만들지 못하더라도 자식은 좋은 집안으로 보내고 싶고. 돈이 많다기보다는 화목하고 아들뿐이라 딸을 그리워했던 집안으로 가야 사랑받을 것을 안다. 



나 같은 경우는 사실 처가댁을 자주 가고, 내가 늙으면 딸네 가까이 살거라(아랫집 정도?) 구세대의 상식과 맞지 않는다. 설거지도 만류에도 불구하고 자처해서 하고 어머니의 영향으로 페미니즘을 선호한다.



딸의 선택을 존중할 거고 아무 말도 하지 않겠지만 의사에게 갔으면 하는 바람이다. 물론, 의사들이 더 잘 노는 것은 안다. 와이프가 간호사여서 그런지 내가 스타트업 생태를 알아서 그런지 성공한 사람들의 성적으로 문란하고 안하무인인 삶의 단편을 많이 알고 있다.


그럼에도 왜 그럴까? 결혼은 사실 집안이 하는 것이고 단 둘이 보는 사람이 대부분이지만 그 사이 연관된 가족들도 계속 보게 되어 있다. 이왕이면 괜찮은 사람들 사이로 보내고 싶은 마음이다. 뭐, 잘못되었다면 다 끊을 수 있는 자수성가, 바뀌는 자수성가도 좋겠고 그런 사람이 많은 줄도 안다.


많은 사람들이 "사"자를 선호한 이유는 그 사람이 당장 잘 살아서가 아니라, 어릴 때도 치열하고 성실하게 살았으면 커서도 그럴 것이라는 통계적 믿음. 그리고 그렇게 산 사람들이 가진 사랑이 뭇 사랑보다 조금 더 가치 있다고 믿었기 때문이다. 그런 가치 있는 것을 줄 만큼 괜찮은 사람이 자신의 자식을 더 아껴줄 것은 당연한 것이다.


글은 끝났다. 더 적어 본다.



사람일은 모른다. 앞에서 좋은 사람이 뒤에서 나쁘게 하는 경우도 많고, 내가 28년간 봤던 사람도 주변 사람에게 매우 좋은 평판이었지만 집에서는 가족에게 폭력을 행사하는 사람이었다. 그래서 그런지 보면 더 잘 알 수 있다. 내가 굳이 보겸과 영국 방송인을 올린 이유는 참 좋은 예이기 때문이다. 어느 것이 좋다고 밝히지도 않았으니 소송 당할일도 없고, 매우 교활하다고 할 수 있겠다. 그러나 굳이 더 확실히 비교를 할 거라면 철구를 올렸겠지.

나는 보겸 방송을 보고 구독하고 비판도 한다. 유재석 같은 이미지다. 사람 좋아 보인다. 욕만 좀 줄였으면 좋겠다. 사람만 좋다면 오케이다.



그러나 결혼 관련해서 나랑 술 많이 먹었던 사람들 중 집안을 보는 사람은 100% 인 서울 사람들 었다. 의사 자식도 있었고, 장교의 자식도 있었다.(욕 아니고 자녀) 나 역시 그들이 그런 생각을 하는데 공감한다. 그들이 말하는 결혼의 삶은 어느 정도 삶의 수준이 이미 정해져 있었고 또 사실이다. 나쁜 생각도 있고 아닌 생각도 있다.

나쁜 생각은 "내가 이 정도 여자를 만나는데 집안이 좀 그렇지만 성형이나 기타 돈으로 환산하면..." 혹은, "매일 이 여자와 자면 텐프로 화대를 날수로 따지면..." 등의 류고, 좋은 생각은 둘이 잘 지내고 싶은데 육아와 문화생활 사이의 질을 고민하는 류다.



다양한 사람이 많다. 말로 모든 게 판단되는 것도 아니다. 그래서 만나보면 안다. 느낌이 좋으면 대부분 좋은 사람이고, 나쁜 사람도 좋게 바뀔 사람이라는 것.


결혼을 안 하는 갖가지 이유에 3은 정말 쓸데없지만, 아무것도 제대로 안 해도 잘 먹고 잘 사는 아헤들을 보면 충분히 결혼의 이유로 생각할 만하다. 또한 이 생각에도 자신이 모은 돈이 아깝다는 사람도 나온다. 그 돈을 또 성형비용이나 유흥 화대로 계산하는 사람도 있다. 물론, 여자 입장에서도 다를 건 없다고 본다. 어느 정도 나이가 넘으면 뭐하는 사람인지부터 물어본다. 그것으로 살아온 인생 판단 종료. 내 친구 중에 서울 아파트 팔아서 전재산을 어려운 사람 도와준 친구가 있는데 솔로이다. 내가 그 친구 아버지 나이였다면 그 사실 하나로도 아마 내 딸을 주었겠지. 사랑은 봉사가 아니긴 하지만 이미 동물이 아니라는 증명을 한 것이다. 상을 줄 만한 위치에 있는 사람이야 "봉사"를 알리지 않아야겠지만 상을 받아도 되는 위치의 사람이라면 증명을 해줘야 한다. 그런 커리어 관리를 국가가 해주던지...


쓸데없는 글도 여기서 그만해야겠다.




git init

git add .

killall gpg-agent //제껀 좀 꼬여서...

git remote add original git@github.com:hajunho/iOS_project_pad.git

git fetch

git remote -v //original 이름 확인

git remote set-branches original

git pull original master --allow-unrelated-histories

git push --set-upstream original master



------------------


echo "# Myproject" >> README.md

git init

git add README.md

git commit -m "first commit"

git remote add origin git@github.com:hajunho/myProject.git

git push -u origin master

'블로그 항해 일지 > Tips' 카테고리의 다른 글

powergrep exclude  (0) 2019.01.22
포스트맨 정말 좋다.  (0) 2019.01.11
파이썬 관련 주요 인물  (0) 2019.01.06
Android 개발자 iOS전환 - 2  (0) 2019.01.03
Android 개발자 iOS전환 - 1  (0) 2019.01.03

전 포스팅(브런치 쓰고 블로그로 옮김) 이후,

갓 졸업한 대학생(지인)이 스냅 킷에서 value.snp.makeConstraints { (s) in 

하거나

value.snp.makeConstraints { (make) in

를 하거나


-> Void를 넣거나 뺄 때  왜 그게 모두 동작하는지 모르겠다고 해서


설명해 주다가 잘 알아듣기에 내용이 괜찮은 같아서 글로 옮겨본다.


import UIKit


let myFunc : (String, String) -> Void = { (x, y) in

    print("first String is ", x)

    print("second String is ", y)

}


myFunc("hello", "world")


사실 파라미터를 x, y로 받던 a, b로 받던 중요치 않다. 


그런데 이해시키려면 사실상 클로저를 처음부터 끝까지 설명해야 했다. 나의 경우 제대로 이해하지 않고 그냥 잘 아는 프로그래밍 언어에 빗대어 이해를 해버렸기에 이해하고 설명한다기보다 그냥 실무에서 쓰니까 쓰는 대로 설명을 했고, 중생의 이해를 도왔던 내용을 글로 옮기며 상황극을 해 본다.


함수의 필요성을 설명하려고 online 에서 텍스트를 텍스트 그림으로 변경해주는 것을 돌려서 붙였는데 여기에서 다 깨지네 ㅡㅡ; 본 의도만 이해해 주길 ㅠㅠ


시키면 바로 만드는 개발자 - 시바견이 씀.


> 헬로 월드를 찍으라고 했다.

# 누가 만들어 놓은 API를 호출하기만 했다.


import UIKit

print("Hello world")



> 헬로 월드를 두 번 찍으라고 했다.

# 두 번 호출했다.


print("Hello world")

print("Hello world")



> 예쁘게 만들라고 했다.

# 누가 만들어 놓은 API를 호출하기만 했다.


print(".__           .__  .__                               .__       .___")

print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

print("     \\/     \\/                                                  \\/ ")



> 두 번 출력하라고 했다.

# LOC가 길어져서 함수로 만들었다.


func hw() {

    print(".__           .__  .__                               .__       .___")

    print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

    print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

    print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

    print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

    print("     \\/     \\/                                                  \\/ ")

}


# 메서드를 호출했다.


hw()

hw()


> 다섯 번 해달라고 했다.

# 제어문을 썼다.


for _ in 0..<5 {

    hw()

}


> 클래스가 뭔지 물었다.

# 클래스는 중요치 않아, 네가  하는지가 중요해. 다만 이제부터는 메모리를 알아야 해


class yourRequirement {


   func hw() {

        print(".__           .__  .__                               .__       .___")

        print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

        print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

        print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

        print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

        print("     \\/     \\/                                                  \\/ ")

    }   

}


# 이렇게 만들면,

# yourRequirement.hw() 이렇게 호출할 수 있는데 코드는 있어도 메모리에는 없어.


> 메모리가 뭐지?

# 이 세상. 메모리에 없으면 이 세상에 없는 거야. 코드는 있어도 만들어지지 않은 것.


class yourRequirement {


    static func hw() {

        print(".__           .__  .__                               .__       .___")

        print("|  |__   ____ |  | |  |   ____   __  _  _____________|  |    __| _/")

        print("|  |  \\_/ __ \\|  | |  |  /  _ \\  \\ \\/ \\/ /  _ \\_  __ \\  |   / __ | ")

        print("|   Y  \\  ___/|  |_|  |_(  <_> )  \\     (  <_> )  | \\/  |__/ /_/ | ")

        print("|___|  /\\___  >____/____/\\____/    \\/\\_/ \\____/|__|  |____/\\____ | ")

        print("     \\/     \\/                                                  \\/ ")

    }   

}


> 이 세상(메모리)에 있게 하려면?

# 스태틱으로 펑션(메서드, 함수)를 지정하면 메모리에 바로 만들어져(생성) 그래서 호출 가능해.


yourRequirement.hw()


> static 만 되는 거야?

# static 은 안 쓰겠다면


yourRequirement().hw()


# () 로 클래스 자체를 메모리에 생성해서 hw를 실행할 수 있어, 괄호()는 매우 중요한 개념이야.

# 메모리에 생성한다 는 개념과 호출(실행)을 뜻해.


>  사람 여러 명 만들려면?

# 그때는 static을 쓰면 안 돼. static은 싱글톤이라 한 번만 생성되어서 공유가 되는 것이지. 텔레파시야 괜찮을 것 같긴 한데...



let h1 = human()

let h2 = human()


# 처럼 static으로 만들지 말고 각각 만들어서 지칭하는 객체 변수(인스턴스 변수, 포인터 변수)를 지정하면 되거든.


> 클래스로 사람도 만들어?

# 설명은 위해... 많은 print 묶기 위해 함수(API)를 쓴다는 것을 알았으니, 다시 한 줄로 다시 표현해 보자.

# 그리고 클래스 이름을 바꾸어 보자.


class human {

    func hw() {

        print("Hello, world")

    }

}


# 함수 이름도 refactoring 해보자.(더 좋게 바뀌어 보자)


class human {

    func speak() {

        print("Hello, world")

    }

}


# 사람 객체가 만들어졌어.

> 얼굴도 있어?


# property 만들면 되지


import UIKit


class human {


    let face : String = "face"


    func speak() {

        print("Hello, world")

    }


}


> 눈은?

# 멤버 변수 만들면 되지


class human {


    let face : String = "face"

    let eyes : String = "eyes"


    func speak() {

        print("Hello, world")

    }

}


> 에이 그냥 글자네

# 그리면 되지


        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face


> 함수에 넣어?

# 그래도 되고


import UIKit

import PlaygroundSupport


class human {


    var face : UIView = faceMaker()


    func speak() {

        print("Hello, world")

    }


    static func faceMaker() -> UIView {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }

}



> 다시 static을 썼네?

# 어쩔 수 없어 클래스가 생성된 이후에 function을 쓸 수 있는데 클래스가 객체가 될 때(객체가 생성될 때)

  모든 프로퍼티가 세팅이 되어야 하거든. 프로퍼티 세팅을 만들어지지 않은 함수로 할 수는 없으니 static으로 할 수밖에 없어.


> 그럼 해당 func는 한 번만 생성되는 거야?

# 응, 중복 작업의 경우엔 메모리도 작게 먹고 좋겠지만 객체 지향 프로그램 개념과는 조금... 아니지.


> 다른 방법은 없어?

# 함수를 구현하고 바로 생성해서 대입하면 되지.


import UIKit

import PlaygroundSupport


class human {

    let face : UIView = {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }()


    func speak() {

        print("Hello, world")

    }

}


let h1 = human()


> 호출할 때 파라미터는 어떻게 넣어?

# 그냥 넣으면 되지


> 어떻게 받아?

# $0, $1, $2로



    let face : UIView = {

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        print($0, $1, $2)

        return face

    }(10, 12, 13)



> 쉽네

# 원래 이게 쉬워진 거지


import UIKit

import PlaygroundSupport


class human {

    let face : UIView = { (s0, s1, s2) -> UIView in

        let face = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))

        let eye = UIView(frame: CGRect(x: 10, y: 10, width: 30.0, height: 30.0))

        eye.layer.cornerRadius = 17.0

        eye.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)


        let eye2 = UIView(frame: CGRect(x: 60, y: 10, width: 30.0, height: 30.0))

        eye2.layer.cornerRadius = 17.0

        eye2.backgroundColor = UIColor(red: 10, green: 10, blue: 10, alpha: 0.5)

        face.addSubview(eye)

        face.addSubview(eye2)

        return face

    }(1, 2, 3)


    func speak() {

        print("Hello, world")

    }

}


let h1 = human()


https://github.com/hajunho/iOS_startUpCodes


깃헙 latest에는 그래프가 없지만, 히스토리를 보면 만들다가 회사로 넘겨진 그래프 프로토타입이 하나 있다.


프로토 타입인데 framwork 화까지는 되어 Xcode 에서 framwork 타입으로 불러 올 수 있다. 


내가 혼자 만드는 거라 이 후 품질을 향상하려면 오픈 소스화 해야 한다고 했는데 회사에서 오픈소스화 한다는 메세지를 줬었기에


블로그에 내 고민을 남겨 두면 아마 나중에 새로운 그래프를 만들거나 더 나은 그래프를 만들려고 할 때 도움이 될 것 같아서


이 카테고리를 만들었다. 그리고 첫 글을 쓰는 시점 즈음에는 이제 오픈소스 그래프를 좀 봐야지 했다.


본디 처음부터 그것을 보면 절대 그 안에서 벗어날 수 없는 법이라...


깃헙에 올려졌었던 그래프와 오픈 소스 그래프와 다른 점은 한 패널에 여러개의 그래프를 붙일 수 있다는 점이다.


처음부터 다른 철학으로 쌓아올려지는 것이라 참고를 하지 않았었다. 코어 그래픽이라 딱히 복잡하진 않은데


싱글톤, 빌더, 옵저버 패턴 정도는 들어갔다.


나도 개발하느라 바빠서 잘 정리하지는 짧막한 글이라도 분명 후진에는 도움이 될거라 생각한다.



이번 편은 일기에 가깝다.




http://www.yes24.com/24/Goods/67478818
6개월에 천만 원 모으기

돈 모으고 싶은 2040 모여라!EBS 화제의 다큐 [호모이코노미쿠스]를 책으로 만나볼 기회천만 원 모으기에 도전한 사람들,어디서도 보지 못한 우리들의 리얼한 돈 이야기!학생 때는 치솟는 등록금에 허덕이고, 간신히 취업에 성공해도 월세와 밥값으로 떼이면 나면 돈 한 푼 남지 않는다. 결혼해도...

www.yes24.com구매하기





이런 책이 있다. 브런치는 작가 공간이니 아마 가까운 곳에 작가가 계실 듯. 나도 비판 판을 수 있겠지만, 이 책은 정말 내 취향이 아니다. 책 자체가 취향이 아니라. 뭔가 명확한 게 없다. 삼성전자 다니면 보너스 달에 천만 원 이상이 들어오니까 그냥 1달 만에 천만 원 모으기로 책을 낼 수도 있을 것이다. 이 작은 문장에서 말하듯, 누구에게 말하는지가 가장 중요한데 서민을 쥐어짜는 듯한 책은 아쉽기만 하다. 왜냐면 진짜 편하게 돈 버는 사람이 많기 때문에 너무 힘들게 목메지 않았으면 한다.




책은 잘 나간다. 그러나




http://www.yes24.com/24/goods/64340664?scode=032&OzSrank=1
초격차 (YES24 단독 리커버 특별판)

최근 10여 년간 탁월한 리더십으로 삼성전자를 이끈 실질적 수장 권오현 회장의 조직 경영 비결! 저자 권오현은 1985년 미국 삼성반도체연구소 연구원으로 처음 삼성에 입사해 삼성전자 회장 자리까지 오른 신화적 인물이다. 이 책은 삼성전자의 초격차 전략, 권오현 회장이 조직의 시스템을 만들고 진두지휘하면서 발휘한 리더십의 진면목을 명쾌하게 보여준다.『...

www.yes24.com구매하기





이런 책은 미친 듯이 잘 나간다. 이제 30만 부를 돌파했다. 초격차 나오자마자 사서 읽어봐야 한다고 했는데, 내 기우였는지는 몰라도 정말 많이 팔렸다.




이제 정말 시대가 변했다는 것을 느낀다.




https://www.youtube.com/watch?v=jZMdXqa_Vko&t=6s
일억 조회 수 가즈아~




건희 형 동영상 1200만 조회를 넘길 수는 없을 테고 그를 옹호하는 책이니 권오현은 스티브 잡스처럼 최고는 아니더라도 적당한 산 중턱을 찾아서 잘 안주한 것 같다.




정말 각 층마다 생각이 판이하게 다르다. 정말 빨간 안경을 끼면 세상이 빨갛게 보이고, 파란 안경을 끼면 파랗게 보이는 것 같다. 중도를 지킬 수 있는 사람은 이 시대에 혜민 스님이나 유시민 정도밖에 보이질 않는다. 공자를 왜 인을 최고의 덕목으로 삼았는지도 알 수 있다.




이 사실을 나만 알까? 아니다. 다른 사람도 알기 때문에 저런 판매율이 나오는 것이다.

내가 쓴 책에 비해면 수천 배 수만 배의 판매고다.




두 책의 판매고가 말하는 것은 권오현 진영의 옹호가 아니다. 못 사는 사람들의 효율적 목 졸라매기보다 결과론적인 사상을 지향하는 것도 아니다. 사람들의 생각을 일반화하고 싶지도 않다. 다만, 구글은 한국 IT 회사에 비해 중립적이며, 뉴스타파는 거대한 힘에 대응할 수 있는 거의 유일한 세력이라는 것. 그리고 사람들의 의식 수준이 높아서 꼭 존경해야 할 만한 이유를 만들지 않아도 된다는 것.




중소기업이 어느 정도 규모가 되면, 회장이나 사장이 꼭 자서전을 낸다. 아랫사람들이 자신을 존경할 이유를 만들어 주는 것이다. 





난 출판 제의 들어왔던 출판사의 대표님 몇 분을 만날 때마다 항상 서두에 말한 것이 있다. 출판은 돈이 안 되는 것을 알고 있습니다.라는 것이었다. 내가 있는 필드 자체가 국내 시장이 작아서 아무리 책을 많이 팔아도 돈이 안 되는 필드였다. 특이한 것은 출판사 사장님들은 출판 부수도 중요하지만 그것보다 좋은 책을 낸다는 생각이 더 강했다.




나는 선택해야 했다. 아는 것을 쉽게 쓰려면 배울 때보다 10배는 많은 고민을 해야 한다. 또 그것을 그림으로 풀거나 더욱더 재미있게 만들려면 또 10배의 고민을 해야 한다. 내가 일할 시간이 없다. 또 한 개발자가 어느 순간 바틀 렉에 걸리면 수년을 정체하는데 내가 수십 년간의 고민을 간단히 풀어 버리면 나 역시 경쟁력을 잃는다. 그래서 나는 기업 강의 제의를 받았을 때도 나가지 않았다. 물론, 지금도 받지만 나가지 않는다. 학생 상대만 했다. 같이 일하는 사람들이 자신이 아는 것은 말하지 않고 상대를 까내리기 바쁘고 하나 쉽게 가르쳐 주면 인터넷에서 열심히 공부해서 와서 원래 본인이 아는 것인 양 말하다가 내가 몇 개 함정을 파 놓으면 결국 거기 빠져서 평가는 못 받는 일을 경험한다. 그것도 매년. 올해도 그랬다.




책은 2권 출판했는데, 내가 비공개 책을 출판했던 이유는 진실을 이슈화 시키기 위해서였다. 그리고 그렇게 되었다.




다른 공개 책을 출판하려 했었던 이유는 5가지인데 모두 이루었다.




1. 책 복사 / 공유하는 문화 자체를 없애기보다 거기에 전혀 죄책감이 없는 벌레를 거르기 위함

2. 각기 다른 분야가 실제로 다르지 않은데 빨기 급급한 흡입충들이 만들어 놓은 이상한 문화를 없애려는 것. 가령 구글 빨기라던가? 같이 일한 지 7~8년은 되었던 것 같은데 내가 하고 싶은 말을 해 준 유투버가 있다. 유용한 정보도 많으니 꼭 보길.

https://youtu.be/zA-eLMDqxNg


그런데 아직도 구글~ 구글 하는 사람이 CTO를 하는 사람도 보고 있으니... 2년 동안 구글 드라이브 싱크 에러를 경험했던 나로서는 국소적 특정 부분이 아니라 브랜드 전체를 일반화하는 빨충을 보면 치가 떨린다. 일전에 적었던 글에서 학교의 무슨 과를 말하는 게 아니라. 아직도 그냥 학교만 말하는 그런 류라고 보면 되겠다. 믓튼, 이런 류의 개발자를 보면 큰 곳에서 할 수 있는 일과 작은 곳에서 할 수 있는 시스템 규모를 비교하는 것이 아니라 작은 모듈이나 라이브러리도 절대 만들 수 없다는 생각에 사로잡혀 있다. 나는 답답해왔고 답답하다 정말. 나는 구글이라는 회사를 좋아하는데 일반화는 정말 아닌 듯. 케바케, 사바사,... 정말 좋은 말들이 근래에 속담이나 구전처럼 계속해서 쓰이게 될까? 아인슈타인이 왜 특수 상대성 이론을 내고 일반 상대성 이론을 냈을까?

지금은 다르지만, 내가 공부하던 시절은 C, C++, C#, Obj-C 어셈블리, Android... 모두 다르다고 하던 시절이었는데... 그때 출판을 이후로 지금은 돌아 돌아 주변 상황이 많이 달라졌던 것을 느낀다.




3. 책 내고 대단한 개발자처럼 말하는 문화를 없애고 싶었다. 이것은 굳이 이름을 말하지 않아도 되겠지만 자신이 비난하던 회사로 다시 돌아간 케이스를 꼭 만들고 싶었는데. 이 부분은 정말 내 생각대로 IT 출판은 작가가 돈 벌기 힘들고 그렇게 플랫폼을 만들더라도 모래알 같은 개발자가 뭉칠 리 없다는 오랜 개발 경험을 토대로 적은 공격이 먹혀서 상당히 재미있었던 부분이었다. 지금은 확실히 개발을 잘하는 사람과 글을 잘 쓰는 사람은 구분이 있다는 인식이 널리 퍼진 것 같다.




4. 1년을 열심히 개발하면 후배에게 1시간 정도 말할게 생긴다. 나의 경우 8살 때부터 프로그래밍을 했으니 31시간 정도면 사실 밑천이 드러난다. 나머지는 나도 개발하면서 쓰는 일기 같은 것이다. 대학생 시절 학원 강사로 활동했는데 그때 다녔었던 학원에서 대단한 스킬을 배웠었다. 1시간 강의를 1주일로 늘여서 하는 방법이다. 이런 부분이 정말 문제 되는 것이 뭐냐면 1주일로 늘여서 더 좋을 것 같지만 오히려 1시간 동안 배울 정수를 전혀 배우지 못한다는 것이다. 그래서 명인의 1시간 강의가 수백~수천이 되는 경우도 있지만 그것을 맹목적으로 따라 하기 해서 강의료만 비싼 IT 강의가 참 많다. 이와 관련해서 비판한 적이 있었는데 해당 사업체가 반응을 보였었다. 그런데 비싸도 지금은 꽤 운영을 잘하긴 하더라. 인정할 건 인정해야지. 다양한 분야를 적는다고 했을 때 좋아하던 출판사는 없었으며, 사실 다양한 분야에 적을만한 게 별로 없었다. 다 거기서 거기라. 최근 임베디드 분야와 앱을 같이 컨설팅할 기회가 있었는데 해당 회사에서 서버도 가능한지 물었을 때 난 못한다고 했다. 최근에는 서버 사이드 프로그래밍에 바뀐 부분이 많아서 해당 지식을 습득하기엔 시간이 부족했다고. 관심은 두겠지만 못하는 게 맞다. 내과 의사가 외과 수술 못할까? 할 줄 안다. 그런데 하지 않는다. 비공개 책에서 밝혔지만 전문가란 전문가가 될 해당 분야를 위해 좋아하는 것을 포기하는 사람을 말한다. 그것을 말하고 싶었고, 또 이룬 것 같다. 천재 1%를 빼고는 모두 잘할 수 없다.




5. 비공개.




5번은 주변 사람을 좀 도와주기 위한 목적이었기 때문에 공개하기가 어렵겠다. 뭐, 언젠간 하겠지. 




내가 내 책의 독자들보다 높게 있을 권리는 전혀 없었다. 학생들 머리가 좋아서 1~2년 가르치면 나보다 더 잘했다. 물론, 내가 트러블 슈팅을 더 잘하겠지만, 원서로 꼭 공부를 하라는 말과 좋아하더라도 해당 분야가 아니면 리딩만 하지 writing 연습을 할 필요는 없고 몇가지 필요한 예제들만 해보라는 것. 그 외 공부해야할 쪽집게 공부을 받아들여 정말 미친듯이 공부했던 학생들이 많다. 3년~5년 넘어가며 데이터 구조, 알고리즘 등 병행해서 같이 잘했던 친구는 이미 청출어람이 되었다.




그렇게 모두 대기업으로 갔고, 중소기업에서 대기업으로 옮겼고, 사업을 하고 있다.




내 글을 독자도 다들 대단한 사람들이다. 이제 정말 내가 하고 싶은 말은 즐기라는 것인데 그것은 정말 글이나 책으로 표현하기가 힘든 것이다. 그래서 중급편을 써놓고도 계속 수정만 하고 있는 상황이다. 내가 수십년동안 답답해 왔던 생각들이 모두 바뀌고 있기 때문이다. 그에 맞춰서 모든 매거진과 글을 삭제하고 swift만 남겼다. 모 출판사의 사장님들의 말씀처럼 되게 되었다.




이제 그 분들의 말처럼 정말 독자층을 고려하고. 국소적인 부분만 해서 글을 써야 할 때가 온 것 같다고 생각했다. 그래서 2분야로 나누었다. 철학에서는 이미 선대 학문에서 모두 푼 수수께끼의 해답을 전하는 에디터가 되어 개발자의 삶의 질 향상을 돕고.




기술적 부분은 Swift로 풀자고. 물론, 다른 여러 언어와 곁들어서 말이다.(국밥 좋아한다고 평생 국밥만 먹을 수는 없지않나...)




이 글에서 말하고 싶은 것은 상대가 책을 썼다고 유명한 사람이라고 전혀 기죽지 않는 개발자가 되라는 뜻에서 적었다. 내가 취업반 강의 때 항상 하던 말이 있다. 면접 가서 떠는 사람들은 자기 부모님이 자랑스럽지 않은 사람이라고. 내 아버지가 최고고 내 어머니가 최고이고 내가 그 자식인데 왜 다른 사람 앞에서 떠냐고. 물론, 우황청심원은 항상 추천했다. 생각이 바뀐다고 몸이 바로 반응하는 것은 아니니.




이 글은 두서나 흐름이 개판인 글이지만, 말하기 힘들었던 속사정을 말했다는 것에서 의의가 큰 나의 글이다.




참고로 건희형 실제 동영상은 온통 붉은 색이지만. 건희형이 전적으로 잘못했다는 것은 아니다. 10개월 동안 모든 언론이 해당 영상 방영을 꺼려해서 뉴스타파가 잘 편집해서 조금만 내 보낸 것은 건희형 잘못이 아니라 잘못된 방향으로 잘 보이려는 작은 벽돌같은 존재의 생각들이 잘못한거지 건희형이 더 잘못했다는 것은 아니다.




어릴적부터 잘못된 친구를 사귀면 거기 물든다고 했는데, 건희형도 자기 주변의 이상한 놈들에게 물들었을 것 같다. 저커버그 같은 친구가 있었다면 좀 달랐을텐데... 나이차가 너무 나기도 하고. 직언을 하는 사람들은 죽임을 당하기 일쑤였던 지난 역사를 돌아보면 지금은 그 형태만 다를테니 새로운 캐릭터가 만들어질 것이다.




사람이 던질 돌을 개구리가 맞으면 죽는데 사람은 몰랐다고 하면 그만이긴 하다.

잘잘못을 따지면 한도 끝고 없고 아니라면, 또 쿨하게 넌 잘못없어 할 문제.




깨진 유리창 효과처럼 문재인이 없던 지난 시간을 보면 그런 작은 티끌이, 눈에 보이지도 않는 작은 균열이... 사회라는 큰 유리를 깨뜨릴 수도 있기도 하더라. 수많은 사람을 죽였던 박정희가 아직도 좋은 보스나 리더라 칭송되는 것을 보면 말이다. 어르신들께는 추억이겠지. 나 역시 죽음이 별로 두렵지 않은 한 사람으로 이해는 하지만 이제 시대는 바뀌었으니 사람 위에 사람 있고, 사람 밑에 사람 있다는 생각은 버리자.




그 누구도 그럴 권리는 없다. 그래서 클래스가 나뉘는 것이다.




어쩔 수 없다며 혼자 잘살고, 돈에 이어 거짓 명예 바라고 사람을 해고 해서 궁지에 몰고, 또 그 놈이 돌을 맞을 수 있도록 간언하는 졸부가 바로 지옥 클래스. 선량하게 서로 돕고 사는 사람들이 상위 클래스 되시겠다. 난 상위 클래스가 하위 클래스를 잡아먹는 것에는 적극 동의하는 논리를 가졌다. 그리고 다른 대부분의 선량한 사람들도 그랬으면 한다. 문재인 시대니까.

화장실에 맥북을 들고 와봤다. 치질이 걱정되지만 나름 괜찮은 듯.


4명의 청소부가 있고, 청소 반장을 뽑아야 하는 상황이 있다고 가정하자. 일반적인 생각으로는 가장 청소를 잘하는 사람, 즉 짧은 시간 안에 깨끗하게 하는 사람. 효율적으로 외부의 requirement를 잘 수행할 수 있는 사람. 수십 년 간 같이 일해왔으니 서로 잘 알기도 하지만, 한국 사회는 그중에 서울대 출신이 있으면 서울대 출신이 청소반장이 되게 되었있다.


이것이 바로 페이스북에 서울대/카이스트 학벌을 공개하는 이유 중 가장 큰 이유다. 다른 학교에서 학사를 받았다면 석사를 이쪽으로 받아서 모교는 공개하지 않고 석사만 공개하는 이유고, 페북뿐 아니라 출판사 업계도 마찬가지다. 


스타트업에서도 국내 유명, 아니 최고로 유명한 대표가 서울대/카이스트를 수행원으로 쓰는 이유에 대해 말했었는데 위의 이유와 다르지 않았다. 망해도 서울대/카이스트 출신의 박사로 구성된 팀이라면 이유가 된다는 말이다.


난 사실 이해한다. 망한 국가에서 가장 먼저 세워야 하는 것은 학교인데. 병원이 아니라. 나 같은 많은 실무자들도 딱히 명예도 신경 쓰지 않고 학교로 많은 것을 돌려보내려고 하고 있기 때문이다. 그게 돈이던 지식이던 말이다. 그래서 우리 자녀들이 멋진 이론가가 되고 그런 하나의 이론이 수백만 개의 실무를 없애고 더 나은 무엇인가를 만들어서 인류를 진보시키길 바라고 있기 때문이다.


그래서 학교가 대단해진다. 아직 IT 분야는 그러지 못했으나 그렇게 될 것이고, 그렇게 만들 것이다. 그래서 학벌이 더욱 중요해진다. 어제 마약왕을 혼자 관람하러 갔었는데, 정의로운 검사가 여의치 않자 먼저 나서서 진입을 시도하더라. 번지르르한 무늬를 가졌다면 오히려 더 나서서 뭔가를 해야 하는데 무늬 자랑만 하는 것은 참 답답할 노릇이고, 그런 화려면 무늬에 빠져 헤어 나오지 못하는 사회도 답답하다.




세상에는 다양한 문화가 존재하며 그 나라 국민의 생각의 방향까지도 좌우하는 것 같다. 미국 사람에게 물은 적이 있다. 한국에 짝퉁 명품 가방을 사 가고 싶은데 혹시 파는 데 있냐고. 그걸 왜 찾는지 되묻던 지인이 있었는데. 내가 쓰고 싶어서 그렇다고 했다. 그때 그의 말이 나의 머리를 땅 때렸었다. 


자기가 만족하려고 명품을 사는 거고 자기가 쓸 건데 왜 짝퉁을 사? 


내가 만족하는 것과 남에게 보이려는 것. 선진국은 선진국이라는 생각이 들었다. 그리고 대부분이 이런 생각이었는데 나라의 국민이 이런 의식을 가지려면 정말 수십 년이 필요하다는 생각을 하게 된다.


또 한, 하버드 중퇴가 의미하는 바를 미국 사람과 한국 사람은 다르게 이해하고 있는 것 같았다. 우리나라는 뭔가를 하려면 일단 서울대 학사, 석사, 박사를 하거나 해외 유학을 다녀와서 모두 버리고 새로 시작해야 한다. 정치를 잘하거나 노래를 잘하는 것이 정치가를 평가하거나 노래를 평가하는 방식이 아니다. 바로 학벌이다. 난 이런 시대 상황을 잘 알기에 서울대 출신 음악가들은 항상 그것을 밝히려고 노력한다는 것도 잘 알고 있다.


그런데 신기한 것은 그들이 그런 문화를 만드는 것이 아니라는 것이다. 오히려 죽어라 노력해도 서울대 문턱에 다가갈 수 없었던 짝퉁이 명품을 더 떠벌리고 다닌다는 것도 알게 되었다.


그리고 이것을 알게 된 지 꽤 오래되었다.


그래서 지인을 떠나 사람이 아니면 보지 않는다. 후진국에서 선진국으로 가는데 오랜 시간이 걸리 듯 사람이 바뀌는데 30~40년 정도 걸린다. 이것은 내가 알코올 중독자 지인을 오래도록 알아서 적은 숫자인데, 나이가 들어 더 이상 마실 수 없게 되어 변하는 경우도 있기 때문에 사실 숫자라는 것은 의미가 없을지도 모른다. 즉, 기간은 관계없이 정말로 쇼킹한 사건(영화 "쏘우")이 아니면 바뀌지 않는다는 것이다.


내 주변에서 세상을 바꾸자고 말하는 사람이 꽤 많았는데 능력과 소신, 철학이 참 중요한 이유는 그들의 능력이 정말 형편없었기 때문이다. 이런 생각에서 사람의 클래스가 나뉜다. 이 생각은 사실 나 혼자 하는 것이 아니다. 대부분의 사람이 그렇다. 우리나라 대통령의 학벌을 보면 쉽게 알 수 있다. 꼭 서울대/카이스트/하버드가 대통령이 되는 것은 아니다.



최근 이빨이 다 썩었는데 계속 방치하라는 처방을 내려서 고생을 많이 하고 서울대 혹은 유학파 치과로 옮겨서 제대로 치료한 지인의 아이를 보며 내가 한 생각은. 역시 서울대!라는 생각이 아니라. 치과 기술은 서울대가 확실히 좋구나 라는 생각이었다. 아이가 수학을 너무너무 잘해서 세계로 뻗어나갈 것 같으면, 하버드보다 프린스턴으로 보내는 게 지식인의 판단이 아닐까? 해본다.


당신이 내 위에 있을 권리, 그리고 내가 당신 위에 있을 권리에 대해서 몇 가지 짚어 보았는데 사실 공개하지 않은 많은 에피소드를 정리될 때마다 올리려고 하고 있다.


지금은 기부를 많이 한 사람. 액수보다 자신이 가진 %에 비례해서. 이 존경스럽고 내 위에 있을 권리가 있다고 생각한다. 최근 서울대에 우수하게 입학 해 그 안에서도 두각을 나타내서 대치동으로 빠졌던 지인이. 나이가 너무 들어 나오려고 했는데 커리어가 꼬여, 일반 IT 회사에서 4천 초반에 배우면서 일하려다 그만둔 사건이 있었다. 그런데 가르치는 것이 좋고 아이들이 좋아 미래가 불투명 하지만 그냥 그 일을 이어나가는 것. 그것은 서울대 맞는 것 같다. 서울대 철학과를 나오긴 했지만 택시 운전사 하면서 자신만의 철학의 깊이가 이미 공자 수준이 된 지인도 정말 내가 존경할 만한 사람이다.


그래서 제발... 쓸데없이 졸부 짓으로 내 앞에서 가오 잡지 말았으면 한다. 서울 아파트 몇 채 값을 기부한 기인이 있는데 그가 가진 재산이 대부분이었다. 가령 삼성전자가 1조를 기부해도 매출의 1%밖에 안되니까 별로 고마워할 것은 아니다. 물론, 100억 버는 회사가 30억 기부하면 어마어마한 것이지. 그 지인은 한국방송대학교에 수십 년간 학생회를 하고 있다. 그, 지인이 말했다. 포르셰는 강남에서 졸부 차로 통한다고. 꼭 애매하게 돈 벌면 포르셰를 산다고 한다. 언젠가 정의로운 사회가 되면, 대부의 마지막 장면에 등장하게 될 포르셰.



사실, 이런 류의 글은 내가 일전에 썼었던 글과 대부분 비슷한 것이다. 다만, 2018년도 이후 글은 웬만하면 지우지 않고 유지하려고 한다. 문재인이 대통령이 되고 난 뒤부터는 다양성이 확실히 존중되는 사회가 된 것 같다.


노무현, 문재인 일기당천이다. 정말.


반대로 말하면 내가 당신 위에 있을 권리.

군림할 권리.

사람과 사람 사이의 클래스를 나누고 평등하지 않다는 것을 천명할 논리.


분명한 경험으로 말하자면 이것은 나누어진 머릿속에 존재하는 망상이다. 우리 주변에는 수많은 사람이 있다. 가끔 주변의 성범죄자를 알리는 편지가 집에 가끔 날아오면 

https://sexoffender.go.kr/indexN.nsc

에서 여러 사람을 조회해 본다. 강석진 서울대 교수는 몇 년 전 내가 열심히 조회할 때만 해도 조회가 되지 않아서 관련해서 글을 올렸었던 것 같다. 이렇게 다양한 사람이 있는데 카페에 있으면, 맞은편에 않은 사람이


성범죄자인지 아닌지 알 길은 없다.


최근 신성일의 책을 주문하고 강석진의 책을 대부분 샀었다. 지인들을 의아해했다. 앞으로 가족도 "지인"이라고 통칭하려 한다. 마누라 두고 바란 핀 걸 대단하다고 썼다는 자서전을 왜 구입했으며, 성범죄자 책을 왜 샀냐는 뜻이었다. 이병헌이 비슷한 일로 시끄러웠는데 내부자들 영화에서 보여준 연기를 보고 잠잠해진 것을 경험해 볼 때 나는 지인 포함한 대중들이 사람을 볼 때 제대로 뭔가를 볼 줄 모르는 것을 확실히 알게 되었다. 그래서 그나마 좀 더 젊을 때 적어두고 10년 20년이 흘러 더 경험을 많이 하게 되었을 때 내 생각이 변했는지 알아보기 위해 여기 남겨둔다. 물론, 국내 서비스는 언제 갑자기(6개월 공지후 맘대로 폐쇄) 닫을지 모르니 내 블로그에도 언젠가 옮기겠지.


1. 밥을 짓는 것과 비교해서 생각해보자.


사람을 아껴주다가 갑자기 나쁘게 하는 경우를 어떻게 판단해야 할 때 50%는 밥 짓는 경우를 생각해 보면 된다. 밥을 다 짓고 그 위에 음식 쓰레기 국물을 버릴 생각이었다고 하자. 밥을 다 짓는 동안 주변 사람들은 생각한다. 저 사람이 손수 나서서 우리에게 밥을 주기 위해 혼자서 고생하고 있다고. 그리고 다 짓고 나면 그 위에 음식 쓰레기를 부어 밥을 못 먹게 만든다. 


2. 9번 잘해주다가 1번 못해주는 경우, 9번 못하다 1번 잘하는 경우를 생각하자.


사람을 아껴주다가 갑자기 나쁘게 하는 경우를 어떻게 판단해야 할 때 나머지 50%는 통계적으로 생각하면 된다. 항상 밥을 잘해주는 사람이 있었다. 배가 몹시 고픈데 갑자기 그 사람이 밥을 실패하여 제시간에 밥을 못 먹게 되었다. 그때 그 사람을 나쁘게 생각하는 것이 일반적이라는 사실을 최근 알게 되었다. 그리고 평소 밥이란 것을 지어주지도 않다가 한번 정도 지어주면 앞에 사람에 비해 좋은 사람이라고 생각하는 것도 알게 되었다.


1번과 2번을 밥이라는 유순한 대상에 빗대어 설명했으나, 살인자, 납치범, 딸을 강간하는 아버지 등 여러 경우에 빗대어 설명할 수 있고 이런 류의 나쁜 사람을 많이 보는 지인의 경우(그래서 난 경찰을 싫어한다. 이런 류의 사람을 계속 상대해야 하는데 마음이 아파서)를 보면 어찌 보면 우리 주변에서 쉽게 일어날 수도 있고 나쁜 놈은 하루 한번 정도 거리에서 마주쳤을 거라는 생각을 하게 된다.


강석진의 수학 능력과 성범행의 죄는 벌개다. 신성일이 이룬 업적과 그가 바람피운 것도 별개다. 오히려 난 강석진처럼 잡히는 사람, 신성일처럼 솔직하게 말하는 사람이 그렇지 않은 사람보다 낫다는 판단이다. 정말 교묘해서 평생 잡히지 않는 성범죄자도 있고, 나쁜 짓 해놓고 역사에는 당당하게 이름을 올렸던 사람이 얼마나 많을까? 그리고 최근에는 성범죄로 잡혔던 공인이 자살하는 것을 보며 정말 이 사회의 풍토가 문제였다는 생각도 들었다.


왜냐면 나름 정의를 위해 나의 많은 것을 희생했는데, 

https://www.youtube.com/watch?v=ZPeAIvpRqMg&t=525s

 


나쁜 것은 오히려 그들이 아니지 않냐는 생각이 들기 시작했다. 나이가 들면 좌에서 슬슬 우로 간다고 하지만. 난 여전히 극좌의 성격과 행동력을 가지고 오히려 중립이 되어 가는 것을 볼 때. 극좌랑 극우랑 붙어 있지도 않고, 중립이 나쁜 것도 아니라는 생각이 든다. 문재인 덕분에 세상이 중간이 죄어 좌가 오히려 중립의 세상이 아니라서 그럴지도 모르겠다.


남은 시간은 가족과 보내야 해서 수편으로 나누고 1편이라 제목을 고친 후 일단 올려야겠다.

+ Recent posts