반응형

멈추고 생각 Pause and think 21

'어제보다 오늘이 나아지는 세계'

'어제보다 오늘이 나아지는 세계' 김연수 소설가의 책 '우리가 보낸 순간'의 책 끝 부분에 '날마다 글을 쓴다는 것'이란 글에 나온 표현이다. 남들이 봤을 때 김연수 소설가는 스물 셋에 시인으로 등단하고, 스물 넷에 장편 소설로 문학상을 받은 천재 작가다. '날마다 글을 쓴다는 것' 글을 보면 천재 작가인 김연수 소설가도 소설 쓰기를 그만둘까 고민한 적이 있다고 한다. '재능이 없다는 의미' 몇 번 대학에서 글쓰기를 가르치고 난 뒤에 나는 자신에게 생긴 부정적인 일들을 '재능이 없다는 의미'로 받아들이는 사람이 십대 시절의 나뿐이 아니라는 사실을 발견하게 됐다. 소설창작 시간에 관례대로 합평이라는 걸 한 적이 있었다. 칭찬을 오천 번 정도는 받아도 원래의 밝고 창의적인 아이 때의 모습으로 돌아갈 수 있을..

지식의 저주와 의사소통의 어려움

지식의 저주지식의 저주(curse of knowledge)란 다른 사람들과 의사소통을 할 때 다른 사람도 내가 갖고 있는 배경 지식을 가지고 있다고 자신도 모르게 추측하여 발생하는 인식적 편견이다(출처: 위키백과). 쉽게 말하면 내가 알고 있는 것을 내 얘기를 듣는 상대방도 알고 있을 것으로 가정하는 것이다. 지식의 저주 예"GET은 POST에서 못 가져오는 거 알죠?" 내가 전에 팀장한테 들었던 이야기다. 무슨 이야기를 하시는 건가 생각했다. 'HTTP 요청 메소드 중 하나인 GET 메소드는 POST 메소드를 못 가져온다는 말일까? 무슨 말이지'라고 생각하고 있었다. 내가 못 알아듣자, 그것도 모르냐는 눈빛으로 바라보면서 한숨을 쉬었다. 그리고는 풀어서 설명하기 시작했다. 그때서야 이해할 수 있었다. ..

전통적인 개발과 테스트 주도 개발, 그리고 애자일

팀내에서 전통적인 개발과 테스트 주도 개발, 그리고 애자일을 주제로 발표를 했다. 요며칠 밤마다 작업한 결과물이다. 슬라이드쉐어에 발표자료를 올려 놓았다. 긴 문장도 넣었지만, 짧은 문장으로 표현한 것도 있어서 잘 이해가 안 될 수도 있어 발표 설명을 각 장마다 적어 본다. 발표 슬라이드https://www.slideshare.net/taptorestart/ss-258182158   발표 스크립트지금 여기 모인 대부분의 개발자들이 하는 개발 방식은 전통적인 개발에 가깝습니다. 전통적인 개발에서는 기능 구현부터 합니다. 기능을 구현하고, POSTMan 같은 테스트 툴, 웹 등을 활용해서 기능을 구현한 부분을 개발자가 직접 테스트합니다.  그림 속 네모 칸은 기능을 뜻합니다. 이미 구현..

무료 플랫폼은 뭘로 돈을 벌까?

광고와 거래다. 광고를 해주고 수수료를 받고, 시장을 만들어서 거래를 주선하고 수수료를 받거나 물건을 직접 판다. 사람이 많이 모이는 곳 사람이 많이 모이는 곳은 정보를 널리 알리기에, 곧 광고를 하기에 좋다. 사람이 많이 모이니 당연히 물건을 사고 팔기에도 좋다. 그런 곳을 소유하고 있다면 광고를 하고 싶은 사람들과 물건을 팔고 싶은 사람들이 연락을 해온다. 그 사람들에게 광고를 할 수 있는 공간이나 물건을 사고 팔 수 있는 공간을 내주고 돈을 받을 수 있다. 출퇴근 때 이용하게 되는 지하철을 생각해보자. 지하철에는 광고가 붙어 있고, 역 안에는 가게들이 있다. 불꽃축제, 벚꽃축제 등 많은 사람들이 모일 것으로 예상되는 날이 되면 어김없이 물건을 팔려는 노점상들이 축제 장소 근처에 몰려드는 것도 마찬가..

