Post

개발자 글귀_1

이 게시글의 내용은 전부 제 사견으로 이루어진 글입니다.

  • 221227

    221227.jpg

    “코드에서와 마찬가지로 현실에서도 역시 제어할 수 없는 것에 대한 의존성을 낮추고 제어할 수 있는 것을 선택하면 쉽게 흔들리지 않는 견고한 생활을 지킬 수 있습니다.”

    우리는 소프트웨어를 만들 때 어떤 클래스, 인터페이스 등을 매개변수로 이용하여 의존성 주입 설계를 할 지 고민한다.

    매개변수로 어떤 인자를 선택할 지에 대해 고민할 때, 나는 과연 인자의 제어 가능성에 대해 고민해 본 적이 있었나?

    내가 제어할 수 없으면, 불가피한 변화에 대응할 수 없게 된다. 그렇게 되면 프로그램은 무용지물이 되어 버린다.

    따라서 외부의 영향을 덜 받고 직접 제어할 수 있는 인자를 이용하는 것이 프로그램의 견고성을 지킬 수 있게 한다.

    이것은 현실세계에서도 똑같이 적용된다.

    때로 우리는 너무 많은 고민에 잠식된다. 그 고민들은 우리의 정상적인 사고를 방해한다.

    지금 내가 어떤 것을 제어할 수 있고 제어할 수 없는 지 판단해야 한다. 제어할 수 없는 것들에 대한 고민을 매듭짓지 못하면, 결국 상처만 남게 된다.

    내가 손쓸 수 없는 것들에 대해서, 관점과 태도를 달리하여 무의식으로 내보내는 연습이 필요하다.

    연습을 반복함으로써 제어할 수 있는 것들에 대한 고민만 남겨 내 앞에 놓인 상황을 내 손으로 바꿀 수 있게 해야겠다.

  • 221228

    221228.jpg

    “행복한 인생을 살 수 있는 방법은 단 하나뿐이다. 좋아하는 일을 하는 것. 그러기 위해 행동하자. 지금까지 자신을 불행하게 했던 일들을 당장 그만두고, 행복한 인생을 살기 위해 움직이자.”

    하기 싫은 일은 최대한 버리고 내가 하고 싶은 것만 하면서 살기에도 부족한 세상이라서, 하고 싶은 것만 하며 살자고 다짐했던 내 마음가짐과 일맥상통하는 문장이다.

    취미가 직업이 되면 스트레스가 된다는 격언이 있다. 스트레스를 풀기 위해 취미로 하던 걸 직업으로 삼으면 오히려 부담이 되어 스트레스로 느껴지기에 생긴 말 같다.

    반대로 “덕업일치”라는 단어도 있다. 이 둘은 서로 완전히 상반되는 뜻을 품은 것 같다.

    각 상반되는 단어와 격언이 동시에 사람들 사이에서 퍼지는 이유는 뭘까?

    인간과 짐승을 구분짓는 이유 중 하나에는 자아실현의 욕구가 있다고 들은 적이 있다.

    나의 목표는 소프트웨어 학계의 대가가 되어 내가 연구하고 개발한 내용을 전파하여 세상을 더 나은 방향으로 이끄는 것이다.

    그러기 위해 식견을 넓히려고 여러 저명한 개발자, 인물이 쓴 저서를 사들여 읽는 것에 한 치의 망설임도 없다.

    현재 내가 가장 좋아하는 일은 본능적인 수준으로 내용이 궁금한 책을 사서 읽게 되는 행동인 것 같다.

    앞으로 살면서 여러 경험을 하다가, 이렇게 본능적인 수준으로 과감하게 달려들게 되는 일이 생기면 현재의 목표를 과감히 포기할 수도 있을 것 같다.

    그저, 내 본능이 이끄는 대로 하루를 살아갈 뿐이다.

    하고 싶은 일이나 이루고 싶은 목표가 없다면, 현재 할 수 있는 다양한 일들을 가리지 않고 모두 접하면서 경험을 넓게 쌓는 것이다. 지금은 쓸모 없는 경험이라도 먼 훗날 나에게 어떻게 도움을 줄 지 모르기에.

  • 221229

    221229.jpg

    “이런 말이 있다. 프랑스의 유명한 수학자 푸앵카레는 이렇게 말했다. “창조란 머시룸(mushroom)과 같은 것이다.” 머시룸이란 버섯의 일종이다. 버섯 하면 일본 사람인 나는 우선 송이버섯을 연상하게 되므로 푸앵카레의 말은 “송이 버섯과 같은 것이 창조다.”라고도 할 수 있다.”

    매우 유명한 책이다. 올해 필즈상 수상자인 허준이 교수를 수학계로 이끈 히로나카 헤이스케 교수의 저서이기도 하다.

    헤이스케 교수는 본 책에서 푸앵카레의 말을 이렇게 해석한다.

    창조에는 먼저 송이버섯처럼 땅밑에서 뿌리를 뻗어가는 축적의 단계가 있어야 하지만 축적만 하고 있어서는 송이버섯이 버섯을 만들지 않고 고사해버리는 것처럼, 창조 없이 인생의 막을 내리게 된다.

    버섯은 뿌리의 성장을 방해하는 조건이 주어져야 생긴다. 예를 들면 계절 변화에 의한 온도의 상승 또는 하강과 같은 외부적 조건, 송진이나 산성물질 등의 물리적 조건 등이 있다.

    이런 방해에 부딪히면 뿌리는 포자라는 형태로 종자를 만들어 계속 발전해 나가려고 하며 그래서 송이버섯이 만들어진다.

    어떤 시점에서 송이버섯의 뿌리가 생기는 방해 조건에 해당하는 것이 창조에 있어서 필요하다. 송이버섯의 뿌리와 같이 사람이 부모에게서 이어받거나, 주변 사람으로부터 배웠거나, 혹은 학교에서 공부하면서 자기 속에 축적해온 것들을 표출시킬 조건이 필요한 것이다.

    그 조건은 행운이 아닌 역경이 될 수도 있다. 그러니 지금 내가 역경을 겪고 있는 것 같더라도 부정적으로만 바라보지 말고 이 역경이 미래의 나에게 도움이 될 수 있을 것이라는 생각으로 조금 더 긍정적으로 바라보자.

    내 앞에 놓인 현실에서 눈만 가린 채 정신승리만 하고 있으라는 말이 아니다.

    지금의 상황이 너무 절망적이여서 긍정적으로 바라보는 것이 쉽지 않을 때가 있다.

    그럼에도 불구하고 이 상황에서 미래의 나에게 도움이 되기 위해 챙겨갈 것이 무엇이 있을 지에 대해서 성찰해야 한다. 시간이 흐르면서 사유를 더해감에 따라 나 자신은 성장한다.

    내 앞에 놓인 이 모든 상황은 미래의 나에게 도움이 될 것이다. 내가 원했던 상황이 아니더라도.

  • 221230

    221230.jpg

    “비즈니스 세계에 영원한 강자는 없다”

    알렉산더 그레이엄 벨은 Bell Telephone Company를 설립하여 1885년 장거리 전화 네트워크 설치 및 운영을 목적으로 AT&T라는 자회사를 설립하였다.

    1899년에 AT&T는 자신의 모회사였던 Bell Telephone Company를 인수하였다. 자회사가 모회사를 인수하는 특이한 현상이 발생한 것이다. 이후 AT&T는 장거리 통신과 지역별 지역전화회사들을 소유하면서 미국의 전화통신시장을 장악하여 독점하였다.

    1900년대 초반, AT&T는 전국적인 전화 시스템을 제공하려고 노력하면서 맞닥뜨린 과학적, 공학적 문제를 해결하고자 1925년에 연구 개발 자회사인 벨 전화 연구소(Bell Telephone Laboratories)를 만들었다.

    이렇게 시작된 벨 전화 연구소에서 켄 톰슨, 데니스 리치는 C언어와 유닉스(Unix) 운영체제를 개발했고, 존 바딘, 윌리엄 쇼클리, 윌커 브래튼은 트랜지스터를 개발했다.

    이와 같은 수많은 획기적인 발명품들의 개발로 벨 연구소의 위상은 날로 커져만 갔다. 이로 인해 당시 AT&T의 사장이였던 윌터 기퍼드의 견제가 있었을 수준이였다.

    1990년 AT&T는 미국의 장거리 통신 트래픽의 70%를 책임지고 있었을 만큼 여전히 미국의 통신 시장을 장악하고 있었고, AT&T의 장거리 통신 서비스의 신뢰성은 모든 전화 회사의 롤모델이였다.

    그러나 잘못된 코드 한 줄 때문에 AT&T의 통신 네트워크의 오류가 시작되었고, 이는 모든 AT&T 통신 기능을 먹통으로 만들어 순식간에 미국 전역의 장거리 통신을 불가능하게 만들었다.

    AT&T의 명성은 한순간에 주저앉아 버렸고, 그대로 내리막길을 걸어 AT&T의 자회사였던 SBC Communication에게 인수합병되어 기존의 Bell Telephone Company의 사례와 똑같은 길을 걸었다.

    자본주의 체제아래에서 입체적인 기업간의 역사는 AT&T에서 제일 두드러지게 나타나는 것 같다.

    개발 기술 스택의 시장 동향에도 비슷한 부분이 있는 것 같다.

    어떤 프로그래밍 언어, 라이브러리, 프로그램은 그 개념이 생겨난지 매우 오래 되고 한 물 갔다고 느껴짐에도 불구하고 꾸준히 쓰이고 있지만, 매우 혁신적인 것처럼 보이고 다양한 기능을 내포하는 소프트웨어일지라도 인지도가 부족할 때도 있다.

    하지만 꾸준히 쓰이던 프로그램, 언어가 어느 순간 내팽개쳐질 수도 있고 갑자기 색다른 프로그램이 떠오를 수도 있다.

    이런 흐름 한가운데 놓여있을 때, 그저 저무는 프로그램을 버리고 떠오르는 프로그램을 택해야만 할까?

    변화를 그저 받아들이기만 하지 말고, 왜 이런 변화가 일어나는지 의문을 품어야 한다.

    한 물 갔다고 느껴지지만 여전히 많은 곳에 쓰이는 곳에는 왜 신기술을 채택하지 못하는 것인지,

    기존의 시스템을 버리고 새로운 기술을 채택하는 곳에서는 왜 많고많은 기술중에 그 기술을 택한 것인지 등에 대해서 생각해야 한다.

    그렇게 여러 의견을 사람들과 공유하고 대화하다 보면 내 시야가 넓어지고 지식이 생기는 것이다.

  • 221231

    221231.jpg

    “개구리를 해부하지 말고, 직접 만들어라.”

    “don’t reinvent the wheel.” 바퀴를 다시 발명하지 말라는 격언이 있다.

    이 말인 즉슨 이미 발명되어 문제 없이 운영되고 있는 것에 대해서 굳이 처음부터 다시 만들 필요 없이 바로 이용하면 된다는 것이다.

    해부한 개구리를 직접 다시 만드는 것,다시말해 이미 검증된 것을 다시 한 번 검증할 필요가 있을까?

    내가 현재 실무에 바로 투입되는 것이 아니라 배우고 있는 단계라면 반드시 그럴 필요가 있다.

    개구리를 직접 만들어보았던 경험이 나중에 발명된 바퀴를 고를 때 빛날 것이기 때문이다.

    특히 시대가 지나도 변하지 않을 근본적인 뼈대 지식에 대해서는 특히 완벽하게 재현해보는 경험이 필요하다.

    당장 시간이 부족하여 개구리를 해부하는 과정에서 그칠 수 밖에 없다면, 나중에라도 여유가 생기면 꼭 직접 재현하는 단계를 거치길 바란다.

  • 230101

    230101.jpg

    “유닉스 방은 그냥 재미있는 곳이었고, 항상 무슨 일이 벌어졌다. 거의 유닉스 방에서만 일하고 사무실은 좀처럼 쓰지 않는 사람도 있었고, 커피를 마시거나 대화를 나누러 하루에 몇 번씩 들르는 사람도 있었다. 동료가 무슨 일을 하는지 서로 알게 되고 공동체 의식을 키우고 유지하는 데 유닉스 방은 그야말로 엄청나게 중요한 역할을 했다.”

    리누스 토르발즈(Linus Torvalds)는 리눅스 운영체제를 처음 발표할 당시 거의 모든 기업들이 출시하는 소프트웨어들은 소스 코드를 공개하지 않는 것이 다반사였다.

    그러나 리누스는 리눅스의 소스코드를 모두 공개하면서 무료로 출시했고, 누구나 소스를 읽은 후 패치를 작성해 보낼 수 있도록 하였다.

    이는 사람들의 과시욕을 불러일으켰고,

    리눅스의는 오픈소스라는 양분을 섭취하며 시장 운영체제의 많은 지분을 차지하게 되었다.

    “잡담을 많이 나누는 것이 경쟁력이다”

    이는 배달의민족을 서비스중인 우아한형제들의 슬로건이다.

    해당 기업에서는 각 직원의 사무실 자리 옆에 항상 의자를 놔두고, 의자 옆에 다른 직원이 와서 얘기를 나누면 꼭 받아줘야하는 규칙이 있다고 한다.

    각 기업, 서비스들이 성장하게 된 배경, 과정은 다르겠지만 우아한형제들의 현재의 트래픽을 달성하게 된 이유에는 위의 슬로건이 한 몫을 차지하지 않았을까?

    배경지식, 가치관, 가치의 우선순위가 각기 다른 타인들과 대화를 하며 의견을 교환하는 것은 매우 바람직한 일이다.

    이러한 대화를 꺼리는 사람들도 적잖이 있다. 하지만 오늘부터 마음을 열고 타인과의 건설적인 대화를 해 보는 것은 어떨까?

  • 230102

    KakaoTalk_20221227_201905129.jpg

    쉬어가기

  • 230103

    KakaoTalk_20230102_222646055.jpg

    “기업에서는 수익성을 보고 프로그램을 개발하겠지만 정부는 아니거든요.”

    스타트업을 창립하는 사람들은 어떤 이유로 시작하는 걸까?

    매우 좋은 사업 아이템이 생각나서 무작정 시작하는 경우도 있고, 직접 무에서 유를 창조하며 기업을 일궈내는 경험 때문에 시작할 수도 있고, 한정된 월급에 불만족해서일 수도 있다.

    이유와 배경이 어찌됐건, 스타트업을 운영하면 직접 수익을 내야 한다. 순이익이 나지 않으면 당장 빚을 내거나 내 잔고가 까인다. 그렇기에 수익성을 쫓을 수 밖에 없다.

    올해부터 공무원 채용 직렬에 데이터직이 추가됐다고 한다. 이렇게 산업의 흐름을 따르는 국가에서는 어떤 이유로 새로운 사업을 진행하고 변화를 계획할까?

    국가는 세금을 걷는다. 세금은 국민이 낸다. 국민의 경제활동이 활발해지고 돈을 더 많이 벌어야 걷어들이는 세금도 많아질 것이다.

    많은 근거가 비약되긴 했지만 큰 맥락으로 보면 위의 이유 때문에 국가에서는 복지의 이름으로 국민에게 서비스를 제공한다.

    결국 국가에서도 수익성을 위해 공공 복지정책을 펼치는 것 아닐까?

    똑같이 수익성을 따지는 것 같이 보이더라도, 차이점은 존재한다. 스타트업의 사업 아이템은 주로 삶에서 없더라도 큰 문제가 되지 않지만 제품을 통해 삶이 더욱 풍요로워짐에 있고, 공공사업은 큰 문제로 겪는 사람들의 고통을 해소해주는 데 주를 두는 것이다.

    언젠가 내 사업을 시작해 일궈보고 싶은 욕심이 있는데, 그땐 후자의 사업을 할 것 같다.

    돈은 물론 벌어야하지만, 사람들 간의 정보 격차를 해소해 형평성을 갖추게 하고 싶다.

  • 230104

    KakaoTalk_20230103_190022783.jpg

    “생각하는 사람은 드물고, 행동하는 사람은 더 드물며, 생각하면서 행동하는 사람은 가장 희귀하다.”

    사람, 아니 포유류라면 누구나 생각을 한다. 그러나 문구에서는 생각하는 사람은 드물다고 했다. 여기에서의 생각은 보편적인 생각이라는 개념과 다른 것일까?

    나는 사유, 통찰, 성찰이라는 단어를 떠올리고 싶다.

    본 문구에서 생각이라는 것은 한 사안에 대해서 다각도로 바라보고 분석하며 머리에 경험이라는 형태로 저장하고 향후 그 경험을 활용해 행동을 취하게 되는 것 아닐까?

    그렇게 정의하면 생각하는 사람은 드물다.

    드문 사람들이 생각에 잠겨 고민하느라 쉽사리 행동에 옮기지 못한다.

    그렇기에 행동하는 사람은 더욱 드물다.

    생각과 행동을 동시에 하는 것은 그 어려움을 말하지 않아도 알 것이다.

    어렵다고 노력조차 하지 않고 포기할 수는 없다.

    행동이 생각보다 시도에 있어서 어렵지 않아 보이지만, 행동하는 사람이 생각하는 사람보다 더 드물다고 하는 것은 바로 생각에 잠겨 행동하지 않는 것에서 이유를 찾을 수 있다.

    그러니까 어떤 고민이 들기 전에 일단 행동에 옮겨 시도해보자.

    행동하는 과정에서 생각은 자연스레 들 것이고, 그 행동을 성찰하며 고쳐나가는 과정에서 성장은 따라올 것이다.

  • 230105

    230105.jpg

    “재미있는 점이 있는데, 혁신을 논하는 사람 치고 변화에 거부감을 느끼지 않는 사람을 만나 보기가 힘들다는 것이다.”

    덧셈, 뺄셈으로 모든 것을 창조하는 컴퓨터는 삼각함수의 값을 구하기 위해 사칙연산으로 이루어진 다항함수로 삼각함수를 근사하여야 한다.

    공대를 다닌 사람은 알 텐데, 다항함수로 삼각함수를 근사(approximation)하기 위해서 테일러 급수를 이용하는 것은 매우 흔한 일이다.

    테일러가 처음 이 무한급수를 고안하기 전에 사람들은 삼각함수를 다항함수로 표현한다는 생각을 할 수 있었을까?

    집합론의 아버지인 게오르그 칸토어는 본인이 무한집합론을 발명했을 때 동시대의 수학자들에게 무한한 질타를 받았다.

    하지만 현대 대학수학에서 수학자들은 칸토어의 개념을 계승하여 기존 수학적 개념들을 공리로 정의하기 시작했고, 칸토어의 위상은 어마어마하게 올라갔다.

    테일러와 칸토어는 과연 혁신을 꾀하고자 이런 발명을 한 것일까?

    적어도 나는 아니라고 본다.

    내 지식의 뿌리를 이루던 개념들이 갑자기 재정의되어 지금껏 내가 알던 세계를 다르게 바라봐야 할 때가 분명히 올 것이다.

    물론 기존의 관점을 하나하나 바꿔가며 새로운 시각을 갖추는 것은 매우 귀찮은 일이다.

    과학의 근간을 이루는 수많은 개념이 바뀌어 우리가 과거의 마녀사냥을 무시하며 비웃듯이, 먼 미래의 후손은 지금의 우리를 코웃음치며 비웃을 수 있다.

    그렇게 변화하는 세계에 발맞춰 따라가려면, 주변에서 일어나는 생소한 변화들을 귀찮음에 무시하지 말아야 한다.

  • 230106

    230106.jpg

    “하지만 이것만 기억하도록 하자. 우리 학교 수석이 대학원에 가든 안 가든, 옆집 순이가 박사를 하든 안 하든, 그건 내 인생의 선택과는 아무 상관 없는 독립사건들일 뿐이란 점이다.”

    사람에겐 타고난 기질이 있다. 같은 내용을 습득하더라도 누구는 그 내용의 50%만 이해하고, 누구는 그 내용 전부를 넘어 더 심오한 미지의 세계에 발을 디딘다.

    타고난 기질적 차이는 무시할 수 없다.

    하지만 선천적인 기질이 과연 성취와 직결되는 지에 대해서는 의문이 든다.

    선천적인 기질과 맞먹는 비중을 가진 후천적인 환경 조성, 노력, 시간 관리가 있다.

    공부하는 내용들을 바로바로 이해하고 , 기억을 잘 하고, 두뇌회전이 빠르더라도 할 일에 대한 주변의 방해요인을 그대로 방치하고, 작업의 우선순위를 고려하지 않고, 업무 시간 배치를 고려하지 않으면 성취까지 가는 속도는 매우 더딜 것이다.

    이런 후천적인 부분에서 노력하면 선천적인 기질은 충분히 따라잡을 수 있다.

    나는 같은 분야에서 미리 성취를 이루거나 나보다 뛰어난 사람과 자기자신을 비교하는 습관이 있었다.

    직접 이루고 싶은 것이 있다면, 성취를 위한 동기부여는 늘 필요할 것이다.

    나는 그 동기부여를 항상 남을 보며 해온 것 같다.

    그게 불건강하다는 것을 깨닫고, 이제는 현재를 과거의 나와 비교하며 무엇이 얼마나 달라졌는지 생각하려고 한다.

    어떠한 성취를 이룬 남의 모습을 따라가기보단, 하고 싶은 것을 이룬 내 미래의 청사진을 바라보면서 도약을 시작하는 것이 더욱 바람직할 것이다.

  • 230109

    230109.jpg

    역사책은 인류의 오답노트라는 말이 있다.

    이공계로서 역사에 대한 관심은 고등학교 내신 수준에서 멈췄었다.

    그 때 잠깐 열심히 해 놓으면 수능에서 1등급을 맞기에는 무리가 없었고, 내 인생에서 앞으로 역사는 많이 알아도 의미가 크게 없다고 생각했다.

    요즘들어 그 생각이 바뀌었다.

    과학 이론 하나를 공부하더라도 그 이론이 창제된 시점에서의 역사적 배경을 같이 고려하면 내가 그 이론과 같이 숨쉬는 것 같고, 머릿속에 잘 남아있다.

    내가 알아보고 싶은 분야의 개념들을 그 개념들이 탄생하게 된 역사적 배경들과 결부해서 알아보면, 그 분야에 더욱 몰입할 수 있게 될 것이다.

    역사적으로 위대한 타인이 이룬 성취를 내 앞으로 끌어와 목표를 세우는 것은 지양해야 한다.

    하지만 내 앞에 놓인 상황에 대해 어떤 대안을 선택할 지 고민을 할 때, 역사적으로 앞선 걸음을 갔던 사람들이 얻은 결과를 이용하면 더 넓은 시야를 얻을 수 있을 것이다.

  • 230110

    230110.jpg

    공부, 연구를 계속할수록 우리가 사는 세계의 넓음에 대해 느끼게 되고, 그 넓은 세계 안에서 내가 아는 것은 별 것 아니고, ‘내가 모르는 것은 생각보다 훨씬 많구나’ 라는 생각이 들기에 학위가 올라갈수록 자신의 무지함에 대해 더 뼈저리게 느끼는 것이라 생각한다.

    공부를 하면서 나는 수많은 자괴감을 느낀다.

    같은 수업을 들어도 한 번에 철썩같이 내용을 알아듣는 동기를 보며 본능적으로 비교를 하게 되고, 수많은 성취를 이뤄낸 선배들을 보면서 나도 저렇게 할 수 있을 지에 대해 한숨을 쉬게 된다.

    빨리 이런 마음을 버려야 한다.

    한 가지의 주제에 대해 진척 정도를 남과 비교한다면, 그것은 내가 그 주제에 완전히 몰입하지 않았다는 의미다.

    남이사 어찌됐던 이렇던 저렇던 내 눈앞에 스스로 내던진 질문이 수없이 놓여 있고, 그 질문들을 고민하면서 파헤치기만 해도 시간이 부족하다.

    차차 그런 질문들에 대한 매듭을 스스로 지으면서 한 발자국씩 내딛다 보면, 의도하지 않았어도 남들이 인정하는 사람이 될 수 있을 것이다.

This post is licensed under CC BY 4.0 by the author.