Categories
Daily

명리학 소개

블로그에 새로운 주제로 글을 써 본다. 작년 한 해는 개발 업무로 얼룩진 한 해였다. 이게 다 Flutter 때문이다. Flutter에 익숙해지면서 개발속도가 너무 빨라졌고, 그러다보니 자신감이 커져서 어처구니 없는 요구사항과 터무니 없는 일정을 다 받아주는 식으로 한 해를 보냈다. Flutter가 좋은 건지 내가 갑자기 똑똑해진 건지는 잘 모르겠지만 개발 관련하여 사용하는 시간이 현저하게 줄었다. 짧은 시간에 결과물이 나오니 겸손하게 글을 써 봐도 재수없는 자랑글이 되고, 시간을 적게 쓰다보니 머리에 개발 관련한 찌꺼기도 남지 않아 글을 쓸 동기가 생기지 않았다. 개발 관련한 글은 앞으로도 거의 안 쓸 것 같다.

명리학을 건드린지 4년이 넘어 이제 좀 익숙해진 느낌이다. 이제 사전 정보 없이 만나 본 적 없는 사람의 생일만 가지고도 그 사람의 큰 경향성은 맞출 수 있게 됐다. 그렇게 명리에 신뢰가 생겼고, 명리학은 개발자에게 유익한 학문이라고 생각하기에 소개한다.

우선 이러한 성격의 글이 익숙하지 않을 여러분들을 위해 사주 안믿는 흔한 패턴을 정리한다.

1) 결정론에 대한 거부감

자존심과 독립심이 높은 사람은 사주의 존재 자체를 불편해 한다. 일단 대중에게 알려진 사주의 정밀도와 실제 정밀도는 서로 아무 상관이 없을 정도로 다르다. 한 사람에게 반복적으로 나타나는 강력한 경향성 정도로 봐야 한다. 스케일이 3만배 커진 MBTI 정도로 보는 것이 좋겠다. 이런 분들에게는 사주를 안봐주는 게 좋다. 사주 무시하고 살던대로 살면 괜찮은데, 팔자를 들은 뒤 이에 저항하려는 경향도 큰 그룹이기 때문이다. 본인 사주에 의도적으로 저항하면 성공 여부와 무관하게 에너지 효율이 떨어져 그 사람 인생에 해가 된다. 승자 없는 게임은 해롭다.

2) 귀에 걸면 귀걸이 코에 걸면 코걸이로 돈 뜯어가는 거 아니냐

이렇게 사주 봐주시는 분이 많으므로 딱히 할 말은 없다. 고객이 서비스 품질을 직접 평가하기 어려운 산업에는 항상 사기꾼이 많다. 다행히 요새는 유튜브에 내공 탄탄한 명리학자분들도 무료 강의를 많이 하고 있고, 구독자수나 조회수도 꾸준한 편이라 안좋은 인식은 곧 없어질 것 같다. 코딩 조기교육처럼 명리 조기교육이 유행하면 좋겠다.

3) 대한민국 2020년 기준 하루 평균 출생자 수가 800여명인데, 그들의 운명이 같을리가 없다.

매 2시간마다 사주가 같은 사람이 대한민국에만 평균 65명씩 태어나는데 그들의 운명이 같을리 없다. 위에서 말했듯이 사주를 운명이라고 생각하면 안된다. 그럼 자연스럽게 개운을 하려들게 되고, 품질 평가가 훨씬 어려운 마켓(부적, 굿)에 들어가 사기를 당할 확률이 훨씬 높아진다.

같은 팔자를 지닌 65명은 사주에 의한 경향성이 완전히 동일하다. 선천적 습관이라고 보면 좋다. 부모가 가정교육을 빡세게 돌려 아이의 특정 습관을 누르려 들면 어느 정도 교정되어 다른 삶을 살게 된다. 사주 균형이 잘 맞을수록 교정이 쉽다. 각성도가 높은 상태에서는 사주의 영향을 피할 수 있다. 하지만 항상 깨어있는 것은 극악의 난이도라 몸과 마음이 낡아가는 시점부터 리소스 부족으로 개선을 포기하고 습관대로 살기 시작한다. 그래서 30대중반이 넘은 내담자에게 사주풀이를 해주면 대부분 맞다며 신기해 하는 분들이 많다. 그 나이쯤 되면 스스로를 있는 그대로 받아 들이게 되나보다.

