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

상냥함

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

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

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

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

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

Categories
Daily

직업

몇년이 지난 어느 봄날 내가 내 직업을 조금도 사랑하지 않는다는 사실을 깨달았다. 별로 좋아하지 않는다거나, 그냥 하는거죠 뭐 ㅎㅎ 정도가 아니라 혐오하고 있었다. 적극적인 거부다.

존나 싫어진지 한참이 지났는데도 이를 바로 그만두지 않고 돈벌기 겁나 쉽다는 이유로 16년이나 해왔다는 점이 가장 부끄럽다. 하지만 이제라도 끝난 게 어디인가. 황장호는 프로그래밍이라는 직업을 때려쳤다.

하하하