금요일 저녁에 시작하여 3시간 정도의 온라인 강의, 토요일, 일요일 (아침 9시부터 6시까지)
Todo 스케줄 앱을 개발하는 과정을 진행한다. 이미 짜여진 코드(프론트엔드 코드, 엔티티, 기본적이고 단순한 서비스 코드들)를 기반으로 설계와 코드 작성을 활용하여 스프링 부트의 많은 것을 배운다. 명심해야 할건 단순하고 쉽게하는 api개발은 아니다.
모 유명 기업의 테크 리드로 계신 박용권님이며, 총 경력은 거의 20년이 좀 안 되는 경력을 가지고 계신다. 개발자들은 경력이 오래될수록 개발을 안 해서 코딩 퍼포먼스가 떨어진다고 하는데, 그런 느낌의 오래된 개발자는 아니셨고, 여전히 기술을 많이 활용하시고 응용할 줄 아는 개발자였다.
수강생은 10명정도로 소수로 이루어지는 교육이므로 쉽게 질의 응답이 가능한 교육이었다. 난 많이 버벅였지만 그래도 확실한 멘토링을 해주셨다. 참고로 이전부터 교육하신 경험이 많아서인지, 굉장히 빠른 템포로 코드 제작 및 개념을 보여주시는데, 따라가기엔 벅차지 않을 정도로 따라가기가 편하였었다.
아래 교육 구성 참고 자료
https://springrunner.dev/training/mastering-spring-web-101-workshop/
Web과 Servlet에 관련된 개발을 중점으로 배운다.
생각한 것보다 훨씬 어려운 수업이었다. 처음엔 기본 관련 수업이라길래, Todo 스케줄 서비스를 REST API로 짜는 그냥 그런 강의일 줄 알았다. 솔직히, 큰 기대 없이 REST API를 짜는 것에 대한 리뷰나 한 번 더 하자는 생각으로 지원했다. 하지만 생각보다 수많은 설정(Config), 예외 처리(Exception Handler), 및 데이터 소스를 자유자재로 활용하여 코드를 간결화하고, 구현적인 부분에서도 흠잡을 데 없는 스프링의 REST API 설계 수업이었다. 코드와 함께하는 짧은 강의 시간 안에 상당히 많은 모듈과 구성된 클래스를 많이 사용하기에, 스프링 부트 경력이 1년이 채 안 된 사람들에게는 상당히 어려울 수 있는 수업이다. 하지만 경력이 짧더라도 꽤 많은 지혜를 습득할 수 있는 시간이라 아깝지는 않은 시간이었다. 오류 유발 가능성을 낳는 구조나 개발에 관련해서도 많은것 들을 들을수 있다. 지식을 배우기도 하지만, 지혜나 구조적인 사고 또한 배울 수 있기 때문에 꽤 가치 있는 시간이었다.
스프링의 활용과 공부법에 대해 배웠다. 단순한 공부가 아니라 꽤 높은 위치에 올랐을 때도 활용할 수 있는 방법에 대해 배운다. 기본+기본이 합해져 응용이 되고, 그 응용을 어떻게 활용하는지를 많이 배운다. 그리고 스프링 부트의 애노테이션을 해부하는 과정을 통해 어떤 구조로 이루어지고 어떻게 활용되는지를 배웠던 것이 좋았다.
복잡한 스프링 부트의 구성으로 이루어진 코드를 팍팍 줄여버리는 응용 애노테이션 활용과 다양한 스프링의 모듈 활용이 굉장히 놀라운 장면이 많았다. 기본적인 라이브러리 활용과 기본 개념을 채우기 바쁜 나에게는 다소 과분한 지식과 기술들이었을 수도 있었겠지만, 이것을 배운 덕분에 앞으로 좀 더 세련된 코드를 만들 능력을 키울 수 있을 것 같았다.
개발자들이 자주 겪는 애매한 한/영 깨짐 현상 오류나 기타 버전등의 오률류를 해결 할 수 있는 부분을 많이 배웠다. 떠하여 IDE 때문에 생길 수 있는 버젼오류 등 그런것들을 단번에 해결할 수 있느 부분에 대해서도 질의 응답을 잘 해 주셨다. 이것도 지식이라면 지식이겠지만 내가볼땐 지식이라기 보다 경험+해결 능력에 가까운 느낌이었다. 이런 것들이 모여 나중에 경험 들이 될거라고 본다.
그냥 단순히 쉽게 듣고 만들고 뻔한 API 개발론을 적용하는 교육이 아니었다. 그런 기대를 하고 교육을 하기보다는 어떻게 구성해야 오류 예방을 최대한하고 어떤 구성이 리팩토링에 유리한 개발인지, 그리고 수십 줄의 코드를 한 번에 4~5줄 코드로 만드는 스프링 부트 모듈을 최대한 활용하는 방법을 가르친다. 더불어 질의 응답을 통해 수많은 지혜와 스프링 부트 공부의 방법을 배울 수 있는 수업이다. 구지 참고 사항이 있다면 단축키는 잘 활용하는 상태에서 가고, 컨트롤러나 exception, servelet등 관련 어노테이션의 구조 정의 사용 이유에 대해서는 많이 알아두고 가는걸 추천한다. 어떻게 사용하는지 말고, 개념과 구조를 잘 파악하고 가라는 거다. 그런다면 더 많은 것들을 배울 수 있다.