6월, 2019의 게시물 표시

제주도 여행 (6/4 ~ 6/6)

이미지
퇴사 후 새로운 회사에 출근하기 전에 혼자서 2박 3일 제주도 여행을 다녀왔다.  국내선 비행기도 처음이였고 김포공항도 처음이였고 제주도도 처음이였다. 제주도 도착하자 마자 공항 밖의 모습 이국적인 모습의 나무를 보고서야 여행을 왔다는게 실감이 됐다.  여행 계획은 전무했다. 그냥 제주공항에서 남쪽으로 가는 아무 버스나 탑승했다. 버스에서 한 친구가 카톡으로 여기를 가보라고 해서 중간에 버스를 내리고 택시를 타서 981파크로 갔다. 여기는 레이싱하는 곳이였다. 신나게 레이싱을 했더니 스트레스가 풀리고 좋았다. 위는 레이싱이 끝나고 자율주행모드일 때 찍은 사진. 숙소에 도착했을 땐 이미 해가 지고 있었다. 숙소는 김포공항에서 비행기 탑승전 즉흥적으로 구했다. 근데 괜찮은 숙소를 잡은 것 같아서 기뻤다. 저녁에 흑돼지와 맥주를 먹으며 사람들과 같이 얘기를 나누었다. 밤에 이상하리만치 잠을 뒤척였다. 잠을 거의 자지 못하고 그냥 새벽에 숙소를 무작정 나와 산방산쪽으로 걸었다. 그러다보니 절이 나와서 절 구경을 했다. 삼배도 하고 소액의 불전금도 넣고 나왔다. 나는 권태국이다. 그렇게 동네를 돌아다니다가 다시 숙소로 돌아오니 숙소가 참 이뻤다.  이런 테라스도 있고 숙소는 참 잘 고른 것 같다. (그냥 카카오맵에서 아무데나 전화한거긴 하지만..) 그리고나서 아침을 먹으러 다시 숙소를 나왔다. 바로 근처에 바다가 있어서 참 좋았다.  저기 보이는 큰 덩어리는 산방산. 그리고 오른쪽에 튀어나온 곳은 용머리 해안. 아침을 먹고 숙소를 나와 마라도로 가는 여객선을 탔다. 바닷물이 일렁일렁~   마라도는 너무너무너무 예뻤다. 딱 도착한 순간 아 진짜 잘왔다 라는 생각이 들었다.  너무 멋있고, 자유롭고,  맛있었다. ...

Boost.Exception 소개

안녕하세요~ 오늘은 Boost.Exception 에 대해서 간단하게 소개해볼까 합니다. Boost.Exception 이란? Boost.Exception 은 예외 계층을 설계하고 예외 핸들링을 수행할 때 도움을 주는 라이브러리입니다. 제가 Boost.Exception 을 사용하면서 얻을 수 있었던 이점은 다음과 같습니다. 예외가 발생한 시점의 소스파일 이름, 라인 넘버, 함수명을 예외 객체에 쉽고 편하게 담을 수 있습니다. throw std::exception() 대신에 BOOST_THROW_EXCEPTION(std::exception()) 을 사용하면 std::exception 을 wrapping 하는 예외 객체가 만들어지고 그 안에 소스파일 이름, 라인 넘버, 함수명이 담깁니다. 나중에 diagnostic_information() 혹은 current_exception_diagnostic_information() 을 통해 예외 정보를 출력하면 소스파일 이름, 라인 넘버, 함수명 정보가 같이 출력됩니다. 이러한 정보는 나중에 문제의 원인을 파악할 때 매우 큰 도움이 됩니다. 예외 객체의 타입과 예외 객체에 담기는 정보의 종류가 서로 decoupling 됩니다. 즉, 임의 타입의 예외 객체에 임의 타입의 정보를 담을 수 있습니다. 예외 클래스 계통은 어떤 종류의 예외인지를 구분하는 tag 로서 설계하고, 예외 객체를 throw 하는 시점에 throw 측에서 담을 수 있는 임의의 정보들을 임의 타입의 예외 객체에 집어넣을 수 있습니다. 공식문서의 Motivation 문서 를 읽어보시면 좋을 것 같습니다. BOOST_THROW_EXCEPTION() BOOST_THROW_EXCEPTION(~~~) 를 사용하면 ~~~ 을 wrapping 하는 예외 객체를 만든후 그 안에 소스파일 이름, 라인 넘버, 함수명을 담아서 throw 하게 됩니다. # include <iostream> # include ...

이직을 하게 되었습니다

5월 31일자로 퇴사를 하고 6월 10일부터 새로운 회사를 다니게 되었습니다. (병특 이직) 새로운 회사에서는 기존과는 다른 일을 하게 되었습니다. 신규 게임 서버 개발을 담당하게 됐고 스칼라를 이용해서 함수형 프로그래밍을 하게 됐습니다. 이직을 하는데는 다양한 요인들이 복합적으로 작용했습니다. 하지만 핵심적인 요인은 진로에 대한 저의 고민으로부터 비롯됐습니다. 지난 세월동안 저의 주된 관심사는 라이브러리/프레임워크 개발, 시스템 프로그래밍, C++, 코어 모듈 개발 같은 것들이였고, 이러한 것들을 공부하는 데 많은 노력과 시간을 투자했었습니다. 하지만 회사를 다니면서 저도 현실적인 측면들을 고려하게 되었고 저의 관심사도 변해가는걸 느꼈습니다.     일단 첫째로 제가 좋아하던 것들은 현실적으로 양질의 일자리가 많지 않습니다. C++개발자로 예를 들자면 구글, 페이스북, 아마존 같이 매우 규모있는 회사 혹은 소수의 외국 회사들 외에는 "C++을 제대로" 하는 회사는 거의 없어보입니다. 그렇다보니 피고용인의 입장에서 회사를 선택할 수 있는 폭이 매우 적다고 느꼈고 일자리의 유연성이 떨어진다고 생각했습니다. 반면에 자바, 파이썬등을 이용해 인터넷 서비스를 개발하는 일자리들을 보면 양질의 일자리/회사가 매우 많고 대우도 매우 좋다고 생각합니다. (특히 한국은 더더욱 이러한 편차가 심하다고 느껴집니다.)     둘째로 좀 더 세상에 직접적으로 영향을 끼치고 의미를 부여할 수 있는 개발이 하고 싶어졌습니다. 다양한 어플리케이션에서 활용할 수 있는 기반 라이브러리를 개발하는 것도 물론 아주 큰 의미가 있지만 세상에 실질적으로 가치를 창출하는 것은 어플리케이션 (응용개발) 입니다. 개발과정에서 기술적인 성취감외에도 내가 작성하는 코드가 많은 사람들의 삶에 영향을 준다는 느낌을 받고 싶어졌습니다. 위에 적은 것들을 비롯한 다양한 생각들을 하고있습니다. 개발 전반적인 것들에 대해서는 많은 경험을 했다고 생각하지만 아직 저에게는...