라벨이 근황인 게시물 표시

이직을 하게 되었습니다

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

최근 근황

오랜만에 글을 쓰는 거 같다.. 최근 근황은 뭐 계속 회사 생활의 반복이다.. 눈깜짝하니 입사한지도 1년이 어느새 훌쩍넘었다. 뭔가 해보고 싶은게 많은데, 회사 다니면서 출퇴근 시간도 길고, 내가 체력도 안좋고 부지런한 편도 아니라서 진짜 회사만 다니기 벅찼던 것 같다. 그래도 나름 뭔가 해보려고 최근에 2가지 활동을 했었다.     그중에 하나는  컨트리뷰톤 이다. 작년이나 올해 초까지만해도 오픈소스 활동을 했었는데, 회사다니면서 자연스레 멈추게 되었다. 다시 한번 오픈소스 활동을 시작하기 위한 계기를 삼으려고 컨트리뷰톤이라는 프로그램에 참여하여  uftrace  라는 C/C++ function tracing 툴 프로젝트에서 활동을 했다. 현재는 컨트리뷰톤 활동은 끝났고, 이번 달 말에 폐회식?시상식? 이 있을 예정이다.     또 하나는 블록체인 스터디이다. 반년전쯤부터인가 블록체인쪽에 관심이 생겨서 한번 공부를 해보려고 스터디를 하게 되었다. 스터디는 현재 진행형이다. 회사를 다니면서 이렇게 2가지 활동을 동시에 했다. 이 활동들에 내가 투자하려고 했던 시간/에너지 양이 대략 있었는데, 막상 해보니 실제로 투자한 시간은 내 예상의 20% 도 안되는 것 같다. 신규 기능개발로 인해 회사 일이 최근에 바쁘기도 했고, 생각보다 내가 시간과 자기관리를 제대로 못했다. 시간투자를 많이 못한게 아쉽긴 한데, 일단 뭐라도 해본 것에 의의를... 아 그리고, 최근에  우리 팀 우리 파트 채용공고 를 새로 냈다. 기존의 채용 공고가 너무 모호하고 매력이 떨어진다고 생각해서 내가 건의를 해서 채용공고의 내용을 바꿔봤다. 채용공고 보기/숨기기 모집부분 - C++ 기반 공용 모듈 개선 및 개발 - C++ 기반 엔진 모듈 개선 및 개발 담당업무 - 사내 C++ 공용 라이브러리 개선 및 개발 - C++ 기반 악성코드 탐지/치료 엔진 개선 및 개발 - 코드 품질...

이것이 직장인의 삶이구나

회사에 온지도 8개월이 넘었고, 병특을 시작한지도 반년이 넘었다. 회사 입사 지원 서류를 쓴게 엊그제 같은데,, 시간이 진짜 빨리 흐르는게 느껴진다. 아침에 일어나서 회사에 출근하면, 좀 만 지나면 점심시간이 되고, 또 눈 깜박하면 퇴근 시간이 된다. 그리고 집에 와서 저녁먹고 그러면 또 자야할 시간이 된다. 일주일에 이런 생활을 5일 반복한다. 회사 일 자체는 즐겁게 하고 있다. 기존 레거시 코드베이스에서 요구사항을 추출/개선해서 새롭게 코드를 재작성하고 있다. 아예 리포지토리부터 새롭게 파서, 프로젝트를 처음부터 정립해나가다보니 많은 것들을 도입하고 개선할 수 있다. 설계, 자동화된 테스트, 문서화, CI, 정적분석툴, 예외처리 등 다양한 부분들을 고민하면서 진행하고 있다. 나름 소프트웨어 장인 정신을 가지고 개발을 하기 위해 노력중이다.. 학생때부터 나는 리펙토링, 코드깍기를 좋아했는데 그냥 아무생각없이 병특으로 들어온 회사에서도 내 흥미/적성에 맞게 일을 하게 되서 신기하고 감사하다. 무튼, 회사에 오고나서 실력은 많이 늘은 것 같고, 앞으로도 실력이 많이 늘꺼 같아서 좋다. 물론 아쉬운 점도 있다. 기존 레거시 코드베이스(프로젝트) 의 품질과 프로세스에 대해 실망감이 많았다. 테스트코드의 부재... 구조화되지 않은 요구사항... 당장은 돌아가지만 '찜찜한' 코드들... 스파게티처럼 꼬여있는 의존성... 이것들이 입사 후부터 지금까지 나에게 많은 스트레스를 안겨준다. 지금 내가 하고 있는 작업이 결국 이러한 소프트웨어 품질과 개발프로세스를 개선하기 위한 작업이다. 주인을 잃은 지 오래된 코드들에서 요구사항을 추출하는게 종종 지치고 의욕이 꺽기기도 하지만,, 전반적으로는 재밌게 하고있다...ㅎㅎ (조급함을 버려야만 한다...ㅜㅜ) 아무튼,, 이렇게 회사원의 삶을 살고 있다.. 슬슬 회사에 다니는 게 뻔하고 질린다.. 이런 회사 생활을 나보고 평생 계속 해야한다고 하면... 흠... 회의감이 들꺼 같다...

