최근 크리스토피데스 알고리즘을 직접 구현해서 사용해볼 기회가 생겼다. Swift 뿐만 아니라 다른 언어에서도 이 알고리즘을 순수하게 작성한 자료가 없는 것 같아서 따로 글로써 작성해본다.(*순수하게라는 뜻은 내장 라이브러리를 사용하지 않고 구현한 것을 뜻한다) 다만, 내가 구현한 알고리즘은 TSP문제에서 시작 정점이 정해져있고 다시 시작 정점으로 돌아오지 않는 경우에 적용할 수 있는 알고리즘이다. 만약 기존 TSP 문제의 상황에서 사용하고자 한다면 몇가지 수정을 거쳐야한다. 이 점 참고하면 좋을 듯 하다. 크리스토피데스 알고리즘이란?TSP(외판원 순회 문제)는 한 세일즈 맨이 자신의 도시에서부터 시작하여 다른 도시들을 방문해가며 출장을 다녀야할 때, 소모해야하는 최소 비용을 구하는 문제이다. 유명한 N..

최재천 저자(글)김영사 · 2024년 05월 10일서평 ‘숙론 (熟論)’이란 깊이 생각하여 충분히 의논함이라는 뜻을 가진다. 한자로는 익을 숙(熟) 논할 논(論)자를 썼는데, 직역하자면 무르익을만큼 논하다라는 뜻을 가진다. 저자도 여러 사람이 치열하게 의논하는 것이 숙론의 본질이자, 핵심이라 주장한다. 그러나 어떻게? 다른 사람의 의견에 귀를열고 자기 의견을 갖고 남과 부딪히면서 열심히 의논하면 되는가? 나는 이에 대한 좋은 방법이나 통찰을 소개해 주는줄 알았는데, 그런 부분을 명쾌하게 이야기해 주는 부분은 없었다. 여러 일화를 중간중간 이야기를 해줬는데, "숙론을 했다"라는 결과가 주로 일화에 나와 있고, 어떻게 숙론을 했는지에 대한 과정은 없었다. 이 점이 제일 아쉬웠다. 내가 책을 읽기 전 기대했..

루 샤오펑 저자(글) 길벗 · 2024년 03월 11일 서평추상화 계층은 프로그래밍을 즐길 수 있는 낙원이다. 하지만 추상화 계층을 넘어서거나 자신만의 낙원을 만들고 싶다면 저수준 계층을 이해해야한다. 그리고 이것이 고급 프로그래머를 구분 짓는 요소이다. 난 대학교에서 컴퓨터 공학을 전공했었다. 수업으로 CS지식을 배웠었고, 성적도 나쁘지 않게 받았었다. 그러나 내가 CS지식을 잘 이해하고있는가 생각해봤을 때는 아닌 것 같았다. 자신감이 없었다. 여러 CS 키워드들에 대해서 들으면 무엇인지 알고있었지만, 왜 해당 기술이 고안 되었는지, 정확한 동작은 어떻게 이루어지는지, 다른 컴퓨터의 구성요소와 어떻게 결합되어 사용되는지 몰랐다. 이해를 못하고 있었던 것이다. 이 책은 아주 친절하게 컴퓨터를 이해할 ..

나는 2021년 중국 베이징에서 유학 생활을 했던 경험이 있다. 당시 중국은 이미 생활 전반에 모바일 기기를 이용하는 것이 녹아든 상태였는데 일례로, 우리나라로 치면 포장마차 같은 곳에서 자신의 위챗 QR 코드를 걸어놓고 송금을 받는 게 아주 보편적인일이였다. 또한 대부분의 음식점은 현금이나 카드를 받지 않고 QR 코드를 이용해서 돈을 송금하고 받았다. 그중에서도 가장 충격을 받았던 것은 카메라로 얼굴을 스캔해서 값을 지불하는 음료 자판기였는데... 이건 일단 각설하고, 이번에는 음식점 내부에서 사용하는 메뉴판에 관해 이야기해보려한다. 중국 vs 한국 한국에서는 태블릿으로 메뉴들을 보고 음식을 주문한다. 반면 중국에서는 QR 코드를 스캔하여 메뉴판을 보고 음식을 주문한다. 물론 한국에서도 모바일 메뉴판..

지금 인턴 3개월을 마치고, 거의 1달이 지나서 이 글을 쓰고 있는데 이래저래 휴식도 하면서 내 나름의 정리도 하느라 시간이 좀 걸렸다. 결론부터 말하자면, 나는 전환 면접에서 불합격했다. 기쁘게 전환 소식을 가족들과 친구들에게 전해주고 싶었지만.. 아쉽게도 이번에는 좋은 소식을 들려주지 못했다. 하지만 어쩌겠는가, 아쉬운 것은 아쉬운 대로 두고 이 소중한 경험을 발판 삼아 더 성장하면 된다고 생각한다. 이제 제대로 새롭게 시작하는 시점에서 내가 인턴을 하면서 무엇을 배웠는지, 왜 전환이 안됐는지, 앞으로는 어떻게 할 것인지에 대해 적어보고자 한다. 인턴 하면서 배웠던 것들나는 인턴십에서 기존 개발된 기능을 개선하는 업무를 맡아서 진행했다. 요구사항은 모호하지만 명확했는데, '기존 기능 개선'이라는 큰..

너무 뜬금 없지만, iOS 인턴 개발자로 합격하고 나서 회고록을 작성해야겠다는 생각이 들었다. 내가 이렇게 성장하기 까지 도움을 주신 고마운 분들을 기억하고 글로써 새기고 싶다는 마음도 있고, 내가 성장했던 과정을 되짚어 보며 나의 변화를 정리해보고 싶다는 마음도 생겼다. 그리고 앞으로 개발자로서의 방향성을 잡고자한다. 개발자로서의 시작사실 개발을 접한 것은 꽤 오래전이였다. 지금으로부터 5년전, 2019년 여름방학 때 형이 나에게 C++ 프로그래밍 서적을 쥐여 줬다. 잘 기억은 안나지만, 아마 내가 프로그래밍에 대해 관심을 가져서 개발자였던 형한테 프로그래밍을 어떻게 공부해야하는지 물어봤던 것 같다. 처음 보게된 이 프로그래밍 책은 당시에 명확히 내용을 이해할순 없었지만, 너무 재미있었다. 변수, ..