개발/개발관련

[개발관련]배움의 중요성_ 김영한님의 강의를 듣고...

mabb 2023. 7. 18. 16:26
반응형

배움의 중요성_ 김영한 님의 강의를 듣고...

 국비지원 컴퓨터 학원을 다니며 열심히 코딩을 하던 시절, 세미 프로젝트와 파이널 프로젝트를 마친 후 가장 귀찮은 것이 있었다. 그것은 바로 클래스다이어그램과 시퀀스다이어그램을 한 번에 몰아서 그리는 것이었다...! 다이어그램을 한 번에 뽑아내기 위하여 인텔리제이를 설치하여 부랴부랴 문서를 완성하여 강사님께 제출하였던 기억이 난다.

 지금은 IT실무 환경을 경험하고 CS지식을 조금씩 쌓아가면서 자연스럽게 이것 저것 알게 된 것들이 많지만 학원 수강 시절의 나는 IT문외한에 가까웠다. 그 시절 아무것도 모르는 30여 명의 사람들을 모아놓고 프로젝트라는 결과물을 만들어낼 수 있도록 혼자서 지도해 주신 강사님의 역량이 정말 대단한 것 같다. 그때는 클래스 다이어그램, 시퀀스 다이어그램을 도대체 왜 만드는 것인지 잘 이해가 가지 않았었다. 짧은 기간에 java부터 쿼리, 프런트엔드부터 스프링프레임워크까지  쭉 끌고 가면서 객체지향의 원리나 설계까지 깨우치게 하는 것은 정말 어려운 일이었을 것이다.

 하지만 모든 일이 다 나중에 도움이 되듯, 그 때 강사님의 코드를 따라서 타이핑하며 익혔던 것들과 지금의 실무 경험이 합쳐져서 조금씩 조금씩 이해 가는 것들이 생기고 있다. 파이널 프로젝트를 마친 후 강사님께서 조금이라도 더 알려주시려고 JUnit을  가르쳐주셨었다. 제대로 이해하고 활용해보지는 못했기 때문에 단위테스트라는 것은 추상적인 개념으로 머릿속 한 편에 저장되었었다.

"저희 단위 테스트도 하나요?"

개발자로 전향 후 커리어를 시작한 첫 직장에서 입사 후 얼마되지 않아 했던 질문이다. 아쉽게도 회사에서 단위테스트를 하는 일은 없었다. 신규 프로젝트는 과거 퇴사한 개발자들이 만들어 놓은 프레임워크를 복사/붙여넣기 하여 약간의 커스터마이징을 하는 것에 가까웠고, 유지보수 업무조차도 자체 프레임워크의 구조상 백엔드 코드는 건드릴 일이 거의 없었다. 오픈 시나리오, 사용자 테스트 시나리오 등을 자체적으로 엑셀 양식으로 작성하여 테스트를 하였으나, 직접 작성하고 직접 테스트하는 방식이어서 오픈일 당일에 문제가 발생하는 일이 잦았다.

"IT업무에 대한 보는 눈"

그래도 반년 이상 근무를 하면서 IT업무에 대한 보는 눈을 기를 수 있었다. 직접 운영서버에 유지보수 내용을 반영하기 때문에 사용자 요건 파악부터 운영서버 패치까지의 모든 절차를 직접 경험해본 것이 큰 도움이 되었다. linux 환경, tomcat, nginx, 방화벽, port, 콜 시스템, 그리고 n8n, sentry 툴 등 이것저것  많이 배울 수 있었다. 하지만 항상 갈증을 느끼는 부분은 백엔드에 대한 것이었다. 7~8개월 차부터는 솔루션의 백엔드를 하게 될 것이라는 면접 때의 말과는 다르게 프런트엔드의 SM업무만을 계속 수행하게 되었기 때문이다. 기존에 솔루션을 개발한 개발자들이 모두 퇴사하고 현재의 개발파트가 된 이력은 입사를 하고 몇 개월이 지나서야 제대로 알 수가 있었다. 백엔드 개발을 하고 싶다는 마음에 결국 첫 IT를 시작한 회사에 사직서를 제출하게 되었다.

그리고 다시 백엔드의 감을 잡고자 배달의민족 최연소 기술이사 자리에 오르신 김영한님의 스프링 강의를 듣게 되었다. 강의를 들으면서 김영한 님은 정말 아낌없이 주는 나무 같다는 생각을 하였다. 7~8개월의 실무 경험에서도 제대로 배울 수 없었던 단위 테스트(UnitTest)에 대한 내용이 스프링 기본 강의에 녹아있었으며, 클래스다이어그램과 객체다이어그램을 먼저 그리고 하나씩 객체지향의 원리를 풀어나가는 점에서 이마를 탁 치고 이해하는 바가 있었다. 실무에서의 노하우와 경험이 강의에 그대로 스며있는 것만 같았다. 정말 실무에서 하는 '살아있는' 방식을 느낄 수 있었다. 단위 테스트를 작성하면 내가 방금 개발한 기능이 잘 동작하는지 확인할 수 있다. 그런데 작성하는 단위테스트들이 누적되면 각각의 기능 점검뿐 아니라 전체 앱의 상태를 손쉽게 파악할 수 있는 좋은 수단이 된다. 단위 테스트들을 일괄 실행하면서 내가 개발한 것이 다른 부분에 영향을 주었는지도 명쾌하게 확인할 수가 있는 것이다. 실무에서는 소스를 내려받아 단위테스트부터 실행해 본다는 말을 듣고 나에게는 추상적이기만 했던 단위테스트가 정말 실용적이고 유용한 수단으로 와닿은 것이다.

"좋은 배움으로 물꼬를 틀 수 있다"

김영한님 같은 분과 같이 일을 할 수 있다면 얼마나 많은 것을 제대로 배울 수 있을까 하는 욕심과 함께 나도 언젠가는 김영한 님처럼 후배들에게 살아있는 지식을 나눌 수 있는 사람이 되고 싶다는 생각을 하였다. 하루하루 정진하여야겠다.

 

 

 

 

 

 

반응형