"측정할 수 없다면 관리할 수 없다."라고 피터 드러커는 말한 적이 없다고?

드러커가 했다고 하는 그 말KPI(핵심성과지표)와 평가에 관한 HR 담당자의 설명을 듣다가 눈에 띄는 문장이 있었다. "측정할 수 없다면 관리할 수 없다." - 피터 드러커 피터 드러커. 경영학의 아버지라고 불리기도 하는 그 분이다. 실제 검색해보면 비슷한 문장을 인용한 칼럼들을 쉽게 찾을 수 있었다. 서평 / 성과지표의 배신, 김태완, 물류신문, 2022. 6. 15. [ET단상]'Plan-Do-See'의 오류, 류승범, 전자신문, 2022. 8. 23. 등 모두 피터 드러커가 말했다고 피터 드러커를 인용하고 있다. 예를 들면 피터 드러커는 “측정할 수 없다면 관리할 수 없고, 관리할 수 없으면 개선할 수도 없다”라고 말했다. ... 출처: [ET단상]'Plan-Do-See'의 오류, 류승범, 전자신문..

테스트 주도 개발이 기능부터 개발하는 것보다 더 빠르고 안정적이다

테스트 주도 개발Test Driven Development(TDD)란? 켄트 벡이 창시한 개발 방법론으로 테스트부터 작성하는 개발 방법론이다. 먼저 통과하지 못할 테스트를 작성하고 테스트를 통과하도록 코드를 작성한다. 그 뒤 코드를 개선, 리팩터링하고 테스트하는 과정을 반복하는 식이다. 리팩터링 책으로 유명한 마틴 파울러가 추천하는 개발방식이다. TDD의 가장 큰 특징은? 테스트 주도란 명칭처럼 테스트부터 작성한다! 기능부터 작성 → 테스트가 아니라, 테스트 → 기능 코드 작성이다. 파이썬을 예를 들면 테스트부터 작성한다. def test_sum() assert sum(1, 2) == 3 당연히 sum 함수 구현이 안 되어 있으니 테스트는 실패한다. 위 테스트가 성공할 때까지 sum함수를 구현하는 식이다..

테스트Test 기반 없는 코드 리뷰Code Review의 비효율성과 위험성

코드 리뷰 코드 리뷰를 하는 리뷰어는 보통 눈으로 변경된 코드를 읽고 자신의 의견을 말한다. 코드 전체가 아니라 바뀐 부분만 주로 본다. 따라서 코드 변경에 따른 의도하지 않은 부작용까지는 생각하기 어렵다. 리뷰어는 의견을 낼 뿐 책임지지 않는다. 책임은 코드 작성자 몫이다. 테스트 기반 없는 코드 리뷰의 비효율성 리뷰어가 제시한 사소한 변경이라도 만에 하나 있을 부작용 확인을 위해 작성자는 매번 테스트를 해야 한다. 테스트가 없는 상태라면 일일이 리뷰어의 의견을 반영할 때마다 관련 코드 전반을 테스트 해야 한다. 리뷰어들이 같은 시간 한꺼번에 리뷰해주면 좋겠지만 A 리뷰어, B리뷰어가 리뷰하는 시간은 다른 경우가 대부분이다. 따라서 리뷰를 받을 때마다 테스트하게 된다. 테스트 기반 없는 코드 리뷰의 위..

상개약수上開若水, 최고의 개발자는 물과 같다

동료들과 이야기를 나누다가 상선약수가 떠올랐다. 최고의 개발자는 혹시 물과 같지 않을까. 노자의 상선약수 “최고의 선은 물과 같다.(上善若水) 물은 선하여 만물을 이롭게 하지만 다투지 않는다.(水善利萬物而不爭) 뭇 사람들이 싫어하는 낮은 곳으로 자리를 잡는다.(處衆人之所惡) 그러므로 물은 도에 가장 가까운 존재다.(故幾於道).”( ‘8장 이성·易性’) 출처: 물을 깔보지 마라 물은 동그란 유리병에도, 사각형 용기에도 어느 형태에든 맞출 수 있다. 투명해서 어떤 색의 병에 담아도 그 병 색이 된다. 물은 다투지 않는다. 스며든다. 언제나 낮은 곳에 자리 잡는다. 개발자가 물과 같다면 누구와 함께 일해도 어떤 회사에서 일해도 맞출 수 있다. 어느 팀에든 프로젝트에든 예전부터 그곳에 있었던 것처럼 스며들어 있..

