소프트웨어 개발의 지혜 - 스프링 편 2주차 회고
코드숨 - 스프링 2주차 회고
드디어 스프링을 이용하여 프로젝트를 구현하였습니다.
스프링 자체가 처음인데다가 marko를 이용해 구현된 프론트엔트와 접목을 시키려니 어려웠습니다.
처음 강의를 들을 때 느낌
프로젝트 세팅을 할 때는 큰 어려움은 없었습니다.
세팅이 끝난 후 본격적으로 1주차 때 했던 프로그램을 스프링으로 구현하는데
스프링의 어노테이션 이용이 처음이었는데, 스프링의 어노테이션을 사용하니
마법처럼 1주차에서 길었던 코드들이 굉장히 간편해졌습니다.
그러나 이게 어떻게 돌아가고 어디까지를 커버해주는지를 잘 알지 못해서 조금 막막했습니다.
특히 프론트엔드 강의에서 marko와 axios를 통해 프론트엔드 화면을 구성하였는데,
자바스크립트 문법을 몰라 어려움이 있었습니다.
과제를 할 때 느낌
강의를 다 듣고 과제를 하려는데 어디서부터 시작해야할지 어떻게 구현할지 너무 막막했습니다.
일단은 프론트엔트를 먼저 구현해야 백엔드 쪽이 제대로 돌아가는지 테스트할 수 있지 않을까 싶어서
강의에서 본 것을 바탕으로 나머지도 구현해보려고 했으나 과제에서 원하는대로 구현하지 못했습니다.
나중에보니 프론트엔드 쪽은 이미 구현이 되어 있어서 따로 구현할 필요가 없었네요;;
그래서 이제 다시 백엔드 쪽을 구현하기 위해 TaskController로 갔습니다.
강의를 통해 모든 Task리스트항목 구하기와 새로 추가하기는 구현할 수 있었습니다.
이제 나머지 해당 index의 항목 하나만 구하기, 해당 index의 항목을 수정하기 및 지우기가 남았습니다.
이를 구현하기 위해 1주차 때 작성한 코드를 바탕으로 구현하였습니다.
그러나 어노테이션을 제대로 사용하지 않아서 프론트엔드에서 수정하고 지울 때 기능이 제대로 작동하지 않았습니다.
그래서 이 프론트엔드쪽에서 어떻게 디버깅을 하는지 막막해서 코치님께 물어보니 테스트 항목과 e2e테스트가 있으니 그걸 실행시켜보면 된다고 알려주셔서 테스트를 해볼 수 있었습니다.
테스트 한 후에 테스트 결과는 알 수 있었으나 어디서 어떻게 수정을 해야할 지 감이 오지 않았습니다.
그래서 다른 분들이 작성하신 코드를 참고하여 불완전하지만 어느 정도 코드를 구현할 수 있었습니다.
과제풀이 강의를 들으면서 느낀 점
강의를 보면서 아샬님이 테스트를 1주차에서 했던 것과 마찬가지로 콘솔창에서 하는 것을 보고 깨달았습니다…
스프링도 1주차와 똑같이 콘솔창에서 테스트하고 디버깅을 하면 된다는 것을…
그리고 후회와 자책이 밀려왔습니다…
왜 나는 바보같이 프론트엔드 창에서만 그게 가능하다고 생각했는지…
그렇게 깨달음을 바탕으로 강의를 따라 코드를 구현하였습니다.
그리고 비록 강의를 따라 완성하기는 하였지만 스프링 어노테이션의 사용법과
여러 클래스를 사용하여 책임과 역할을 분리하는 방법을 배울 수 있었습니다.
이번 주 과정에서 아쉬운 점
프론트엔드 화면에서 테스트와 디버깅을 해야 한다는 생각때문에 지금 짜고 있는 자바 코드가 제대로 돌아가는지 잘못되었으면 어느 부분에서 잘못되었는지 디버깅과 테스트를 하지 못해서 멘붕이 왔습니다.
그래서 여기에 시간을 너무 많이 소요하여 정작 중요한 자바 코드는 거의 작성을 하지 못했습니다.
1주차와 똑같이 하면 됬는데 왜 프론트엔드 화면이 생기고 스프링을 이용하면 다를 것이라고 생각했는지…
후회가 되지만 그래도 이번 기회에 전혀 몰랐던 개념들을 많이 배울 수 있었고 깨달음을 얻을 수 있었습니다.
다음 주 각오
다음주는 테스트 코드를 작성하는 방법에 대해서 배우는 것으로 알고 있는데
다음주는 이번주처럼 멘붕이 오지 않고 잘따라갈 수 있었으면 좋겠습니다.
그러기 위해서 일단 이건 내가 처음 보는 것이고 잘모르는 거니까 아몰랑 시전을 하지 말고
최대한 생각의 유연성(?)을 바탕으로 하여 기존에 배웠던 것에서 어떻게 적용할지 생각해봐야겠습니다.
또 모르는 것이 너무 많아서 어떻게 하면 새로운 개념을 빨리 습득하여 과정을 따라갈 수 있을지도 고민해봐야겠습니다.
댓글남기기