[인프런 워밍업 클럽 스터디 0기] 2주차 발자국

[인프런 워밍업 클럽 스터디 0기] 2주차 발자국

2주차 학습 내용

지금까지 작성했던 코드를 보다 좋은 코드로 리팩토링하면서 스프링 컨테이너스프링 빈이 무엇인지 알아보았습니다.

기존 메모리 저장 방식에서 데이터베이스 저장 방식으로 변경하면서 Service 코드 변경을 최소화하기 위해 인터페이스를 도입했지만, 변경 코드 범위가 줄어들 뿐 근본적인 문제가 해결되지 않았습니다.

제어의 역전 방식을 사용하는 스프링 컨테이너를 적용해 코드 변경 없이 원하는 클래스를 주입할 수 있게 되었습니다.

 

2주차에 접어들며 드디어 우리는 JPA를 적용할 수 있게 되었습니다 !

문자열 SQL을 직접 사용하는 것에 한계를 느끼고, 객체 지향적인 JPA를 활용해 코드를 변경했습니다.

이제 Spring Data JPA를 이용해 데이터를 생성, 조회, 수정, 삭제할 수 있게 되었으며

트랜잭션 적용으로

  1. 서비스 메소드가 시작할 때 트랜잭션이 시작되고

  2. 서비스 메소드 로직이 모두 정상적으로 성공하면 commit

  3. 서비스 메소드 로직 실행 도중, 문제가 발생하면 rollback

     

이 되도록 처리했습니다.

트랜잭션 사용 과정에서 생겨나는 영속성 컨텍스트에 대해 알아보며 1주차보다 더 클린한 코드로 변경해 나갔던 2주차입니다.

 

2주차 미션

2주차 부터는 새로운 것을 만들어내기보다 기존의 코드를 리팩토링하면서 학습 내용을 적용하는 시간을 가져보았습니다.

Controller - Service - Repository로 3단 분리하고, 데이터베이스 저장 방식도 나누어보며 더 클린한 코드 작성 방법에 다가갈 수 있었습니다.

2주차 리팩토링 과제를 수행하기에 앞서 과제 4에서 마무리하지 못한 부분을 다시 한번 강의를 들으며 차근차근 수정했으며, 다른 수강생분들의 코드도 참고하여 마무리하고 다음 과제를 진행했습니다.

처음부터 잘 짜인 코드를 공부했다면 클린 코드의 중요성에 대해 와닿지 않을 수도 있었겠지만, 점차 코드를 발전시키는 과정을 거치면서 좋은 코드의 필요성에 대해 또 한번 느꼈던 미션이었습니다.

 

마무리

개발 과정을 머릿속에서 그려보며 틀을 잡는 것은 여전히 쉽지 않지만, 이번 강의와 과제를 통해 그 과정이 조금은 이해되고 있음을 느꼈습니다. 이제는 API 명세서를 읽고 간단한 API는 직접 만들 수 있으며, Controller - Service - Repository 계층 동작 방식을 이해할 수 있게 되었습니다.

점점 클린 코드로 발전해 나가면서 코드 정리가 수월해진 것을 몸소 느끼며 저의 이해도를 통해 다시 한 번 클린 코드의 중요성에 대해 깨달았습니다. 💡

이제 과제가 모두 종료되고 마지막 미니 프로젝트를 남겨두고 있습니다. 남은 한 주 잘 마무리하여 배포까지 진행해 보고 싶습니다 🏃🏻‍♀

 

댓글을 작성해보세요.