2003년도부터 7년 넘게 해 오던 프리랜서의 생활을 접게 되었습니다.
어디를 가나 소속을 물어 볼 때 항상 "백수"라고 얘기를 하고는 했었는데
이제부터는 제대로 된 소속을 이야기할 수 있게 되었네요.
거기 서울의 연구소장님(예전 직장의 같은 부서에서 일한)으로부터 제의를 받았습니다.
사실 지금까지 아는 사람들로부터 스카웃 제의는 종종 받아 왔었기 때문에,
이번에도 그냥 "관심 가져 주셔서 감사합니다. 마음만 받겠습니다"라고 하려고 했었죠.
웬만히 이름만 들어도 알 수 있는 유명한 회사에서도 제의는 종종 있어 왔지만
'내가 그 회사에 가면 무슨 일을 할 수 있을까?' 라는 걱정에
항상 취업을 주저해 왔었죠.
그런데 소장님과 만나서 얘기를 좀 나눠 보고
인터넷에서 회사를 검색을 해 보고 난 이후에 생각이 완전히 바뀌었습니다.
'아, 완전 나를 위한 회사이네.'
[장점]
1. 회사에서 다루는 제품이 제가 지금까지 해 온 것과 앞으로 하고 싶은 일과 거의 일치를 하고 있음.
5. 큰 규모의 회사가 아님. 창립 멤버는 아니더라도 어느 정도 기여를 할 수 있음.
6. 사장님을 포함한 경영진이 대부분 공대 출신임.
7. 완전 기술(Technique) 중심의 회사임. 글로벌 외산 제품과 경쟁을 벌이고 있음.
8. 대우가 괜찮은 적정 수준임.
[단점]
1. 새로운 환경(프리랜서 > 직원 생활)에 익숙해 져야 한다는 걱정.
2. 서울 물가.
[앞으로 해야 할 일]
1. 지금 가지고 있는 사업자 등록증 처리.
2. 부평에 있는 사무실 및 집기 정리.
3. 서울에 집 알아 보기.
4. 직원 뽑기(coworker 한두명 정도 직접 뽑아야 함).
오 ... Linux 기반이라 하신다면,
Embedded Linux 쪽으로 하시는건가요 ???
"gilgil"님께서 Network 쪽에 관심이 있으시니 ...
Device Driver 단에서의 TCP/IP Protocol Stack 부분등 그런것들과 관련된 것이라고 생각하는데, 맞는지요 ?
아무튼 축하드립니다 ㅋㅋㅋ
그리고 Linux의 세계에 오신것을 환영합니다 ^^
* 참고 사항 ...
같이 스터디하시는 분중 리눅스, 유닉스 필수 유틸리티 쓰신 분이 있습니다.
머지 않아 이것의 개정판 2판이 나올 것이라고 하네요 ... (정확한 일자 모름)
(혹여 1판을 사야한다면, 빌려 보시길 권함)
실제 GCC의 내부 동작과정이라든지 아마 현존하는 국내 IT 서적중 가장 잘 설명한 책일 겁니다(홍보 아님) ㅋㅋㅋ
또, 저희 카페에 제가 최근에 올려놓은 GCC Internals(4.5.0)등과 관련해서 ...
리눅스에서는 vi만 잘 써도 상당한 ... 기술적 대우를 받을 수 있다고 합니다.
전에 기술사분께 Linux System Programming(System Call 일종의 Windows API)를 배웠었는데,
그때, 그 기술사분이 하신 말씀이 vi를 잘쓰는 Programmer의 연봉이 1억이라고 하시더군요.
* TIP
뭐, 이미 아실 것이라고 생각하지만 ...
Linux가 무서운 License들이 있습니다(GPL License 등)
혹여 라이센스 지정을 해주실때는 필히 상의를 하셔야 할것입니다.
(소스 코드를 공개해야하는 상황이 발생할 수도 있습니다)
맡게 될 일은 네떡 패킷 다루는 일입니다. Tap 미러링 환경에서 HTTP나 RTSP와 같은 패킷을 분석해서 동영상 Object로 파일로 떨구는 일 같은 것을 맡을 것 같습니다. 외국 ISP에서 동영상 트래픽 문제때문에 빨리 만들어 달라고 보챈다네요. ㅠㅠ 동시에 스니핑되는 수많은 TCP Session을 검색하고, 패킷 중에 동영상 내용을 오려 와서 파일로 떨구어야 합니다. 이 하나만으로도 고민해야 할 알고리즘들이 무궁무진. 캐싱 redirect하는 기능은 다른 장비가 담당하게 되고...
대용량 트래픽을 다루는 일이라서 속도와 설계 2마리의 토끼를 동시에 잡아야 하고, 프로그램 설계에 있어서 OOP적인 접근 방식과 컴파일러 최적화에 대해서 많이 검토할 것 같습니다. 지금까지 컴파일러가 지원해 주는 Profile-Guided Optimization에 너무 익숙해져 있어서 calling convention 같은 것은 전혀 걱정하지 않고 프로그래밍을 해 왔었는데, Linux 기반의 컴파일러에서는 어떠한 최적화가 지원되는 지도 조금씩 익숙해 져야 할 것 같구요. 결국 하는 일이 외형적으로는 Network 분야이지만, 실제로 고민해야 하는 것은 플밍(Compiler와 같은 전산학 기본)이라는... 회사 내에 워낙 뛰어난 분들이 많은 지라, 얼마나 core에 접근한 일을 맡을 지는 아직 미지수. 이제부터 열심히 해야 겠죠. ^^
반드시 Linux일 필요는 없지만, 회사 제품 대부분이 Linux 기반이라서 앞으로 저도 좀 Linux랑 친해 져야 할 필요는 있습니다. 필요하다면 Linux 교육까지 보내 준다고 하는데... 예전에 회사 다닐 때에도 그전까지 Microsoft Visual C++은 거의 건드려 본 적이 없었습니다. 회사에 들어가 닥치고 코딩하면서 익숙해 지기 시작했었죠. 원래부터 정식으로 교육 받기 보다는 대부분이 야매로 어깨 넘어 배웠기 때문에 이번에도 야매로 "닥치고 공부"를 해야 할 것 같습니다. ^^
음 ... 동영상이 날라간다면 ...
만약 JAVA의 경우였다면, JIT(Just-In-Time) Compiler라는 기술이 적용되었겠군요 ㅎㅎ
현재는 C 코드의 경우니, 실제 Compiler가 만들어내는 Binary와 관련해서 내부적인 Mechanism을 살펴볼 필요가 있을듯 합니다.
가령 GCC Compiler의 Intermediate Representation(중간 표현)인 RTL(Register Transfer Language)를 보셔야 할듯 합니다(최적화 차원)
또, GCC가 4.4.0 Version으로 올라가면서, Gimple Tree라는 곳에 RTL의 역할을 분담해줬습니다.
이로써, 실제 GCC Compiler 코드에서 lang_hooks.parse_file()이라는 녀석이 Pointing하는
c_common_parse_file()함수로 부터 translation_unit()이 만들어내느 Generic Tree를 거쳐 Gimple을 만들게 됩니다.
아마 실제 최적화쪽에서는 RTL을 더 많이 사용할듯 합니다.
이 RTL Code가 병렬성이라든지 그런 좀 더 로우단의 코드라고 볼 수 있습니다.
Gimple 과정을 거치고나면, pass -> execute()로 Pointer of Function이 호출되어 rest_of_handle_final()함수가 호출됩니다.
이때, 저 함수가 RTL Code를 실제 Assembly Language로 바꾸게 되니, 참고하시면 많은 도움이 될듯합니다.
그리고 현재 GCC Version 4.5.0이 나오면서 C++0x와 관련해서도 추가적인 부분이 도입되더군요.
GCC 4.6.0에 들어서게되면, 본격적으로 C++0x가 지원된다고 합니다.
우훗~ 이제 눈치 안보고 강남에서 번개때려도 되겠죠? ㅋㅋ
축하드리구요, 새로운 도전의 긴장과 살짝쿵 설레임은 언제나 삶의 활력소입니다.
저도 조만간에.....ㅎ ㅏ ㅎ ㅏ ~
이야...축하요~..
이젠 서울특별시민?
요즘 저는 부산에서 줄창 살고 있네요..ㅋ
다음주말에나 서울 갈듯요.
조만간 얼굴한번 뵙죠.
일단 형님 백수 탈출 축하드리옵고..
흐흐흐흐.. 이제 밥 사주세요!! ㅋㅋ
* SIS때는 갑자기 현장분석을 나가라고 해서 중간에 나와버려서 인사도 못드렸네요;;
축하드려요..
인제 얻어 먹으러 가면 되는거군요 ^^
장점 중에 1,2,5,6,7, 번은 흐음.. 지금의 장점이 나중의 단점이 될찌도 흐흐흐
해야 할일 중에 집기 부분은.. 싸게 매입원합니다 ( 공짜는 없다는거 알지만서도 ㅠㅠ)
생각 보다 사장님이 개발자 출신이면 의외의 곳에서 충돌?이 많이 생기더라구요 ( 것도 사소한 기술적 견해 )
잘하시라 믿습니다.