[인프런 워밍업클럽 0기 BE] 두 번째 발자국 (2주차 회고)

[인프런 워밍업클럽 0기 BE] 두 번째 발자국 (2주차 회고)

2주차 커리큘럼

image

2주차 학습 요약

  • 6일차
    Controller를 인스턴스화하지 않고도 메서드를 호출할 수 있었던 이유, JdbcTemplate설정을 해주지 않아도 사용할 수 있었던 이유인 @RestController에 대해 학습하였다. 이것이 UserController를 API의 진입 지점으로 만들어주는 것 뿐 아닌, 이 클래스를 스프링 빈으로 등록시켜준다. 서버 시작 시 스프링 컨테이너를 만들고 이 컨테이너에 스프링 빈을 넣으며 인스턴스화도 함께 이뤄진다는 것에 대해 배우고, 스프링 빈을 다루는 여러 방법에 대해 학습하였다.

     

6일차 미션 - API 역할 분리

  • 7일차
    문자열 SQL의 한계에 대해 알아보며 이를 극복하기 위한 JPA의 등장과 Hibernate,Spring Data JPA 등의 이론적 내용을 학습하였다. 그리고 실제 Jdbc를 이용해 SQL문을 직접 작성하였던 코드를 리팩토링하여 Spring Data JPA를 이용해 편리하게 db를 다룰 수 있는 방법을 학습하였다. JPA를 이용해 데이터를 Create, Read, Update, Delete하는 것을 학습하였다.


    7일차 미션 - JPA 활용

  • 8일차
    트랜잭션이 무엇인지와 3가지 기본 명령어에 대해 알아보았다. 기존 서비스 코드에 @Transactional을 통해 적용해보고 이것을 선언하였을 시 영속성 컨텍스트라는 것이 어떻게 작용하는지, 영속성 컨텍스트의 4가지 특징이 무엇인지에 대하여 학습하였다. 4가지 중 하나인 변경 감지라는 기능은 기존코드처럼 엔터티를 저장할 때 save() 를 하지 않고도 변경을 감지하여 데이터베이스에 반영할 수 있게 해준다.


  • 9일차

     

    지금까지 개발 실습과 이론을 통해 배웠던 모든 개념을 실습하기 위하여 책 등록, 대출, 반납 API를 개발해보는 것을 진행하였다. 데이터베이스 console에서 테이블을 생성하고 이것과 호환되는 객체를 @Entity를 통해 만드는 것부터 필요한 repository, dto, service, controller를 작성하여 API를 개발하였다. repository부분은 학습한 Spring Data JPA를 활용하여 이전 Jdbc코드보다 더욱 편리하게 개발할 수 있었다.


회고

강의를 들으며 개발을 해 나갈수록 하루 하루 성장하는 것이 느껴진다. 트랜잭션이나 영속성 컨텍스트같은 개념도 이전에는 조금 어렵게 느껴졌지만 강의에서 핵심적인 내용을 위주로 쉽게 알려주셔서 이해가 잘되고 기존에 남아있던 지식과 합쳐져 정리가 되는 것 같다.

과제7의 경우 JPA를 활용한 코드로 리팩토링하는 것인데 스트림에 대해 더 공부해보고, 이를 이용하면 코드를 더 간결히 리팩토링할 수 있을 것 같다. queryDSL에 대해서도 알아보는 것이 좋다고 강사님이 말씀하셔서 이에 대해서도 공부해보고 싶다.

남은 한 주도 기대가 된다 🙂 남은 과제는 미니프로젝트만을 남겨두고 있다.

+ 이 인강이 끝나더라도 강사님의 스프링, 백엔드 강의를 더 듣고 싶다...

댓글을 작성해보세요.