인공지능 관점으로 수학능력시험을 바라본다면?

인공지능에서 딥러닝의 경우 사람 뇌의 작동원리, 신경망을 본땄다. 이름도 인공신경망이다. 인공지능 관점으로 수학능력시험, 수능을 바라본다면 어떨까? 지능과 수학능력, 튜링 테스트와 수학능력시험 지능을 정의하기는 어렵다. 인간이 갖고 있는 지능을 설명하기도 어렵다. 다른 사람들이 지능을 정의하기 위해서 노력하고 있을 때, 앨런 튜링은 다른 방법을 제시했다. 튜링이 제시한 방법은 튜링 테스트다. The Turing test, originally called the imitation game by Alan Turing in 1950, is a test of a machine's ability to exhibit intelligent behaviour equivalent to, or indistinguishab..

첫 직장에서 첫 언어, 첫 직군, 첫 프레임워크는 얼마나 중요할까?

개발자한테 첫 직장에서 첫 언어, 첫 직군, 첫 프레임워크는 대학 입시 때 전공 선택만큼 중요하다. 개발자 경력 전체에 영향을 미치기 때문이다. 우연한 선택과 경로의존성 좋아하는 것 또는 하고 싶은 것이 명확한 친구라면 우연이 영향을 덜 미친다. 하지만 별생각이 없다면 우연한 선택이 인생 전체에 영향을 미친다. 이 글을 읽고 있을 여러분들은 한국어가 모국어인 분들일 것이다. 그렇다면 왜 한국어가 모국어인가? 맞다. 우연이다. 우연히 한국에 태어나서 그런 거다. 대부분 사람들은 평생 한국을 벗어나기 어렵다. 한국이 살기 좋아서가 아니라 한국을 떠나면 포기해야 할 기회비용이 크기 때문이다. 대부분 사람들은 우연한 결과에 따라 경로의존적으로 살아간다. 첫 언어 첫 언어는 정말 중요하다. 그 언어를 중심으로 사..

당신이 긍정적으로 살아야 하는 현실적인 이유는?

긍정적인 사람이 더 잘 번다. 정말이다. 무슨 말이냐고 할 수 있다. 긍정적으로 생각하는 것과 수입이 무슨 관계가 있냐고 생각할 수도 있다. 여기 긍정적인 사람과 부정적인 사람이 있다. 두 사람이 연봉 협상에 임한다. 어떻게 대응할까. 긍정적인 사람은 낙관적이니 이직시 연봉을 높게 부를 가능성이 크다. 부정적인 사람은 자신을 낮게 평가하며 일단 자신 정도 실력을 가진 사람의 평균치나 그 이하를 부르고 시작할 가능성이 크다. 긍정적인 사람은 높게 불렀으니 좀 깎이더라도 본인 실력으로 받을 수 있는 상한선에 근접한 연봉을 받게 되고, 부정적인 사람은 처음부터 평균 또는 그 이하를 불렀으니 자신의 실력으로 받을 수 있는 하한선에 근접한 연봉을 받게 된다. 여기서 끝이 아니라 부정적일 경우 자신의 선택에 따른 ..

"나무를 자를 여섯 시간을 준다면, ..." 당신은 어떻게 할 것인가?

당신은 어떻게 할 것인가? 여기서 주어진 도구는 도끼다. 1. 바로 도끼로 나무를 잘라본다. 2. 도끼로 나무를 어떻게 자르는지 유튜브를 검색한다. 3. 나무 잘 자르는 친구한테 물어본다. 등 방법이 있을 거 같다. 링컨은 이렇게 말했다고 한다. "나에게 나무를 자를 여섯 시간을 준다면, 나는 먼저 네 시간을 도끼를 날카롭게 하는 데에 쓰겠다." "Give me six hours to chop down a tree and I will spend the first four sharpening the axe." 출처: 위키인용집 링컨 링컨이 진짜로 말했는지 찾아보려고 했는데 찾아도 잘 나오지는 않는다. 링컨이 말했다고 믿자. 링컨은 나무 좀 잘라본 거 같다. 일단 친구를 찾거나 하지는 않았다. 일단 자르는 ..

