본문 바로가기
MAC m1 H2 Databases 설치 방법 https://www.h2database.com/html/download.html Downloads Downloads Version 2.1.214 (2022-06-13) Windows Installer (SHA1 checksum: 5f7cd83d394df5882ed01553935463a848979f29) Platform-Independent Zip (SHA1 checksum: 5ff027217098bf6c800ef96b98f3a381b320e53d) Version 2.1.212 (2022-04-09) Windows Installer (SHA1 check www.h2database.com 위 다운로드 링크로 접속한다. 내 경우는 2.1.212 버전을 설치했다. (최신꺼는 믿을 수 가 없어요..ㅎ) 설치하고.. 2022. 10. 26.
Service가 필요한 이유 ? Service는 스프링에서 데이터 처리를 위해 작성하는 클래스이다. 서비스(Service)가 필요한 이유 모듈화 보안 엔티티 객체와 DTO객체의 변환 1.모듈화 어떤 컨트롤러가 여러개 리포지터리를 이용해서 데이터를 조회하고 가공하고 리턴할 때, 이런 기능을 서비스로 만들어 두면 컨트롤러에서는 해당 서비스를 호출해서 사용하면 된다. 서비스를 만들지 않고, 컨트롤러에서 구현하려 한다면 모든 컨트롤러가 동일한 기능을 중복으로 구현해야한다. =>서비스는 모듈화를 위해 필요하다 2. 보안 컨트롤러는 리포지터리 없이 서비스를 통해서만 데이터베이스에 접근하도록 하는것이 보안에 좋다. why? 해커가 컨트롤러를 해킹해서 제어할 수 있어도, 리포지터리에 직접 접근할 수는 없다. 3. 엔티티 객체와 DTO객체의 변환 엔티.. 2022. 10. 26.
자주 사용하는 타임리프 속성 1. 분기문 속성 분기문 속성은 다음과 같이 사용한다. th:if="${question != null}" 위의 경우 question 객체가 null 이 아닌 경우에 해당 엘리먼트가 표시된다. 2. 반복문 속성 반복문은 반복횟수만큼 해당 엘리먼트를 반복하여 표시한다. 반복문 속성은 자바의 for each 문과 유사하다. th:each="question : ${questionList}" 반복문은 다음과 같이 사용할 수도 있다. th:each="question, loop : ${questionList}" 추가한 loop 객체를 이용하여 루프 내에서 다음과 같은 속성을 사용할수 있다. loop.index - 반복 순서, 0부터 1씩 증가 loop.count - 반복 순서, 1부터 1씩 증가 loop.size -.. 2022. 10. 26.
스프링 의존성 주입(Dependency Injection) 3가지 방식 스프링의 의존성 주입(Dependency Injection) 방식 3가지 @Autowired 속성 - 속성에 @Autowired 애너테이션을 적용하여 객체를 주입하는 방식 생성자 - 생성자를 작성하여 객체를 주입하는 방식 (권장하는 방식) Setter - Setter 메서드를 작성하여 객체를 주입하는 방식 (메서드에 @Autowired 애너테이션 적용이 필요하다.) 출처:https://wikidocs.net/161186 2022. 10. 26.
JPA + Hibernate JPA란? 스프링부트는 JPA(Java Persistence API)를 사용하여 데이터 베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스 모음이다. =>JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA구현한 대표적인 실제 클래스에는 하이버네이트(Hibernate)가 있다. 2022. 10. 26.