명리학이 개발자에게 유익하다고 생각한 이유는 아래와 같다.

주요 심볼 수십여개 (10천간, 12지지, 상생상극, 12운성) 에 대한 학습이 끝난 뒤에는 건조한 논리와 계산뿐이다. 사주팔자에는 꿈과 희망과 변수가 거의 없다. 코에 걸면 코걸이 귀에 걸면 귀걸이 그런 거 없다. 너무 안맞는다고 느껴지면 본인의 학습이 부족했거나 내담자의 생년월일시가 틀린 경우 뿐이다. 그런데 이 정보들이 잘게 조각나 있어서 종합이 정말 어렵다. 서로 관련이 없어 보이는 3개의 정보를 하나의 의미있는 메시지로 추상화 해야 한다고 쳐보자. 사주팔자에는 3개의 정보만 줄 뿐 해석은 존재하지 않는다. 해석은 사람이 붙이는 거라 신뢰성도 없고 시대에 따라 계속 달라진다. 타인의 해석을 보지 않고 스스로 해석을 만들면 되지 않나 싶겠지만 본인도 시대와 함께 바뀌므로 해석은 애초에 수명이 짧다. 그런데 그 해석을 정확하게 만들려면 전전두엽을 매번 혹사해야 한다. 이 지점이 보통 사람들에게는 불편할 지도 모르지만 개발자들처럼 두뇌 혹사를 즐기는 사람이라면 좋아할 것이라 믿는다. 개발할 때의 즐거움과 비슷한 그 느낌이 여기에도 있다.

개발자들은 정신노동이 가혹하여 외부환경이 바뀌었을 때 대처할만한 에너지를 비축해두지 못하는 경우가 비일비재하다. 최근에 macOS BigSur + Silicon 조합에서 화면 밝기 조정하는 IOService 이름이 바뀌었는데 수개월이 지나도록 아무도 모른다. macOS 10.15 까지만해도 APNS sandbox가 잘 동작했는데 11에서는 개발모드에서 푸시가 안온다. 에러콜백도 안 불러준다. 릴리즈 빌드로 서명하면 잘 된다. 우리는 플랫폼 개발사에게 지속적으로 엿을 먹는다. 그런데 명리가 의존하는 플랫폼은 천체라 변동이 없다. 한 번 공부해서 외우고 익숙해지면 화성이 박살나는 등의 우주적 재앙이 일어나지 않는 한 다시 공부할 필요가 없다.

마지막은 내게 가장 유익한 부분이다. 나는 성질이 더러워 개발자들과는 협업이 불가하고 임원, PM, PO, 디자이너, 기획자와 직접 소통해야 해서 의사소통 비용이 높은 편인데, 그들의 팔자를 보고 나면 그분과 어떤 방식으로 대화를 나누어야 효율이 좋은지 바로 파악할 수 있다. 사주팔자에 익숙해지면 어떤 사람을 볼 때 고칠 수 없는 것, 고칠 수 있는 것 구분을 3분만에 할 수 있다. 같이 지낸 2년내내 멀쩡했는데 이번 달부터 갑자기 맛이 간 이유를 묻지 않고 분석할 수 있다. 이게 익숙해지면 이녀석이 올 가을에 2주간 맛이 갈 것을 알고 미리 포상휴가를 계획할 수도 있다. 미팅 중 탁상공론을 주도하는 빌런이 나타났다고 판단했을 때, 그 사람의 재성 여부에 따라 이를 바로 커트 할 지, 더 들어야 할 지 결정하는데 도움이 되는 정보를 주기도 한다. 단, 정확도가 높아질수록 편견에 사로 잡혀 운명론을 구체화 하지 않도록 항상 주의해야 한다.