기업 내 토론의 규칙을 바꿔보기, 일부러 틀리기

기업은 평등하지 않다 당연하다. 평등하지 않다. 평등하다면 직급이 필요 없을 것이다. 직급 체계를 간소화했다고 직급이 없어지지는 않는다. 누군가는 책임을 져야 하고 책임을 지는 사람이 의사 결정을 하는 사람이다. 예를 들어 CEO - C레벨(COO, CTO, CFO, CPO 등) - 팀 리드 - 팀원 이렇게 4단계 정도로 구성되어 있다고 하자. 팀원끼리는 평등해도 팀원과 팀 리드, 팀원과 C레벨은? 당연히 평등하지 않다. 평등하지 않음과 토론 평등하지 않다면? 당연히 토론이 잘 안 된다. CEO가 어떤 의견을 발표하는데 어떻게 팀원이 "전, 당신 의견과 다릅니다."라고 말할 수 있는가. 유럽이나 미국은 다를 수 있겠지만, 한국에서는 말하기 어렵다고 생각한다. 퇴사를 각오하지 않은 이상. 직급이 높을수록 ..

연애와 채용/취업은 비슷하다, 연애처럼 취업을 준비하기!

연애와 채용/취업은 비슷하다 사람과 사람이 만난다는 점 때문인지 사용하는 단어들 느낌도 비슷하다. 연애: 구애, 짝사랑, 연애편지, 조건, 어장관리, 성격차이로 헤어져, 100일 기념, 소개-소개팅-데이트-...-연애 시작, 이별/이혼, 차이다, 혼인신고서 채용/취업: 구인, 구직, 지원서, 스펙, 면접 한참 뒤 연락, 컬처 핏이 맞지 않아, 수습기간, 서류-면접-직무면접-...-최종 합격, 이직, 해고, 계약서 노동시장, 연애시장?결혼시장? 노동의 경우 노동시장이라고 흔히 얘기한다. 자본주의 사회에서는 노동도 하나의 상품처럼 취급하니까. 갑자기 노동 수요가 급증한다면? 당연히 가격이 올라간다. 코로나 이후, 온라인의 중요도가 높아져서 개발자들의 수요가 급증했지만 공급이 원활하지 않아서 임금이 올라간 것..

점들을 연결한다는 것

점들을 연결하는 것, 'connecting the dots'는 스티브 잡스가 스탠포드 대학 졸업식 연설 때 한 말이다. 그 유명한 "Stay Hungry. Stay foolish." 문장을 말한 바로 그 연설이다. 스탠포드 대학 졸업식 연설에서 잡스는 세 가지 이야기를 말했다. 그 중 첫 번째 이야기가 바로 점들을 연결하는 것에 관한 이야기다. 잡스가 말한 점dot은 무엇일까. 점들을 연결한다는 것은 어떤 의미일까? 잡스의 점들 잡스는 입양아였다. 노동계급이었던 양부모 밑에서 비싼 리드대학을 다니기에는 부담스러웠다. 그래서 잡스는 리드대학을 6개월만 다니고 자퇴했다. 그 뒤에는 18개월 동안 머물다가 진짜로 그만뒀다. 대학을 자퇴하니 흥미가 없던 필수과목을 듣지 않아도 되었다. 대신 흥미를 끈 서체 수업..

성실한 사람과 게으른 사람 중 누가 생산성이 높을까?

Q1. 다음 두 사람 중에서 어떤 사람이 더 생산성이 높을까? 1. 성실한 사람 2. 게으른 사람 당신의 생각이 궁금하다. 두 사람 중 어떤 사람이 더 생산성이 높다고 생각하는가. 왜 그렇게 생각하는가. 다른 질문을 던져보자. Q2. 다음 두 사람 중에서 어떤 사람이 더 생산성이 높을까? 1. 컴퓨터에 설치된 기본 웹브라우저를 쓰는 사람 2. 기본 웹브라우저를 쓰지 않고 크롬이나 파이어폭스 등 다른 브라우저를 쓰는 사람 당신의 답은? 왜 그렇게 생각하는가. 첫 번째 질문은 '성실'과 '게으름'이란 단어 자체가 추상적이라 1번이 정답이라고 하기도 애매하고 2번이 정답이라고 하기도 사실 애매하다. 두 번째 질문의 경우 실제 조사 결과가 있다. 크롬이나 파이어폭스를 사용하는 사람들이 업무 능력과 성과가 더 좋..

