위치: 서울 종로구 자하문로7길 5

 

북촌에서 유명한 곳입니다. 얼마전까지는 줄이 있는 정도는 아니였는데 최근 줄이 엄청 늘었습니다. 대기 감안해야 함. 

사진은 마제소바, 실제로 마제소바가 인기 제일 많습니다. 다른데 보다 더 맛있었다고 느낌, 다만 계란이 살짝 비려서 그거 못 견디는 분들은 힘들 수도 있을듯 

일단 해머스푼을 받아서 설치해준다. https://www.hammerspoon.org/

 

Hammerspoon

Hammerspoon What is Hammerspoon? This is a tool for powerful automation of macOS. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expose specifi

www.hammerspoon.org

 

태스크바에 있는 해머마크 오른쪽 클릭해서 'Open Config' 클릭해서 다음과 같은 내용을 써서 저장한다. 

 

-- Emacs를 사용하기 전의 입력 소스를 저장하기 위한 변수
local lastInputSourceBeforeEmacs = nil

-- Emacs 애플리케이션 이름 (필요시 "Emacs-pretest" 등으로 변경 가능)
local emacsAppName = "Emacs"

-- 강제로 설정할 영어 입력 소스 ID
local englishInputSource = "com.apple.keylayout.ABC"

-- 애플리케이션 전환 이벤트를 감시하는 Watcher 생성
appWatcher = hs.application.watcher.new(function(appName, eventType, appObject)
  if eventType == hs.application.watcher.activated then
    -- 특정 앱이 활성화되었을 때
    if appName == emacsAppName then
      -- 활성화된 앱이 Emacs라면
      -- 현재 입력 소스를 변수에 저장
      lastInputSourceBeforeEmacs = hs.keycodes.currentSourceID()
      -- 입력 소스를 영어로 변경
      hs.keycodes.currentSourceID(englishInputSource)
    end
  elseif eventType == hs.application.watcher.deactivated then
    -- 특정 앱이 비활성화되었을 때
    if appName == emacsAppName then
      -- 비활성화된 앱이 Emacs라면
      -- 저장해둔 이전 입력 소스가 있을 경우, 그 값으로 복원
      if lastInputSourceBeforeEmacs ~= nil then
        hs.keycodes.currentSourceID(lastInputSourceBeforeEmacs)
        -- 복원 후에는 변수를 초기화
        lastInputSourceBeforeEmacs = nil
      end
    end
  end
end)

-- Watcher 시작
appWatcher:start()

 

안타깝지만 lua 코드블록을 지원하지 않으니 bash 로 저장함. 

주석이 달려있지만 기존에 쓰던 한-영 상태를 지정하고 있다가 Emacs 앱으로 포커스가 가면 영어로 세팅을 하고 Emacs 에서 포커스가 사라지면 원래 쓰고 있던 한-영 상태를 복원하는 코드이다. 

카파도키아 열기구

 

터키 여행 다녀왔다. 일단 터키에서 최고는 카파도키아 열기구있다. 가격은 1인당 250 유로 시간은 대략 한시간 (타는데 걸리는 시간) 정도 비싸다고 생각할 수 있지만, 돈으로 경험을 살 수 있다는 점에서 아주 추천할 만 하다. 더구나 타고 싶다고 해서 항상 탈 수 있는 것도 아니다. '알라가 허락을 해야만 탈수 있다' 라는 말 답게 기후가 맞지 않으면 열기구가 뜨질 않는다. 예전에 한창 인기 있고 돈을 잘 번다고 하니까 무허가 파일럿들을 이용해서 열심히 굴리다가 사고가 많이 발생해서 , 이제 정부가 통제해서 조건이 맞아야만 기구를 띄우니 알라를 들먹이는거 같다. 

아야 소피아

