전체 글 104

2016 - Silent Storm (고1)

2016년, 고1의 3월에는 알파고와 이세돌의 대국이 있었다. 그냥 지나칠 수 없었던 나는 (지금기준) 간단한 Minimax 알고리즘의 오목 AI를 구현해본다. 당시 나는 코딩을 본격적으로 시작한 지 1년도 채 안된 뉴비였기에 나름 큰 도전이었었다. To my own surprise, 일주일만에 동작하는 무언가를 만들어낸다. 하지만 오목 성능은 그닥 좋지 않았었다. 여러가지 최적화를 통해 착점 속도를 3분에서 3초까지 낮추었지만 여전히 성능은 구렸다 ㅋㅋㅋㅋ 조금 더 탐색공간이 작은 게임을 찾다가 오셀로 게임을 발견한 것으로 기억한다. (아니면 그냥 다른게임도 해보려고 했을지도? 아니면 동아리 부장 선배가 "오 나도 오셀로 AI 만들려고 했었는데"를 듣고 했을지도? 기억이 정확히 안난다. 쓰고보니 후자였..

2015 - Adventureland (중3)

코딩모험을 작성하면서, 블로그를 시작하기 전 과거의 몇몇 작품들을 간단히 올려두면 좋을 것 같다는 생각을 하게 되었다. Adventureland는 내가 처음으로 작성한 (당시 기준) 대형 프로젝트이다. Python 기초 문법 강의만 들었던 내가 우연히 발견한 텍스트 어드벤처 게임인 Dunnet에 신선한 충격을 받고, 당시 내가 알고 있던 Python 지식을 총동원하여 수개월에 걸쳐 만들었다. 정확한 작업 기간은 기억나지 않지만, 여름부터 작업하여 12월 초, 외국인학교를 떠나기 일주일 전에 친구들에게 배포하였었다. 프로젝트를 시작할 때만 해도 이정도 규모의 코딩은 처음인지라 게임의 루프 구조 등을 어떻게 설계해야 할지부터 난감했었던 기억이 난다. 또 (사실 게임이라서 어느정도 허용해도 되긴 하지만) 글로..

코딩모험[4] // 대학교 - 하라는 코딩은 안하고

Syphon의 코딩모험 - 목차대학교에서는, 고등학교 때까지 사실상 Python 하나밖에 모르던 내가 다른 언어도 접하고,컴퓨터 구조도 배우고, 어셈블리도 배우고 하면서 다방면의 스킬셋을 갖춘 개발자로 성장해나가는 시기가 아닌가 싶다. 항상 컴퓨터공학을 배우고 싶었던 나는 운이 좋게 원하는 대학의 원하는 학과에 진학하였고, 이제는 아마추어가 아닌 나름의 전공자로서 코딩을 계속해나갈 수 있게 되었다. 그런데 지금까지는 코딩 != 공부였는데 이제 코딩 == 공부가 되어버려서 공부를 위한 코딩은 갑자기 하기 싫어져버렸다. 또 규모가 크고 배울 점이 많은 개인 프로젝트들은 자꾸 미루게 된다.대신 1학년 때부터 새로 접한 Competitive Programming(프로그래밍 경시대회류의 대회)을 정말 열심히 하긴..

코딩모험[3] // 고등학교 - 하라는 공부는 안하고

Syphon의 코딩모험 - 목차 Python을 접한 지 약 반년이 지났다. 그새 객체지향을 배워서, 예비 고1 방학 동안 전작과는 확장성과 기능 측면에서 비교도 안되게 발전한 Adventureland 2를 완성.. 하지 못하고 게임 엔진만 다 만들어두었다. (퍼즐 게임이었던 전작과는 달리 RPG 느낌의 설계였고, 자동으로 움직이는 적, 속성을 가진 무기 등을 구현했었다.) 고등학교에 입학하자마자 SOMAD(현 PATCH)라는 컴퓨터 동아리에 가입했다. 당시 제출했던 지원서를 보면 2016년의 내가 뭘 할 수 있(다고 생각했)었는지 살펴볼 수 있다. 입학하던 해 2016년의 3월에는 AlphaGo와 이세돌의 대국이 있었다. 뭔가 상당히 흥미로워보여서, 게임 AI를 어떻게 만드는지 검색해보았고, minima..

코딩모험[2] // 외국인학교 - 이게 코딩... 이구나?

Syphon의 코딩모험 - 목차 외국인학교를 가고 2011년에 ICT 과목이 처음 생겼다. 하지만 개교한 지 얼마 되지 않았던지라 IT 선생님이 없었다. ICT 수업 시간에는 과학 선생님이 그냥 MS Excel을 하는 둥 마는 둥 가르쳤다. 그래도 이때 엑셀 함수들을 작성하면서, 코딩할 때와 유사한 느낌을 받았던 것 같다. 어떠한 작업을 하는 방법을 단계별로 쪼개서, 컴퓨터에게 설명하는 느낌? 설명하기를 좋아하는 내가 컴퓨터에게 하는 설명에도 재능이 어느정도 있다는 것을 깨닫는 계기였다. 그리고 1년 후에 진짜 IT 선생님이 왔다. 2012-2013년에는 RAM, HDD, CPU와 같은 컴퓨터 부품들의 역할을 배웠고, Linux(Ubuntu 12.04 LTS였다)에서 MIDI 음악편집과 크로마 키 배경치..

코딩모험[1] // 초등학교 - 이게 코딩... 일까?

Syphon의 코딩모험 - 목차 초등학교 2학년, 그러니까 2008년부터 로봇공학 방과후를 들었다. 로보로보 회사의 로봇 키트와 교재를 참고해 다양한 로봇들을 만들어보는 내용이었는데, 크게 로봇을 설계대로 조립하는 과정과, 로봇 제어를 위한 프로그래밍의 두 단계로 나뉘는 활동이었다. 아쉽게도 우리 학교는 프로그래밍까지 다 시킨다는 몇몇 학교와 달리 노가다성 로봇 조립만 학생에게 시켰다. 하지만 로봇 조립 과정에서도 수확은 있었다. 코딩과는 다소 무관하지만, 열심히 조립을 하며 나사는 오른쪽으로 돌리는 것이 조여지는 것이라는 아주 유용한 사실도 알게 되었다. 아, 그리고, 로봇 코딩은 로직(Rogic)이라는 블록 코딩 프로그램으로 진행되었는데, 학교에서 가르치지는 않았지만 혼자서 책 보면서 비슷하게 따라해..

코딩모험[0] // 서문 (a.k.a. 이 뻘글은 무엇인가)

Syphon의 코딩모험 - 목차 { 나와 프로그래밍의 애증관계 이야기 } /* ...는 사실 내가 코딩을 언제 어떻게 시작했고 뭘 했는지에 대한 정리글 */ 서문에 대한 짧은 서문 은 필자가 군 복무 중 작성한 동일 제목의 HTML 문서를 초고로 삼아 작성되었다. 본 블로그에 올라온 버전은, 원본에는 포함시킬 수 없었던 적절한 이미지와 자료를 가미해 더욱 완성된 기록으로 만들고자 하였다. 은 나와 코딩의 인연을 다룬 일종의 회고록이다. 내가 컴퓨터공학을 전공으로 삼을 줄이라고는 상상도 못했던 어린 시절의 경험부터, 이 글을 작성하고 있는 현 시점까지, 코딩과 함께하는 여정에는 다양하고 (내 기준) 신나는 일들이 수없이 있었다. 비록 길지 않은 정리글이지만, 이 글을 통해 그..

내가 우분투에 카카오톡을 설치한 방법 / Installing KakaoTalk on Ubuntu (22.11.29)

서론 간단한 구글 검색을 해보면 Wine과 PlayOnLinux 등을 이용해 Windows용 카카오톡을 Ubuntu에 설치해 사용하는 자세한 방법이 많이 나온다. 대부분의 방법은 특정 wine 버전을 설치하고, 특정 설정으로 몇몇 라이브러리들을 설치하는 등, 꽤나 튜닝해야 할 내용이 많다. 하지만 한글 깨짐과 창 표시 버그가 쉽게 발생했고, 설치해야 하는 dependency 등이 복잡하고 귀찮아 그간 VirtualBox 위에 Windows 10 인스턴스를 돌리는 방식으로 카카오톡을 사용했었다. 그러던 어느 날.. 그냥 혹시나 하는 마음에 저런 가이드를 하나도 보지 않고 Wine을 통한 카카오톡 설치를 아주 간단하게 시도해봤다.. ...그런데 그냥 되더라..? 기록 차원에서, 그리고 혹시나 다른 누구에게 ..