전체 글 15

[Brave Clojure #5] 챕터 4 연습문제

챕터 4 연습문제를 풀었습니다. ;;; ex 4.1 (def result (glitter-filter 3 (mapify (parse (slurp filename))))) (map :name result) ;; => ("Edward Cullen" "Jacob Black" "Carlisle Cullen") ;;; ex 4.2 (defn append [[car & cdr] new-suspect] (if car (cons car (lazy-seq (append cdr new-suspect))) (list new-suspect))) (append '() 1) ;; => (1) (append '(1 2 3 4) 5) ;; => (1 2 3 4 5) ;;; ex 4.3 (def validators {:..

[Brave Clojure #4] reduce로 map, filter, some 구현하기

map의 설명을 마치 고 저자는 이렇게 말합니다. "If you want an exercise that will really blow your hair back, try implementing map using reduce, and then do the same for filter and some after you read about them later in this chapter." 안해 볼 수 없겠죠 (defn map-by-reduce [f xs] (seq (reduce #(conj %1 (f %2)) [] xs))) (map-by-reduce inc [1 2 3 4]) ;; => (2 3 4 5) (def food-journal [{:month 1 :day 1 :human 5.3 :critter 2..

[Brave Clojure #2] leiningen은 한 물 갔고, deps.edn을 쓰자

deps.edn 1챕터에서 clojure 프로젝트를 생성하고, 실행하고, 빌드하는 과정은 leiningen이라는 외부 프로그램을 이용합니다. 부록에서는 추가적으로 boot라는 프로그램도 알려주고 있습니다. 책을 쓰던 당시에는 거의 대부분의 사람이 liningen을 사용했고, boot라는 프로그램이 점점 인기를 얻고 있었던 것 같습니다. 그러나 liningen과 boot의 차이점을 알아보기 위해서 검색을 좀 해봤는데, 여전히 liningen은 많은 사람들이 쓰고 있었지만 사용비중이 점차 줄어들고 있는 상황이고, boot는 거의 사라져버렸습니다. 대신해서 많은 사람들이 쓰고있고, 줄어드는 liningen 사용량의 원인이 되는 것이 바로 deps.edn입니다. deps.edn은 clojure 언어를 유지보수하..

[Brave Clojure #1] Brave Clojure 공부 시작

평소에 관심있었던 Clojure 언어를 공부하기 시작했습니다. 여러 자료들 중, 가장 괜찮아 보이는 Brave Clojure라는 책을 골랐습니다. 풀네임은 Clojure For the Brave and True이고, 부족한 영어실력으로 한글화를 해보자면 "용감하고 진실한 자들을 위한 클로져" 쯤 될 것 같습니다. 프로그래밍 언어를 가르치는 책 치고는 꽤나 우스꽝스러운 제목입니다. 비단 제목만 우스꽝스러운 것은 아니고 공부의 과정이 조금이라도 덜 지루하게끔 저자들이 채택한 전략인 것 같습니다. 그래서 새로운 언어를 배우는 것을 4개의 미궁을 헤쳐나가는 것이라고 비유하기도 하고, 실생활과 밀접한 예제를 피하고 "호빗 공격하기"나 "반짝이는 뱀파이어 쫓기"와 같은예제를 낼 것이라고 엄포를 놓습니다. 4개의 미..

구글 검색을 하다보면 주어지는 구글 입사기회

구글에서 개발과 관련된 검색을 열심히 하다보면 구글이 입사기회를 준다는 사실을 알고 계셨나요? 저도 뜬소문으로만 들어 봤었는데요. 최근에 운이 좋게 직접 경험해볼 수 있는 기회가 생겨서 한 번 참여해봤습니다. Google Foo Bar 이 채용 절차의 공식 명칭은 "Google Foo Bar" 입니다. "Foobar Challenge"로도 많이 불립니다. 구글 검색 기록을 바탕으로, 구글이 원하는 유형의 사람이라고 내부적으로 판단하게되면 구글 화면이 갈라지면서 아래와 같은 방식으로 시작됩니다. 이 챌린지를 진행하다보면 지인을 추천할 수 있는 초대장을 주는데, 이 추천 코드를 통해서도 접근할 수 있게 됩니다. 아쉽게도 제가 직접 구글의 간택을 받은 것은 아니고, 지인의 추천 코드를 통해 접근권한을 얻었습니..

[유로트럭으로 운전면허 따기 #9] 마치며

이전글: 2018/04/11 - [게임으로 운전면허] - [게임으로 운전면허 #8] 어쩌다 보니 도로에 - 도로주행 면허 소지자가 되다 얼떨떨한 기분으로 짐을 챙겨 응시표를 받으러 갔습니다. 마지막 세 번째 합격도장까지 받았습니다. 학원이 아니라 시험장에서 시험을 치면 당일에 바로 새 면허증을 받아올 수 있기 때문에 창구로 가서 응시표를 내고 면허증을 받았습니다. 그제서야 진짜 면허를 따긴 땄구나 실감이 났습니다. 재밌을 것 같아서 시작한 일이지만, 실제로는 정말 될까? 하는 일말의 의심도 품고 있었던 것이 사실입니다. 필기 시험 유효기간은 1년이니까 1년 안에만 딸 수 있도록 하자고 생각했습니다. 언제 휠을 샀나 구매기록을 살펴보니 2월 19일. 어쩌다 보니 휠을 주문한지 꼭 4주만에 면허증을 받게 되..

[유로트럭으로 운전면허 따기 #8] 어쩌다 보니 도로에 - 도로주행

이전글: 2018/04/10 - [게임으로 운전면허] - [게임으로 운전면허 #7] 처음 앉아본 운전석 - 기능시험 쇠 뿔도 단김에 빼랬다 생각지 못하게 기능시험을 붙게되어 며칠간 목적지 없이 표류하게 되었습니다. 공도를 주행한다는 게 살짝 부담스러워 연습면허로 도로연수를 받아야하나 고민하기도 했습니다. 그러면서도 유로트럭은 꾸준히 즐겼습니다. 일단 도로주행도 예습을 해야할 것 같아서 유튜브 영상을 찾아보며 예습했습니다. 서부면허 시험장의 도로주행 A, B, C, D코스를 주행하며 찍은 영상들을 보며 각 코스가 어떻게 진행되는지 공부했습니다. 코스를 외우려면 A, C와 B, D의 겹치는 부분이 많으니 A, B, C, D 순서대로 보지말고 A, C, B, D의 순서로 보는 것이 좋습니다. 심지어 화면에 코..

[유로트럭으로 운전면허 따기 #7] 처음 앉아본 운전석 - 기능시험

이전글: 2018/04/09 - [게임으로 운전면허] - [게임으로 운전면허 #6] 통곡의 벽, 시뮬레이션 긴장은 더해만 가고 첫 응시생이 실격당하자 '아이고' 하는 탄식과 함께 여기저기서 웃음이 터져나왔습니다. 마냥 같이 웃을수만은 없었는데, '나도 저러면 어쩌나' 하는 걱정도 함께 들었기 때문입니다. 매도 먼저 맞는 편이 낫다고 앞쪽 차례이길 바랐지만 저는 거의 마지막 차례였습니다. 비웃을 사람이 없어지고들 있으니 그나마 다행인건가? 싶으면서도 긴장은 자꾸 더해만 갔습니다. 이름이 호명되고 차에 탑승했습니다. 탑승을 도와주시는 안전요원분이 이것 저것을 체크해주셨습니다. 시뮬레이터 카를 할 때 전조등 조절레버가 상향등쪽으로 밀려있어서 전조등을 켰는데도 감점을 당한 경우가 있었는데(하향등 켜기 - 상향등..

[유로트럭으로 운전면허 따기 #6] 통곡의 벽, 시뮬레이션

이전글: 2018/04/08 - [게임으로 운전면허] - [게임으로 운전면허 #5] 본격적인 첫 걸음, 필기시험 15점, 그 처참했던 첫 시도 "지정속도 초과 감점입니다." 놀란눈으로 쳐다본 점수판에는 이미 감점사항이 기록돼있었습니다. 경사로에 정차했다가 지나가려고 살짝 가속페달을 밟았는데 생각보다 너무 가속이 잘 되어서 20km/h의 최고속도를 넘어버렸습니다. 유로트럭에선 뒤에 15톤짜리 화물을 달고 다녀서 살짝 밟은 가속페달에 이렇게 쉽게 가속되지 않았는데 말이죠. 경사로를 내려갈때 브레이크 조절을 잘못해서 감점, 회전하다 차선을 밟아서 감점, 직각주차 구간에서도 감점... 이어지는 감점의 연속이었습니다. 코스를 다 돌고나서 점수판을 보았을 땐, 15점이라는 처참한 점수가 필자를 반기고 있었습니다. ..