터키 여행하면 떠 오르는 상징성 중 하나는 '아야 소피아'다. 안타깝지만 다시 모스크가 되버렸다. 지금 터키를 다스리는 21세기 술탄 에르도안의 의지로 박물관이였던 아야 소피아가 다시 모스크가 되서 가장 중요한 1층은 무슬림이 아니면 들어가 볼 수가 없다. 다만 2층은 공개되어서 '돈을 내고' 들어가야 한다. 즉 모스크로 만들면서 자국의 근본주의자들을 만족시키고, 여행객에게는 입장료를 받고 2층을 돌게 해서 돈도 번다. 나름 머리를 썼겠지만, 여행객 입장은 개빡친다. 

 

일단 여행지 자체로는 대만족이다. 다만 물가가 미친 수준이다. 2025년 기준으로 체감물가가 서울의 2배다. 터키의 GDP 가 한국의 1/3 수준인데, 체감 물가가 2배라니 6배의 느낌이라고 보면 된다. 길거리에서 흔히 볼 수 있는 천연과일을 짜서 음료수로 파는 생과일 쥬스가 코로나 전에는 5리라 였는데 지금은 200 리라 정도다 (물론 여기 저기 가격이 차이가 있긴 하지만 대략 저 가격이다) 40배.. 진짜 물가가 미친 수준이지만 하늘이 축복한 땅 답게 농산물 자체는 가격이 예전가 차이가 많이 나지 않아서 터키 국민들은 별 불만없이(?) 살아간다고 한다. 리라를 한국돈으로 환전하면 x 40 을 하는게 대략 맞다. 즉 200원이 8000원이 된거 

 

정리하자면 터키 자체는 진짜 볼거 많고 자연도 아름다운데 물가가 완전 조져버린 수준이다. 물가만 아니였으면 열악한 인프라에도 불구하고 터키는 정말 괜찮은 여행지였다.

꽃의 비밀

 

간만의 문화 생활, 웃음이라는 부분 하나 만은 완벽하게 맞춘듯, 숨이 멎을 정도로 웃어본게 진짜 간만이다. 추천 

 

주인공 이슈 때문에 용두사미 라고 볼 수 있게 마무리 된 드라마. 특히 2시즌 마지막 장면이였던 위 장면은 다크한 카타르시스가 쭈욱 올라가는 기분을 느끼게 했었다. 

 

대부분의 사람들은 권력보다 돈을 선택하는 실수를 저지르지. 하지만 돈은 10년 후면 무너질 고급 저택이고 권력은 몇 백 년은 유지될 석조 건물이야. 나는 이 차이를 구별하지 못하는 인간들을 도무지 존중해 줄 수가 없어.

 

가끔 가다 위의 주인공이 했던 말이 정치쪽의 진실이 아닐까 싶다. 권력을 쥐면 항상 돈은 따라오니까, 제일 중요한건 약점을 잡히지 않는 일이라 하겠지.

IT 업을 하신 분들에게 빠질 수 없는 두가지 질병이 있는데 첫째가 위염이요 둘째가 허리 통증 입니다. 저도 당연히 이걸로 고생했고요, 이미 미리 고통 받으신 선배분들이 저에게 전수해준 방법으로 많이 좋아져서 저또한 후배님들에게 이 방법을 전하고자 합니다. 

 

일단 둘째 허리통증 입니다. 허리는 아픔이 있으면 무조건 누워서 쉬는게 최고의 허리 보약 입니다. '아플때는 쉬어라' 

만약 허리의 통증이 어느정도 가시고 허리를 좀 강화 시키고 싶다 라는 생각이 들것입니다. 그러면 무조건 '등산'입니다. 미켈란젤로는 중세시대에 평균 수명 40대인 바로 그 시대에 89세 가깝게 살았습니다. 죽기 삼일전까지 '산'에 돌캐러 갔다는 건 유명한 사실입니다. 주변에 등산 열심히 다니는 사람들 특징이 나이 상관 없이 허리 꼿꼿하고 정정하죠? 등산이 답입니다. 

 