산업기능요원 현역 시작.

이미지
34개월간의 산업기능요원 현역을 시작하게 됐다. 정당한 절차를 거친 것이긴 하지만, 다른 사람들에 비해 특혜를 누리는 것이기 때문에, 복무기간동안 사회를 위한 활동이나 기부같은 걸 해야겠다는 의무감이 든다. '진짜 현역'으로 군복무를 하신 분들에게 진심으로 존경과 감사를 표하며, 주변에 군복무를 당당하게 마친 친구들에게 식사나 술이라도 대접해야겠다고 생각하고 있다. 아무튼, 기나긴 병특 기간동안 개인적으로도 의미있고, 주변사람들에게도 도움이 될 수 있는 시간들을 보내고 싶다.

GSoC 2017 끝!

이미지
여름동안의 Google Summer Of Code 2017를 성공적으로 끝마쳤다. Final Evaluation를 통과하고, 멘토님에게도 칭찬을 들어서 기분이 좋다. 아무튼 GSoC를 계기로 오픈소스에 직접 기여하면서 C++실력도 상당히 많이 늘게 되어서 뿌듯하다. 역시 실력을 키우는데에는 오픈소스 코드를 보는 게 가장 빠르고 효율적인 것 같다. 아래는 내가 GSoC에서 한 활동에 대한 Abstract이다. (자세한 건 https://summerofcode.withgoogle.com/projects/#5151083935563776 참고) HPX is “The C++ Standards Library for Concurrency and Parallelism”. So, implementing C++17 parallelism like N4409 is very important. Most of parallel algorithms are already implemented. But, still some algorithms have not been implemented. My main objective is implementing as many as possible of the remaining parallel algorithms and adapt them to Ranges TS and add container versions of them. And I add unit tests and benchmark codes for them. Associated with mainly parallel algorithms, I also catch and suggest many issues and resolve them.  비록, GSoC는 끝났지만 계속에서 HPX 오픈소스에서 활동을 하며 contribution을 이어나갈 생각이다. 오픈소스 활동을 통해 얻을 수 있는게 많기 때문이다. C++ 차세대 표준을 공부하고 구현하면서 C++ 실력을 상당히 많이 키울 수 ...

6주간의 인턴 끝.

기간 : 1월 16일 - 2월 28일 (순수 6주) 회사 : http://www.sualab.com Deep learning based industrial image analysis toolkit의 알파버전을 개발했다. (시장에서의 선점 기업은 https://www.vidi-systems.com/ 이다.) 구체적으로 내가 무엇을 했는 지는 https://www.linkedin.com/in/taeguk/ 에 적어놓았다. 회사는 되게 좋다. 우리나라에 이 만한 회사 몇 없을 것이다. 회사가 궁금한 사람은 아래 방송을 보는 것도 좋을 것이다. http://sbscnbc.sbs.co.kr/read.jsp?pmArticleId=10000849000 그리고,, 인턴하면서 느낌점 -> 도메인에 대한 지식과 요구사항 분석은 매우 중요하다.   아무리 C++을 잘하고 소프트웨어 설계를 잘하는 사람이더라도 만약 비지니스 도메인을 파악하지 못한채로 개발을 시작하면, 아무 쓸데없는 결과물이 나올 것이다. 설계를 잘한다는 것은, 고급적인 디자인 패턴이나 어려운 언어 스킬들을 많이 쓴다고 되는 것이 아니다. 기술은 2순위이고, 1순위는 '요구사항'을 정확하게 분석하는 것이다. 요구사항이 정확하게 분석되고나서 기술은 그 뒤를 받쳐주는 것이다. 이번에 가장 뼈져리게 느낀 것이다. 고객들이 어떠한 것들을 요구하는지, 무엇이 중요하고 우선순위인 것인지 파악하고 구체화하는 게 가장 먼저 그리고 충분한 시간을 들여서 해야할 일이다. 요구사항과 도메인에 대한 분석이 충분히 선행되고 나서 소프트웨어적인 설계, 즉 클래스를 어떻게 설계할 것이고 어떤 기술들을 사용할 것이고 하는 것들이 고려되야 한다. 아무도 필요로 하지 않는 기능을 아무리 잘 만들어봐야 전혀 쓸모가 없다.   그리고 소프트웨어를 설계할 때 크게 3가지 점에서 trade-off할 일이 많다. 개발시간 / 유지보수 / 성능 이다. 빨리 개발하고, 유지보수하기 좋은 코드를 짜고, 성능을...