
이 글에서 하는 말은 제 혼잣말이니 궁금하지 않으신 분들은 뒤로 가기 부탁드립니다....
저는 학생때부터 중소기업에서 일하면서 양산형 코드만 주구장창 써 왔고
필요한 곳에마다, 요구하는 것에 맞춰서 가장 빠르게 생산을 해 결과물을 도출할 수 있는 방법으로
프로그래밍을 배우고 지금까지 해왔습니다.
저희 프로그램팀은 사실상 2명으로 이루어진, 버전관리(Git)도 되어 있지 않고
프로그램은 계속 바뀌지만 변경사항도 제대로 기록하지 않았고, 그런 시스템이 전무했습니다.
그렇게 프로그래밍을 해오다 개발자 커뮤니티를 알게 되고, 개발자들이 하는 얘기를 들으며 점점 의구심을 갖기 시작했죠.
우리는 왜 저런 게 없지? 부터 시작해서, 우리도 저런게 있으면 정말 좋을 것 같은데... 등등이었습니다.
그러다 저도 버전관리를 시작해야겠다 싶어 도입을 하였고,
이후에는 문서 협업 도구까지 가지고와 팀에 적용하고 있습니다.
사실 지금까지 웹 서칭을 하면서 프론트 엔드, 백엔드, 풀스텍, 데스크톱 개발자, 임베디드, DevOps 등 여러 단어를 듣고 고민을 해왔습니다.
그리고 저는 당시 고민을 하다 "나는 풀스텍 개발자다."라고 결론을 내렸었고
그 당시에도 HTML과 디자인, Javascript와 PHP를 이용해 회사에서 계속 수기로 작성하던 게 마음이 들지 않았던 저는 전산을 구축하였고, 회사에 서버를 마련하기 위해 Ubuntu Server 로 계속 유지관리를 해가면서 보안을 위해서 Fail2ban, iptables, SSL 등 여러 방법을 모색하여 적용까지 해봤습니다.
이후에는 UTM 장비 등으로 보안장비까지 구축을 하게 되었고요.
그러면서 평소에는 IoT 운영체재, 산업용PC(Embedded 등)에서 돌아가도록 C# 으로 프로그래밍을 하고 있었습니다.
나는 오만거 다하는데 풀스텍이 약간 그런 개념이구나 하고 풀스텍이라고 하고는 다녔지만
항상 요즘 트렌드를 따라가고 싶던 저는 나중의 도약과 기회 등을 위해서
먼저 코딩 테스트를 해보며 나를 테스트해보았으며, 부족함을 알고 최근 들어 인프런 등에서 강의를 들으려고 하는데 너무 종류가 많았습니다.
실제로 들어보면 모르는 단어와 생태계가 너무 많았고 낯설었습니다.
공부를 시작하는 사람들을 보며 나는 뒤쳐져 있었구나, 더 열심히 해야겠다는 생각을 하고
동기를 얻고 이 방대한 카테고리들 중에서 나는 한 방향을 정해서 거기만 파겠다 라는 결심을 했습니다.
저는 프로그래머스 등을 통해 데스크탑 앱, 데이터 엔지니어, 데이터 분석가, 머신러닝, 보안, 백엔드, 네트워크, 프론트엔드, 안드로이드, iOS, DevOps 등등등 많은 직무 중에 고심 또 고심 또 고민 끝에 백엔드로 전향을 하겠다는 결심을 했습니다.
저는 한국에서 태어났고 한국이 좋기 때문에 한국에서 제일 유명한 Spring 을 처음으로 배우기 시작했습니다.
다행히 C#과 Java는 유사한 언어였습니다. 하지만 정말로 처음에는 이게 Java가 맞나 싶을 정도로
제가 지금까지 봐 왔던 Java 코드와 Spring의 Java 코드는 매우 달라 보였습니다.
이게 객체지향이구나. 싶은 코드들을 본 겁니다.
저는 여기서 충격을 먹고 정말 초급단계의 Spring 강좌부터 인프런이라는 사이트에서 보기 시작하였습니다.
이렇게 다른 사람의 코딩 스타일을 익히고(배울 사람이 너무 고팠습니다) Spring을 익혀서 중급기 정도 되면,
다른 Open Source Project 도 참여해보고 다른 언어나 Framework를 꾸준히 배워볼 예정입니다.
이상 개인적인 푸념이었습니다.