그런데 IT 인들이 언제 등산하러 다닙니까, 게임에서는 산을 올라가도 현실에서는 올라가기 싫은게 사람의 마음이죠, 그런 분들을 위한 운동이 '계단 오르기' 입니다. 더도 말고 일주일에 랜덤 3-4일 정도 하면 딱 좋은데 , 날마다 해도 괜찮습니다. 제일 좋은 시간이 식사 하고 나서 입니다. 혈당도 낮추고 무산소 유산소 운동을 병행하는 효과도 있고 정말 좋습니다. 

 

첫째 위염입니다. 위염이나 위경련, 특히나 급성 위경련은 진짜 무지 막지하게 아픕니다. (본인도 경험이 있슴) '명치끝을 쥐어짜는 고통', '견디기 힘들정도의 고통', '주저앉을 정도의 고통', '잠을 잘 수 없을 정도의 고통'등 묘사도 다양한데, 심하면 멀쩡했던 허리까지 아파서 허리가 펴지지 않아서 허리를 굽은 상태로 걸어야 하고 잠도 똑바로 잘 수가 없을 정도 입니다. 진짜 다시 겪고 싶지 않을 정도의 고통입니다. 

 

주요 원인은 '스트레스' 라고 합니다. (제 회사를 날려먹고 두 세달 있다가 온거 보면 일리가 있습니다.) 또 다른 주요 원인으로는 물처럼 마시는 '커피', 그리고 의외지만 '우유' 입니다. 이 세가지를 다 합쳐지면 젊은 나이를 벗어나자 마자 그 극한의 고통을 맛 볼 수 있습니다. 즉 스트레스를 받은 상태에서 '찬' '까페라떼'를 자주 자주 마셔주면 위가 선천적으로 튼튼한 사람이 아니면 바로 일단 위염부터 심하면 위경련을 맞이합니다. 

 

개발자들이 커피나 까페라떼를 마시면서 머리를 쥐어짜면서 개발하는 행동이 위에 얼마나 안 좋은지 아시겠죠? 그래서 보통 위를 좋게 하기 위해서는 방법은 간단합니다. '양배추'입니다. 양배추를 자주 자주 먹어줘야 위가 건강해집니다. 제가 아팠던 시절에는 아침에 일어나서 '양배추'와 '요구르트' 하나를 갈아서 아침 대신 마셨습니다. 6개월쯤 이렇게 아침에 먹어주면 강철의 위를 소지하게 됩니다. 물론 먹기 좋은 맛은 아닙니다. 

 

그런데 아침에 바빠 죽겠는데 언제 양배추 갈고 있겠습니까? 그럴때를 위한 좋은 약이 있습니다. 일본의 국민약 '카베진' 입니다. 

양배추 갈아서 만든 약입니다. 

 

자 열심히 노력해서 개발자들 힘들게 하는 두가지 질병을 극복해 봅시다!! 

일이 있어 아침에 일찍 일어나야 해서 피곤한 몸을 이끌고 회사에 일찍 출근했다. 지하 주차장에서 주차하고 '잠깐 눈을 감는 것 정도는 괜찮겠지' 잠깐 눈을 감았다가 눈을 떴는데, 지하 주차장이 아니라 도로 한복판에 있는 나를 발견했다.

'꿈이구나' 피식 거리며 주위를 둘러보고 '이제 일어나야지' 하는데 반응이 없다.

'응? 왜 안 일어나지지?' 다시 한번 집중해서 일어나야지 하는데 주변 상황에 변화가 없다.

뒤에서 엄청나게 다른 차들이 빵빵거려서 나도 모르게 습관적으로 차를 출발 시키고 주변을 둘러보았다. 도로 공사를 하고 있고, 바쁘게 움직이는 인부들과 거기에 무단 횡단 하는 사람들 까지 너무나 자연스럽고 그들이 떠드는 소리까지 들린다.