만약 당신이 직접 묻기 보다 RTFM에 익숙한 분이라면 주의해야 할 내용이 있다. 좋은 교재와 강의를 완전히 숙지했다 하더라도 임상을 게을리 하면 안된다. 왜냐하면 어떤 선생님도 본인 사주를 벗어날 수 없기 때문이다. 경제 관념이 강하신 분은 강의를 하는 도중 전달하고자 하는 주제의 실용성을 강조하느라 다른 부분을 자기도 모르게 누락할 것이다. 나같은 사람이 강의를 하면 가벼운 주제도 깊게 들어가며 원론을 다룰 것이고, 정작 많은 사람들이 중요시하는 인간관계나 경제성에 대해서는 니들이 알아서 써먹으라며 넘어갈 확률이 높다. 그들의 주관이 나쁜 것은 아니지만 주관과 객관을 분리하기 어려운 단계에서는 학습에 잡음이 껴서 난해해 질 수 있다. 이를 방지하기 위해 친구나 지인들 위주로 최소 100명정도 사주를 봐주며 훈련 할 것을 추천한다. 그러다보면 아리송 했던 자료조각들이 유의미한 정보로 변화하며 숙련도가 빠르게 오를 것이다.

Categories
Development

Declarative UI 찬양

Flutter 쓰기 시작한지 1년이 되간다. 초반 두세달은 Declarative UI 적응하고 Dart 적응하고 Flutter 적응하느라 러닝커브가 심했지만 익숙해질수록 고통없이 빠르게 화면을 찍어낼 수 있게됐다. 곰곰히 생각해보니 이건 숙련도의 문제라기보다 선언적 UI의 긍정적 부수효과인 거였다.

Kotlin Anko 쓸때도 왜 이렇게 기분이 좋은지 잘 몰랐다. 그저 이름과 발음이 내 취향이라 그런줄로만 알았는데 지나고나서 생각해보니 비슷한 효과였다.

이름을 짓느라 시간을 허비하지 않아도 된다!

대충 지은 이름은 그 존재를 인식하는 것만으로도 굉장히 불쾌한데, 요즘처럼 가져다 써야하는 라이브러리가 백만개쯤 되면 얘네들 때문에라도 자꾸 이름 짓기를 강요받게 되고, 그러다보면 서로 어울리지 않는 애들이 모여 collocation 엉망진창 되고 코드를 읽는자도 그에 동화되서 머리속이 더러워진다. 이름 지은 애들끼리 하이러키 똥망되고 족보 꼬이면 코드 볼 때마다 고통받는 것이다. 논리적으로 서로 딱히 연결될 이유가 없음에도 불구하고 레퍼런스가 필요하다는 이유로 불필요한 이름 짓느라 얼마나 괴로웠는지 말도 못한다.

불필요한 참조를 만들지 않아도 되는 모든 것들에게 감사한다. 파이썬의 list comprehension 도 그래서 행복하고, Rx도 구독 핸들러만 들고 있으면 독립된 다른 공간에서 복작복작해서 최종 결과물만 콜백으로 주니까 나는 이름을 안지어도 되는 거다. 백앤드면 하나하나 다 의미있는 경우가 많겠지만 내가 왜 padding wrapper 따위한테 이름을 지어줘야하냔말이다. 키스토로크 하나하나가 아깝다.

선언적 UI 트리내에 동적으로 변경해야하는 부분이 있으면 React.createRef 같은 것을 쓰거나 잦은 화면갱신를 피하기 위해 별도 state를 가지는 컴포넌트를 새로 만들어야하는데 아니 변수명 짓기도 싫다는데 클래스명을 지으란 말입니까. 물론 어떤 화면에서 잦게 변경되는 부분이 있다면 논리적으로 별개의 것일 확률이 높고 그렇다면 분리하는게 맞지만 살다보면 안그런 경우도 많은 것이다. 이런 상황에서 이름 안짓고 성능도 떨어지지 말라며 BLoC 가 또 나를 구원해줬다.

추적해야할 레퍼런스가 적고 생존주기가 짧을수록 행복해진다. 다음 글에서는 이 글을 까는 글을 써야겠다.

Categories
Daily

5년만에 쓰는 글

