라벨이 개발자인 게시물 표시

개발다운 개발에 대해...

어쩌다가 2년 반 전에 내가 했던 프로젝트의 코드를 보게 되었다. 코드가 너무 구렸다. 그때도 나는 나름 설계나 코드 품질에 신경을 많이 썼었는데, 지금 돌이켜보면 역량이 많이 부족했었던 것 같다. 내가 개발다운 개발을 한 지가 얼마나 됐을지에 대해 생각해보았다. 길게봐도 반년이 채 안되는 것 같고, 깐깐하게 보면 아직도 많이 부족한 것 같다. 이제서야 슬슬 뭘 좀 알아가고 개발다운 개발을 시작하는 단계라고 생각이 들었다. 아무튼 그래서 내가 생각하는 "개발다운 개발" 의 기준에 대해 써보려고 한다. 물론, 지극히 개인적인 생각이며 각자가 일하는 도메인과 상황에 따라 매우 다를 것임을 인정한다. 1. 프로그래밍 언어와 Good Practice 들에 대한 깊은 이해. "언어는 도구에 불과하다" 라는 말이 있다. 그냥 문장 자체적으로만 보면 물론 맞는 말이다. 하지만, "불과하다" 라고 표현하기에는 언어는 너무나도 중요한 도구이다. 그리고 정말 공부를 많이 해야하는 도구이다. 언어는 사고를 지배하고, 언어를 공부하고 이해한다는 것은 생각하는 법과 철학을 배우는 것이다. 오랜 시간동안 전 세계적으로 여러 프로젝트들이 개발/연구되고 다양한 사람들이 토론/합의하면서 발전한 소프트웨어 기술과 패러다임들이 프로그래밍 언어에 그대로 녹아들어간다. 즉, 언어를 깊게 공부함으로서 소프트웨어 개발에 대한 철학과 통찰, 패러다임, 트렌드를 알 수 있다. 그리고 언어를 깊게 공부한다는 것은 그 언어에서의 Good Practice 들을 공부하고 숙달하는 것을 포함한다. 언어의 feature spec 이 도구라고 한다면, Good Practice 는 도구를 사용하는 방법이다. 단순히 언어의 문법을 익히고 라이브러리에서 어떤 기능을 제공하는 지 아는 것이 중요한게 아니라, 어떤 상황에서 어떻게 사용해야하는 지에 대한 Good Practice 를 제대로 아는게 핵심이다. 내 개인적 기준에서, 이 부분에 대...

이것이 직장인의 삶이구나

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