'꿈이 아닌가? 그렇다면 주차장에서 눈을 감았던 기억은 뭐지?' 혼란스러워하며 목적지도 정하지 않은 채 차를 운전하고 있었다가. 문득 하늘에 커다란 비행체가 있는 것을 보았다.

'뭐지? 저만한 크기라니?'

 

이거


그것은 바로 그랜다이저 였다 -ㅅ- . 심지어 스페이저와 크로스 된 형태였다 (즉 UFO 형태). 하늘에서 차분하게 내려오는 광경을 지켜보고 있다가 혼잣말을 했다.

'에이 꿈이구나'

그리고 꿈이라는 것을 알아채고 눈을 뜨니 주차장 안이었다. 시간은 무려 30분이 넘게 흐른 뒤였다. '이 정도 느낌의 VR 이면 돈이 안 아깝겠네' 라는 생각을 하며 사무실로 들어갔다. 

먼저 원 글은 루리웹에서 봤습니다. 일본 사람으로 보이는 분이 쓴 글인데, 담담한 필치로 자신의 경험을 이야기 하고 있는데, 그 사연에 깊은 공감을 했습니다. 

 

원글은 여기 클릭

 

 '여름 방학 때 아빠가 도쿄에 뮤 배포회 데려가주신대!' '좋겠다! 그런데 포켓몬청, 언제 오려나'
종이 울리자마자 떠들석해지는 교실에서 눈을 빛내는 친구들. 초등학교의 화제 중심에는 항상 포켓몬이 있었다.
그럴때는 나 혼자 맨날 바닥을 보고 있었다. 우리집은 게임보이도, 슈패미도 없었으니까.

'패미컴은 눈이 나빠지니까'.
나와 남동생이 조를 때마다 어머니는 곤란하다는 표정을 지으셨지만 결코 굽히진 않으셨다.
도감, 세계명작전집, 개미 관찰 세트.
산타는 매년 내 요청을 무시하고 고급 백화점의 포장에 쌓인 훌륭한 선물을 주었다.
기쁘지 않지만 기쁜 척 하는게 힘들었다.

은행원인 아버지가 매일밤 늦게까지 일하는 와중에 전문대를 졸업하고 전업주부가 된 어머니는 분투하고 계셨다.
세탁물은 항상 가지런히 정돈되어 있었다.
그녀가 믿는 이상적인 육아란 구몬과 수영과 피아노의 로테이션이며 게임보이 같은 퇴폐적인 오락은 끼어들 여지가 없었다.

어른에게 있어 이상적인 자식은, 아이들 세상에서는 이물질이나 다름없다.
포켓몬에 대한 화제에 따라가지 못하는 나를 기다리던건 소외감이었다.
수영 기록이 빨라져도 초등학생이 소인수분해를 풀어도, 아무도 내게 관심을 주지 않았다.
다들, 방과후에는 통신 케이블을 들고 다나카집에 모여 통신대전에 열중했었다.

드퀘도 FF도 크로노트리거도 TV로 친구들의 플레이 화면을 보는 것만으로도 참을 수 있었다.
하지만 포켓몬은 달랐다.
게임보이 화면은 너무 작아서 가까이 보려고 다가가면  '가깝잖아, 안보여' 라며 매정하게 거절당했다.
통신대전으로 불타오르는 친구들 옆에서 혼자 책장에 꽂힌 오래된 만화잡지를 봤다.
눈물을 참기위해 필사적이었다.

용돈을 모아서 포켓몬 공략본을 샀다.
구석부터 구석까지 너덜너덜해질 때까지 읽었다.
기술머신의 번호와 기술명을 전부 외웠다.
모든 포켓몬의 진화 패턴도 암기했다.
하지만 그곳에는 내가 움직일 수 있는 피카츄도 뮤츠도 었었다.
오히려 허무해질 뿐이라는 걸 깨닫는데는 그렇게 긴 시간이 걸리지 않았다.