흥미를 잃어버렸던 프로그래밍에 관심이 다시 생겨 자연스레 블로그로 돌아왔다. 나는 개발이 대단히 비인간적인 일이라고 생각한다. 그동안 일을 하면서 자연스러운 점은 별로 찾아볼 수 없었다. 그나마 이제는 개발자의 총량이 늘어나서, 개발을 어떤 매개체나 소재로만 쓰며 깨작거려도 남들에게 부끄러움이 없을 뿐이다.

이렇게 말을 하면서도 다시 블로그에 글을 쓰고 있는 것은 비인간적이 되었기 때문이다. 지난 5년동안은 개발과 무관한 것들에 집중하며 어렸을 때 놓친 것들을 복구하는 시간이었다. 이제 그만 복구해도 될 것 같으니 다시 평소대로 살아볼까 한다.

2017.4 부터 2019.10 까지는 내 캐릭터와 전혀 어울려보이지 않는 카카오를 다녔다. 평소와 다르게 2년반이나 다녔다고 놀랄 것 같아 미리 말씀드리면 그동안 팀을 두번이나 이동한거라 한 회사 오래 다니지 못하는 고질병이 없어진 것은 아니다. 내가 성질이 급해서 그렇지 그래도 다녀봤던 회사 중에는 제일 괜찮았다. 사람수가 하도 많으니 괴상한 놈 한두명쯤 있어도 눈에 거슬리지 않는 게 가장 좋았다. 그리고 편견이겠지만 큰 회사 다니는 애들은 극한 경험이 별로 없어서 그런지 뭔지 대체적으로 사람들이 평범하고 해롭지 않아서 사람 구경하는 재미가 솔솔했다. 거대한 유치원 같았다. 매우 인간적인 회사였고 그래서 개발과는 거리가 좀 멀어보이는 회사라고 느꼈다. 하지만 영리회사는 돈을 버는 일을 하며 개발을 도구로만 써야만 한다. 그런면에서 골수개발자에게는 안맞을지 몰라도 올바르게 경영하고 있는 회사라고 생각한다. 나는 그 회사 경영진이 돈을 버는데 필요하다고 주장하는 노동력을 제공하면 그만이다.

오랜만에 블로그에 접속하니 https 아니라고 크롬이 주소창 앞에 “안전하지 않음” 표시를 했다. 기분이 나빠 인증서를 사서 달고보니 TLS 1.2 이상을 지원하지 않으면 요즘 브라우저들이 “안전하지 않음” 이라는 것이다. 해서 nginx 다시 빌드 하다보니 http2 지원도 넣고 싶어져서 그것도 넣었다. 그러고나니 워드프레스 테마가 맘에 안들어서 테마도 바꿨는데 한글 서체가 맘에 안들어서 나눔바른고딕 woff, woff2 뽑아서 서체도 바꿨다. 수많은 스패머들 덕에 더럽혀진 디비도 스크립트 하나 만들어 깨끗히 청소했다.

이렇게까지 하고나니 블로그에 글을 쓰기가 쉬워졌다. 앞으로 이곳에는 다양한 주제에 대해 평소처럼 두서없이 글을 쓸텐데 요새 개발에 빠져있으니 개발에 대한 이야기가 많을 것 같다.

Categories
Daily Life

의지력

의지력은 근육과 비슷한 면이 많아서 한 번 힘을 발휘한 뒤에는 일시적으로라도 꼭 휴식을 취해야 회복이 되는 것만 같다. 웨이트를 할 때 세트간 휴식시간을 심하게 줄였거나 기구간 휴식시간을 줄였을 때 어떤 피해를 입는지 생각해보면 쉬울 것 같다. 평소에는 딴 생각하면서도 가지고 놀듯이 쉽게 할 수 있었던 일이 갑자기 열라 어려운 일로 둔갑하는 것이다.

