Spring(20)
-
JDBC vs JPA vs Mybatis
https://thefif19wlsvy.tistory.com/249 JDBC, JPA, Mybatis 차이점 들어가기 앞서 영속성에 대한 이해가 필요하다. 영속성(Persistence) 1. 데이터를 생성한 프로그램이 종료되더라도 사리지지 않는 데이터의 특성을 말한다. 2. 영속성을 갖지 않는 데이터는 단지 메 thefif19wlsvy.tistory.com 먼저 영속성에 대해 알아보자 영속성은 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버리게된다. 그래서 데이터베이스를 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다. Persistence Layer는 프로그램의 아키텍처에..
2023.01.27 -
DTO vs Model vs Entity
SSAFY프로젝트에서는 데이터 베이스를 위한 Entity를 만들고 API를 위한 DTO를 만들어서 통신을 진행하였다. 그래서 Entity에는 id를 생성하고 @Data 혹은 @Getter @Setter @NoArgConstructor 등의 어노테이션을 적용하여 JPA를 활용해 데이터베이스에 저장하는 용도로 사용하였다. DTO는 말 그대로 JSON형태의 객체를 만들기 위해 API별로 DTO를 만들어 클라이언트에게 전달해주는 용도로 사용하였다. 하지만 현재 인턴기간중에 Model이라는 녀석이 등장했다. 생각해보면 MVC패턴이라는 거대한 녀석의 가장 앞부분인 Model을 확실하게 익히지 못했나? 라는 생각이 들긴하지만 내가 참고한 대부분의 프로젝트는 Model대신 DTO Entity를 사용하였다. 그러면 Mo..
2023.01.27 -
Model
모델은 HashMap형태를 갖고 있으므로 key값과 value값처럼 사용할 수 있다. addAttribute는 Map의 put과 같은 기능과 같아서 이를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전달할 뷰에 데이터를 전달할 수 있다.
2023.01.27 -
model.addAttribute() 메소드
나는 보통 API를 제작할때 public 리턴객체형 함수명(~~)형식으로 항상 Controller에 return을 해주었다. 하지만 현재 일하고 있는 회사의 Controller들을 보면 public void로 진행되고 따로 Controller에서 Return을 해주지 않고 있다. 그 대신 model.addAttribute라는 메소드를 사용하는데 오늘은 그 model.addAttribute() 메소드에 대해 알아보자 먼제 model은 데이터를 가져오고 view에 데이터를 넘겨 적절한 뷰를 생성하는 역할을 한다. @ModelAttribute 강제로 전달받은 파라미터를 Model에 담아서 전달하도록 할 때 필요한 어노테이션 스프링에서 Java beans 규칙(Getter, Setter, 생성자 포함)에 맞는 ..
2023.01.27 -
@Configuration vs @Component
@Component와 @Configuration은 큰 차이는 없다. 가장 큰 차이는 @configuration @bean은 개발자가 직접 제어 불가능하고 @component는 개발자가 직접 제어 가능하다
2022.12.28 -
@Configuration
외부라이브러리 또는 내장 클래스를 Bean으로 등록하고자 할 경우 사용(개발자가 직접 제어가 불가능한 클래스) 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을 사용. 즉, 해당 클래스에서 한 개 이상의 Bean을 생성하고 있을때 선언 해주어야 함
2022.12.28