어른이 된 지금이라면 알 수 있다.
건전한 것들에 둘러싸여 유혹에 지지 않고 건강하게 자라주길 바란다는 어머니의 마음은 세상에서 사랑이라고 부르는 것이라는 걸.
내가 사립대라고는 해도 와세다를 나와서, 나름대로 이름 있는 기업에 들어가 일하게 된 것은 어머니의 사랑 덕분이다.
하지만, 유소년기에 충족되지 못한 마음은, 갈증은, 지금도 여전히 확실하게 남아있다.

'우와, 바이올렛이다! 만세! 아빠, 고마워요!'
아침에 거실에서 아마존 포장 박스를 뜯어보며 난리치는 아들.
'생일도 크리스마스도 아닌데, 아직 SAPIX(중학교 입시) 숙제도 다 안했잖아' 라며 찌푸린 표정을 짓는 아내.
이건 아들을 위해서만이 아닌, 내 상처를 치유하기 위한 의식이라 말해도 이해받지는 못할 것이다.

'그러고 보니 a1의 켄타군은 집에 스위치가 없대. 엄마가 엄하시다고. 불쌍하더라'
아들의 지나가는 한마디에 심장 고동이 거칠어 진다.
아이들 세계에서 공통 언어를 가지지 못하고 어머니의 감시속에서 편차치를 올리기 위해 일일 문제집을 묵묵히 푸는 초등학교 남학생.
얼굴도 모르는 켄타군의 일상을 떠올리자 가슴이 조여들었다.

심야에 가족이 모두 잠든 아파트 저층의 거실에서 혼자 스위치에 전원을 넣는다.
나오하가 마스카냐까지 진화해도, 챔피온 로드에서 테사를 쓰러트려도
놀라움이나 기쁨을 공유할 친구는 어디에도 없다.
맥주를 한모금 마신다.
내가 진짜로 바랐던 건, 이제 두 번 다시 손에 넣을 수 없다. 

길게 주저리 주저리 글을 썼다가 다 지웠다.  결론 부터 간단히 말하겠다.

전공 vs 비전공

압도적으로 전공자가 유리하다. 이건 논란의 여지조차 존재하지 않는다. 대부분의 비 전공자들의 안타까움은 잘 이해하고 있다. 나도 20년간의 개발자 경력동안 어느정도 경력자 사이에서는 전공이 의미가 희미해 지는 순간이 온다는 것을 절대적으로 이해한다. 하지만 신입에서는 이야기가 다르다.

'당신이 그냥 전공자를 편애하는 개발 리더 아닌가?' 라고 말할 수도 있겠지만, 내 인생에서 첫 사수가 역사학과 출신 개발자 였다. 엄청나게 코딩을 잘하시는 훌륭한 개발자셨다. 그리고 오랫동안 같은 팀으로 회사를 옮겨도 같이 일하는 클라이언트 개발자는 처음에 뽑을때부터 비전공자 출신이였다. 나도 비전공자가 훌륭한 개발자가 될 수 있다는 것을 누구보다 잘 아는 개발 리더라는 이야기가 하고 싶은 거다.

그럼에도 불구하고 요즘 학원에서 천편일률적으로 배우고 나오는 비전공 개발자들의 이력서에는 특별함이 존재하지 않다. 즉 나는 현실을 말하는 것이다. 대부분의 사람들 심지어 비전공자 본인 조차도 전공자와의 서류 싸움에서는 힘들 것이라는 것을 이해한다. 비전공 개발자들은 서류 부분 트라이부터 엄청나게 큰 핸디캡을 가지고 전공자들과 싸워야 한다. 단지 학원에서 프로젝트 했다는 것으로는 개발 리더의 흥미를 끌기가 어렵다.