동물나라 카약 대회 이야기

동물나라에서 2인 1팀 카약 마라톤 대회가 열렸습니다. 꿀꿀이는 멍멍이와 한 팀, 야옹이는 곰돌이와 한팀이 되었습니다. 꿀꿀이가 멍멍이한테 말을 걸었습니다. “멍멍아, 난 카약이 처음인데 어떻게 하지.” 멍멍이가 말했습니다. “난 1인 카약 시합 챔피언이야. 넌 내 말대로만 하면 돼.” 곰돌이가 야옹이한테 인사했습니다. “야옹아, 안녕. 밥 잘 먹고 잘 자고 왔니?” 야옹이가 대답했습니다. “응. 넌?" "나도!" "근데 나 카약 잘 모르는데 우리가 해낼 수 있을까?” 곰돌이가 말했습니다. “나도 잘 몰라. 같이 공부하면서 하면 되지 뭘.” 대회가 시작되자마자 역시 꿀꿀이와 멍멍이가 탄 카약이 앞서가기 시작했습니다. 한참을 가다가 멍멍이가 꿀꿀이한테 말했습니다. “너 힘 그것밖에 안 되는 거야? 네 몸이..

기업은 회사는 절대 절대 평등하지 않다

아래는 당근마켓의 채용 설명 중 일부다. "영어 이름을 사용하고 직급이 없는 수평문화를 지향해요." 이런 문장을 보면 착각할 수 있다. 수평문화 = 평등이라고. 하지만 절대 절대로 평등하지 않다. 기업은 평등하지 않다. 주식회사에서는 지분을 많이 갖고 있는 사람이 왕이다. 지분이 없는 평직원들끼리 수평문화를 지향한다고 읽어야 맞다. 여기서도 지향하는 것이지 수평은 아니다. 예전에 5단계 이상으로 나눠 놓은 것을 3단계, 2단계로 줄였다고 이해하는 것이 맞다. 내가 말단이라면? 당연히 내 위에 있는 사람과 나는 평등하지 않다. 수평도 아니다. 내가 문제를 일으킨다면 누가 책임을 질 것인가를 생각해보면 쉽게 이해된다. 단계별로 올라가면서 욕을 먹게 된다. 나 다음으로 욕먹는 사람이 내 직속 상관이다. 진짜 ..

왜 정부는 코딩을 가르치려고 할까, 코딩 교육이라고 하고 프로그래밍 교육이라고 하지 않을까

잘 모르겠다. 관련 정책을 짠 사람이 소프트웨어에 대해서 잘 몰라서 그런 표현을 썼는지, 아니면 정말 코딩을 가르치고 싶은 것인지. 코딩과 프로그래밍은 다른 개념이다 coding 이라고 옥스퍼드 사전에사 찾으면 아래 처럼 나온다. code verb ​3. [transitive, intransitive] code (something) (computing) to write a computer program by putting one system of numbers, words and symbols into another system programming noun 1. the process of writing and testing computer programs · programming languages 검색..

혼자 서버와 클라이언트(웹, 앱) 모두 개발할 때 가장 효과적인 방법은 무엇일까?

간단한 서비스를 개발하고 싶다. 혼자 서버와 클라이언트를 모두 개발해야 한다. 클라이언트는 웹 브라우저로 접근할 수 있어야 하고, 안드로이드, 아이폰 앱 스토어에서 받을 수 있어야 한다. 이 경우 어떻게 해야 수고가 적게 들면서 빨리 개발할 수 있을까. 사용하는 프로그래밍 언어의 개수를 줄이기. 언어의 개수가 많으면 어렵다. 혼자서 서버, 안드로이드 앱, 아이폰 앱을 따로 개발한다고 생각해보자. 서버를 PHP로 개발한다면 PHP를 알아야 하고, 스프링 프레임워크로 개발한다면 Java를 알아야 한다. 웹 애플리케이션도 개발해야 하니 HTML, CSS, 자바스크립트도 알아야 한다. 앱의 경우 안드로이드는 자바나 코틀린을 알아야 하고 아이폰 iOS는 스위프트나 오브젝티브C를 알아야 한다. 아예 firebase..

반응형