오늘은 담배를 안피운지 30일째가 되는 날이다. 금연하신 분들은 잘 알겠지만 한달쯤되면 니코틴이랑은 별 상관없는 상태가 된다. 펴도 되고 안펴도 불편한 것은 없지만 그저 안피기로 결심해야한다. 이것은 금단증상을 견뎌내는 것보다 더 어려운 일이라고 생각하는데 왜냐하면 저항할 대상이 없기 때문이다. 외부로부터 공격이 들어올 때 이를 방어하는 과정은, 에너지는 많이 들지언정 동기부여의 어려움은 전혀 없다. 공격이 들어오는 지점을 파악하고 분석하여 방어해내면 되는 것이다. 공격하는 근원지를 분석하여 역공격하기도 가능하고 어떻게든 성취감이라도 얻을 수 있다. 그런데 그저 안피우기로 결심하는 것은 에너지는 적게 들겠지만 평생 수행해야 한다는 점에서 대단히 성가신 작업이 되는 것이다. 그러니 담배를 피우지 않기로 결심한 사람들은 금연을 위해 자신의 의지력의 2% 정도는 항상 여분으로 남겨둬야만 한다.

평소에 들 수 있는 무게를 초과하여 강도높은 훈련을 했을 때 지연성 근육통으로 고생하는 것과 똑같은 일이 의지력에서도 일어날 수 있다. 평소보다 자신을 많이 억압(will not)했거나 푸시(will)하면, 그 이후에는 자연스럽게 의지력에 반하는 행동이 따라오는 것 같다. 의지력에 반하는 그 행동에 욕망을 가졌다기보다는 반작용에 가까운 것이다.

의지력이 떨어져있을 때 꼭 해야하는 것은 휴식과 함께 스스로를 적당히 풀어놓는 일이지, 자기비하나 스스로를 옭아매어 남아있지도 않은 의지력을 쥐어 짜내며 스스로를 괴롭히는 것이 아니다. 지연성 근육통에 시달릴 때 내가 하는 것은 “운동으로 생긴 문제는 운동으로 풀어야해!” 하는 패기넘치는 짓이 아니라 파열된 근섬유들이 새 것으로 교체될 수 있게 양질의 단백질(조리가 필요없고 보관이 편한 아몬드라거나)을 먹고 물을 충분히 마시고 근섬유들이 새로 자랄 수 있게 혈액순환 적당히 될 정도의 저강도 걷기운동이다.

서두르지 말고 그러나 쉬지 말고

Categories
Daily Life

상냥함

사회에서 사람들에게 내가 시전하는 상냥함이나 배려에는 아무런 의미도 없다. 기저핵이 모든 것을 관장한다. 전전두엽을 활성화했다면 상대방을 활용하려는 것이다. 상대방을 활용한다니 너무 부정적으로 보는 것이 아니냐- 할 수 있는데 곰곰히 생각해보면 다들 그렇게 살도록 교육받았다. 어이없게도 그렇게 교육해놓고 윤리적 도덕적으로 나쁜 행동으로 평가되기도 하지만 너무나 만연해있으므로 언급을 피할만한 가치는 없다.

그런데 기저핵이 상냥함을 보였다고해도 결과적으로는 상대방을 속인 경우가 되기도 한다. 전전두엽이 상냥함을 시전했을때는 그저 그 의도가 명확히 계획되고 통제되었을뿐이지, 결과상의 차이는 전혀 없는 것이다. 어찌보면 강한 의지와 의도를 가졌을때는 상대방에게 그 의도마저도 투명하게 전달되어 아무도 피해자가 없는 상황이 될 수도 있는 것이다. 기저핵이 보인 상냥함은 상대방을 때로 의아하게 한다. 이유를 알 수 없기도 하지만 경험적으로 상냥함을 활용하고자 하는 의도로 해석하는 사람들도 있는데 그러한 이용 맥락이 없는 상태에서 상냥함이 나타나면 당황스러울만도 하지 않겠는가.

변연계가 상냥함을 꺼냈다면 즐겁게 데이트를 하면 된다.

어느 부분이 시전했는지와 무관하게 상냥함은 오만하다. 상냥함은 명백한 거짓인데, 이 거짓은 상대방을 기만하고자 했다기보다는 내가 상대에게 진실을 보이면 그는 이를 견뎌내지 못할 약자이거나 그만큼 성숙하지 못한 사람일거라는 추측에서 왔을 확률이 더 높기 때문이다. 그래서 진실이 담긴 상냥함이 가식적인 상냥함보다 훨씬 더 기분 나쁠 때가 있는 것이다.

서로 시간낭비는 하지 말자는 의미에서.