그래서 추천한다. 물론 엄청나게 어려울 것이다. 하지만 그러한 과정을 거치고 나서 당당히 그 내용을 기재했다면 개발 리더는 조금이라도 다르게 지원자를 바라보게 될 것이다. 학원을 졸업해서 취업 준비 기간중에 개인 프로젝트를 하라는 것이다. 아 물론 하는 사람들 엄청나게 많다는 것을 안다. 실제로도 이력서를 보면 개인 프로젝트 엄청나게들 많이 한다. 하지만 그 수 많은 사람중에 실제로 제품화 까지 도달하는 사람은 거의 없다. 개인 프로젝트 라지만 학원 강사의 지원을 받지 않으면 github 에 README 하나 작성하지 못하는 지원자들이 수두룩 하다.

즉 클라이언트라면 실제로 제품을 만들어서 스토어에 올리고, 서버 개발자라면 실제로 제품을 런칭해서 URL 까지 입혀서 출시해서 실제로 클릭해서 동작하게 만들라는 거다. 아 물론 이래도 관심을 가지지 않는 개발 리더가 존재할 수도 있다. 그래도 어쩌겠는가? 개발은 그만큼 전공자가 유리한 필드다. 그 천장을 무너뜨리려면 그정도 정성을 기울여야 이력서를 보고 한 번 이야기라도 할려고 서류를 통과 시킬 것이다.

요약하면 비전공자들은 이력서에 더욱더 노력을 기울이고 '색안경을 끼고' 바라보는 개발 리더가 흥미를 가지게 할려면 무엇을 해야 할지 고민하라는 것이다. 제품을 출시하는 것이 크나큰 강점이 될 것이라는 것이 내 의견이다.

ps. 실제로 나는 클라이언트 개발자가 다른 회사에 거의 50번의 면접에서 떨어지고 우리 회사에 지원 했을 때 그 친구가 만든 제품을 실제로 스토어에 올린것을 깔아보고 나서 면접을 거쳐 뽑게 되었다. 그 친구는 아주 훌륭한 개발자로 성장했다. 

gtpai 를 이용하니 Multibyte 처리가 안되어 있는 함수를 이용하기 때문에 제대로 동작하지 않는다. 그거와 최대한 유사하게 가장 간단한 기능만을 옮겨봤다. 

 

(defvar gpt-base-url "https://api.openai.com/v1/completions")
(defvar gpt-chat-url "https://api.openai.com/v1/chat/completions")

(defcustom gpt-model ""
  "API Model for OpenAI."
  :type 'string
  :group 'crutil)
(defcustom gpt-api-key ""
  "API key for OpenAI."
  :type 'string
  :group 'crutil)



(defun send-query-to-gpt (text)
  "ask to gpt"
  (interactive
   (list (read-string "물어봐: ")))

  (when (null gpt-api-key)
    (error "OpenAI API key is not set"))

  (let* ((url-headers
	  `(("Content-Type" . "application/json")
	    ("Authorization" . ,(format "Bearer %s" gpt-api-key))))
	 (url-data
	  (json-encode `(("model" . ,gpt-model)
			 ("prompt" . ,text)
			 ("temperature" . 0.7)
			 ("max_tokens" . 1000)))))
    (request
      gpt-base-url
      :type "POST"
      :data url-data
      :headers url-headers
      :parser 'json-read
      :success (cl-function
		(lambda (&key data &allow-other-keys)
		  (insert (cdr (assoc 'text (elt (cdr (assoc 'choices data)) 0))))))))

  )

 

적당히 load 될 수 있는 곳에 이 함수를 만들어 두고 

 

(require 'cr-utils)
(setq gpt-model "text-davinci-003")
(setq gpt-api-key "<INSERT YOUR API KEY>")

(global-set-key (kbd "C-c o") 'send-query-to-gpt)

맨 위의 cr-utils 는 send-query-to-gpt 함수가 위치한 파일이다. 

 

이러면 편리하게 사용할 수 있다. GPT 는 상당한 구라쟁이지만 말이다. 

+ Recent posts