최근 회사에서도 클린코드 스터디를 진행하고 있고, 원래 DevOps 업무를 맡던 내가, 프론트 엔드 업무를 맡으면서 본격적으로 드는 고민이었다.
추상적인 설계
객체지향에 대해서 전에 백엔드 분들 만큼은 아니겠지만, spring을 공부하면서 본격적으로 객체 지향에 대한 공부를 해본 적이 있었다.
하지만, 사정이 생겨서 결국은 중간에 하다 그만 두었지만, 최근에서야 다시 이쪽의 문제로 고민이 깊어 졌다.
좋은 설계란?
객체 지향적 설계를 해라, 객체 지향적으로 생각해라. 등등 말은 쉽다. 그리고 나는 개인적으로도 추상적인 것에 대한 고민거리가 꽤 됐었고, 철학이나 인문학 등을 그리 싫어하는 편은 아니기에,
추상적인 말에 대해서는 나름 대로의 해석으로 이해하는건 어렵지 않았다.
클린 코드가 그러했다.
근데, 항상 클린코드, 객체 지향에 대해서 생각할 때 마다 드는 생각은
그래서 다 알겠는데 좋은 설계가 그래서 뭔데?
나도 본질을 이해하지 못하는 건 아니다.
추상적인 질문에 대한 질문은 답이 없다는 것이다.
답은 내 스스로 그러한 것을 구체적으로 만들어나아가는 것이라고 이해하기 때문이다.
당연하게도 프로그래밍에도 정답은 없으며, 그것을 구체화 해서 내가 만들어 나아가는 것이라고 생각이 든다.
아무렴 암~ 나도 다 알지!
사실 모든 설계의 함정인 것 같다.
경제도 그렇고, 제도도 그렇고, 많은 부분에서 해당 되는 것 같은 물음 인데, 내가 위에서 했던 물음을 지속적으로 날리는 이유는
당연하게도 처음 설계가 잘 맞지 않을 수도 있다. 정답이 정해져있는건 아니기 때문에, 답이 아닐 수도 있다.
하지만, 그 사실은 알고 난 후에는 이미 늦었다면? 처음 부터 다시 설계를 해야한다면? 구조적인 한계에 봉착했다면?
그렇다면, 누구나 쉽게 다시해!
라고 말을 하겠지만, 프로그래밍을 하신 분들이라면 공감이 가시겠지만, 다시 하라고…?
그렇게 멘탈이 깨질 수가 없다.
안 그래도 반복작업이 많은 개발에 다시 하라니..라는 말이 절로 나온다.
물론 경험이 중요하고, 경험을 무시하면 안된다는 건 누구나 알지만, 사실 잘 생각해보면 해서 나쁠건 없지만, 하지 않아도 알 수 있는 것도 있다.
굳이 똥을 찍어 먹어봐야지 어! 이거 똥이야! 라고 안하듯,,,
이미 제 개발 인생은 삽질의 연속이었어서,,,조금은 덜 무식한 방법으로 방법을 터득하고 싶다는 생각을 요즘 많이 하고 있습니다.
사실 객관적으로는 프론트 경력은 1년차도 안됐지만, 참 해야할건 너무 많다고 느껴지긴 하다.
프론트가 무슨 객체야!
라고 하지만, 아키텍쳐가 고도화 될 수록, 규모가 커질 수록 그러한 객체 지향적인 설계를 중요해질 수 밖에 없다고 느껴집니다.
그리고 그러한 추상적인 설계와 생각에 대한 가치를 높여서 스스로 생각을 많이 하는 개발자가 나중에는 팀을 이끌고, 혁신적인 방법을 스스로 찾는 개발자가 될 것이라고
저는 굳게 믿고 있습니다.
그리고 그러한 개발자가 될 것이라 다짐을 하며 살아가고 있습니다.
이상 주절주절 했지만, 결론은 추상적인 객체의 세계 머리로는 이해가 가지만, 구체화하는 방식이 참 어렵다 입니다 ㅋㅋ
주니어,,아니지 중고 신입 개발자의 귀여운 한탄으로 봐주십시오 ㅎㅎ