본문 바로가기
  • Seizure But Okay Developer
강의 | 대외활동 | 개인플젝/TDD N CleanCode_강의

JPA 용어 정리 및 질문드릴 것 정리

by Sky_Developer 2018. 11. 26.
JPA란?
요약해본다면..기존에 내가 sping을 쓰면서 배운 mybatis 대신 할(기존의 mybatis는 DAO를 거쳐야 했고 이는 생산성 향상에 영향을 미쳤다고 봄) 기술로
Hibernate, JPA라고 부른다.

해외에선 이미 mybatis를 누르고 압도적으로 사용되고 있다고 하고 국내의 유수한 기업들도 해당 기술을 사용하고 있다고 한다.

JPA의 정의는 ORM을 위한 표준기술로, 여기서 ORM은 RDB가 객체지향적인 특징을 갖도록 해주고 접근할 수 있게 해주는 기술이다.

참고:
http://blog.woniper.net/255
http://blog.naver.com/PostView.nhn?blogId=noranlemon84&logNo=220774678674&parentCategoryNo=&categoryNo=19&viewDate=&isShowPopularPosts=true&from=search


스프링이 자동boot 되는 과정을 설명한 자료
https://www.slideshare.net/sbcoba/2016-deep-dive-into-spring-boot-autoconfiguration-61584342


  • UserController에서 UserRepository를 @Resource(또는 @Autowired)로 DI를 한 후 UserRepository의 save() 메소드로 데이터를 저장한다.
에서 DI가 무슨 뜻인가요?


DI는 내부에서 외부의 데이터를 가져와서 쓰는것에서 외부에서 데이터를 직접 주입해주고 내부에서 쓰도록 해주는 차이를 만든다.

자바로 예를 들면 Autowired 어노테이션의 사용을 들 수 있다.

new 생성자를 만들어 생성자 내 인자로 visitor를 사용했는데, 인자내용을 다른것으로 바꾸면 프로그램내 visitor를 사용하는 모든 구문을 바꿔야한다.

하지만 Autowired 어노테이션으로 visitor라고 쓰고 이를 사용하고, 내용을 바꿀시에는 visitor를 사용한 프로그램 내 내용은 변경이 없게된다. 대신, visitor를 설정하는 외부의 내용만 변경하면 프로그램 전체에 변경된 visitor 내용을 주입할 수 있게되고 이는 외부 visitor 가 프로그램의 set 메소드를 불러 자신을 대입하는 것과 같다. 이렇게 함으로써 프로그램이 외부에 대한 의존성을 줄이게 해주고 외부 프로그램 변화에 따른 영향을 줄이게 해주는 것이 DI라는 개념이다.

댓글