[인프런 워밍업 클럽] 2주차 발자국

[인프런 워밍업 클럽] 2주차 발자국

2주차엔 스프링 동작 원리와 JPA관련 기능들을 배웠다.

스프링 어플리케이션은 컨테이너를 통해 클래스간 의존성을 관리한다. 어플리케이션이 시작하면, 관리할 대상인 빈들을 등록한다. 그리고 필요한 의존성이 있으면 설정해 준다. 이렇게 관리를 스프링이 하도록 만드는 개념을 제어의 역전이라고 한다. 또한 의존성하는 객체를 전달해주는 방식을 의존성 주입이라고한다. 이렇게 하면, 사용하는 쪽이 아니라, 제공하는 쪽에서 자유롭게 수정할 수 있는 장점이 있다.

JPA는 데이터를 저장하기 위해 자바에서 사용하는 규칙이라 볼 수 있다. SQL을 직접 다루는 일은 컴파일러의 지원을 받을 수 없고 런타임에서야 알 수 있다. 또한 사용하는 SQL 제품에 의존하게 되고, 반복작업이 많다. 그리고 객체지향에서 객체는 양방향으로 참조하고, 상속이 있으나 관계형 데이터베이스는 이런 지원이 없어 제한적이다. JPA는 ORM의 일종으로 객체를 관계형 데이터베이스와 이어줘 저장해 이런 문제를 극복하도록 도와준다.

2주차에선 비교적 적절한 속도로 진도를 진행할 수 있었다. 과제의 경우 추가적으로 욕심을 내 Query DSL을 적용할 수 있었으나 문제의 특성에 의존해 이를 사용하지 않고 과제를 수행했다. 과제를 제출할때는 별 생각이 없었으나 이 또한 배울 기회였다고 생각하니 다시 아쉽게 느껴졌었다.