객체지향 분석 설계, UML, 디자인 패턴등 필요하다고 생각 되어지는 것들을 개인적으로 공부를 하기 시작했습니다. 여기저기 강의를 들으로 다녀보았지만 뭔가 명확하게 개념이 잡히질 않고, 익힌 개념들에대해 적용하려고 하면 막히고 어떻게 해야하는지 감을 잡을 수 없었고 자신감도 붙지를 않았습니다.
몇년동안 객체지향 언어를 가지고 프로젝트를 수행해 왔지만 명확하게 개념을 정립하지 못했던 문제들 객체 와 값은 어떻게 구별되는지 의존과 연관의 구분은 어떻게 해야하는지 등등, 기본적인 개념들 이지만 혼자서 개념 정립하기 힘들었던 개념들을 익혀가면서 자연스럽게 복잡한 대상을 이해하고 그런 복잡한 문제를 해결하기 위해 객체 모델이 왜 필요한지에대해 자연스럽게 받아들이게 되었고, 좀더 괜찮은 개발자가 될 수 있지 않을까란 생각을 했습니다.
기존에 접해보지 못한 접근법이었지만 앞에서 익혔던 객체지향의 기본 개념에 충실한 방법으로 강의를 듣다보면 아 그렇구나! 아 그래서 그렇구나! 자연스럽게 받아들여 지더군요, 행위 형식화를 통해 객체 모델을 만들어 가는 과정을 보면서 신기함과 나도 할 수 있겠구나 생각이 들었습니다.
일반 SI프로젝트를 수행하면서 항상 새로운 기술트렌드를 쫒아가는 위주로 학습을 하고, 아무 문제 없이 돌아가기만 하면 끝이라는 안이한 생각을 가지고 프로그래밍을 해왔던 것 같습니다. 그러다 ERP유지보수 업무를 수행하게 되었고, 그 과정에서 유지보수를 고려한 체계적인 프로그래밍이 필요하다는 걸 절실히 느꼈고 저또한 지나온 SI수행에대해 반성을 하게되었습니다.
객체지향 분석 설계, UML, 디자인 패턴등 필요하다고 생각 되어지는 것들을 개인적으로 공부를 하기 시작했습니다. 여기저기 강의를 들으로 다녀보았지만 뭔가 명확하게 개념이 잡히질 않고, 익힌 개념들에대해 적용하려고 하면 막히고 어떻게 해야하는지 감을 잡을 수 없었고 자신감도 붙지를 않았습니다.
단순히 코드를 이상하게 짯다거나, 저장프로시저를 말도 안되게 짜놨다거나 하는 표면적인 문제가 아닌 뭔가 체계적으로 문제를 해결해나가는 과정이 생략된 마구잡이식으로 문제를 해결해 왔다는 생각에 많이 부끄러웠습니다. 그러면서 새로운 기술 트렌드보다 중요한것이 무엇인지 생각하게 되었고, 객체지향 분석 설계, UML, 디자인 패턴등 필요하다고 생각 되어지는 것들을 개인적으로 공부를 하기 시작했습니다. 여기저기 강의를 들으로 다녀보았지만 뭔가 명확하게 개념이 잡히질 않고, 그래 개념들에대해 익혔는데, 그래서 뭘 어떻게 해야하지?
익힌 개념들에대해 적용하려고 하면 막히고 어떻게 해야하는지 감을 잡을 수 없었고 자신감도 붙지를 않았습니다.다른 방법이 필요하다는 생각을 갖지 않을 수 없었습니다. 그러다 우연히 검색을 하다 김현남 강사님의 블로그를 보게되었고,관련 글을 찬찬히 읽어보다 눈에 들어오는 글귀가 있었습니다.
모델링은 사고법이며,모델링은 전문가만 하는것이 아니라는 취지의 글 이었습니다. 그래 이거다, 뭔가 풀리지 않는 문제애대한 해결법을 찾을 수 있을것 같다는 생각에 교육 신청을 하게 되었습니다. 한번의 교육연기와 개인적으로 힘든 시기여서 교육을 들을 여건이 안되었던게 사실이었지만 돌파구를 찾는 심정으로 교육을 들을 날을 기다렸던거 같습니다.
몇년동안 객체지향 언어를 가지고 프로젝트를 수행해 왔지만 명확하게 개념을 정립하지 못했던 문제들 객체 와 값은 어떻게 구별되는지 의존과 연관의 구분은 어떻게 해야하는지 등등, 기본적인 개념들 이지만 혼자서 개념 정립하기 힘들었던 개념들을 익혀가면서 자연스럽게 복잡한 대상을 이해하고 그런 복잡한 문제를 해결하기 위해 객체 모델이 왜 필요한지에대해 자연스럽게 받아들이게 되었고, 좀더 괜찮은 개발자가 될 수 있지 않을까란 생각을 했습니다.
드디어 강의 첫날, 소프트웨어 모델링이란 무엇인지, 무엇을 알아야 하는지에대해서부터 강의는 진행이 되었습니다. 몇년동안 객체지향 언어를 가지고 프로젝트를 수행해 왔지만 명확하게 개념을 정립하지 못했던 문제들 객체 와 값은 어떻게 구별되는지 의존과 연관의 구분은 어떻게 해야하는지 등등, 기본적인 개념들 이지만 혼자서 개념 정립하기 힘들었던 개념들을 익혀가면서 자연스럽게 복잡한 대상을 이해하고 그런 복잡한 문제를 해결하기 위해 객체 모델이 왜 필요한지에대해 자연스럽게 받아들이게 되었고, 좀더 괜찮은 개발자가 될 수 있지 않을까란 생각을 했습니다.
또한 그동안 추상적으로만 여겨졌고 경험을 통해서만 분석.설계가 가능하고 그래서 분석.설계자, 개발자가 구분이 되어지고 그것을 자연스럽게 받아 들였던 생각이 잘못 되었음을 알게 되었으며, 어렵게만 느껴졌던 분석.설계에대한 막연한 두려움이 강의가 진행되는 동안 조금씩 사라지는것을 느끼게 되었습니다.
그렇게 개념에대한 정의가 끝나고 드디어 행위형식화란 무엇인지에대한 강의가 진행 되었습니다.
기존에 접해보지 못한 접근법이었지만 앞에서 익혔던 객체지향의 기본 개념에 충실한 방법으로 강의를 듣다보면 아 그렇구나! 아 그래서 그렇구나! 자연스럽게 받아들여 지더군요, 행위 형식화를 통해 객체 모델을 만들어 가는 과정을 보면서 신기함과 나도 할 수 있겠구나 생각이 들었습니다.
기존에 접해보지 못한 접근법이었지만 앞에서 익혔던 객체지향의 기본 개념에 충실한 방법으로 강의를 듣다보면 아 그렇구나! 아 그래서 그렇구나! 자연스럽게 받아들여 지더군요, 행위 형식화를 통해 객체 모델을 만들어 가는 과정을 보면서 신기함과 나도 할 수 있겠구나 생각이 들었습니다.
하지만 생각보다 만만한 내용은 아니었습니다. 실제로 배운 내용을 적용해 보려했을때 여기저기서 턱턱 막히더군요, 하지만 기존에 느꼈던 막연한 답답함과는 달랐습니다.
스스로 내린 결론은 아직 개념에대해 완전히 내것으로 만들지 못했구나, 좀더 숙달을 위해 시간이 필요하구나, 어찌 다른 사람의 10여년간의 노하우를 하루 이틀 만에 내것으로 만들 수 있겠나, 조급함 보다는 느긋한 생각을 하게 되더군요, 하지만 강사님은 그 모든걸 전수해 주시려고 노력을 하시더군요, 그것을 온전하게 따라가지 못하는 제 자신이 원망스러울 따름 이었습니다.
6주간의 강의를 마치고 아주 든든한 빽을 갖게 된거 같아 좋습니다. 계속해서 익히고 내것으로 만드려는 노력을 게을리 하지 않는다면 분명 멋진 개발자가 될 수 있을것 같습니다.
좋은 강의를 해주신 김현남 강사님께 진심으로 감사를 드립니다.
– 민형철