본문 바로가기

TIL/Java | Spring Boot32

[Spring Boot] JdbcTemplate, JPA, 스프링 데이터 JPA Spring에서 DB에 접근하는 방법은 여러 개가 있는데, 전에 봤던 순수 JDBC를 쓸 수도 있지만, JdbcTemplate이나 JPA, 스프링 데이터 JPA를 이용하는 방법도 있다. 각각의 차이는 다음과 같다. JDBCTemplate을 이용하면 반복된 코드가 많이 줄어들지만, SQL을 직접 작성해야 한다. JPA를 이용하면 기본적인 CRUD하는 데에 내가 쿼리를 직접 작성할 필요가 없다. (select 할 때만 JPQL을 짜야 한다) 스프링 데이터 JPA까지 오니까 아예 구현 클래스를 작성할 필요 없이 인터페이스만으로 개발이 끝나 버렸다. 웹 MVC, 데이터 접근 기술, ORM 기술도 되게 중요하다. 1. JDBCTemplate 이용하는 법 다음의 코드를 JdbcTemplateMemberReposit.. 2022. 1. 20.
[Spring Boot] 스프링 DB 접근 기술 지난 블로그에 이어서 같은 예제로 외부 DB를 연결하고 컨테이너에 존재하던 메모리 구현체를 DB로 바꿔 꼈다. 그리고 JDBC(Java DataBase Connectivity : 자바에서 DB 프로그래밍을 하기 위해 사용하는 API)를 이용해서 리포지토리들을 구현해줬다. 오늘 수업에서는 순수 JDBC를 이용한 것으로, 약 20년 전에는 이런 식으로 코딩을 했다고 한다. 그래도 작동 원리 이해?를 위해서 공부해보고 넘어갔다. 1. H2 데이터 베이스 설치 H2는 개발이나 테스트 용도로 가볍고 편리하게 사용할 수 있는 DB로, 웹 화면을 제공한다. 먼저 아래 사이트에 가서 H2 데이터 베이스를 설치한다. 주의할 점은 1.4.200 버전을 설치해야 한다는 것이다. 최신 버전은 일부 기능이 정상적으로 작동하지 .. 2022. 1. 14.
[Spring Boot] 회원 관리 예제 - 웹 MVC 개발 스프링 부트 강의를 들으면서 수업 내 다루는 예제들을 따라해 보는 중이다. 지난 블로그에서 작성했던 스프링 빈 등록까지 마친 후 회원 관리 기능을 웹 페이지로도 보여주는 MVC 개발 단계이다. 먼저 홈 컨트롤러를 추가해준다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 하는 역할은 localhost:8080/ 이 .. 2022. 1. 11.
[Spring Boot] 스프링 빈과 의존관계 지난 블로그에서 작성했던 예제를 가지고 스프링 빈과 의존관계에 대해서 알아보려고 한다. 컨트롤러 패키지 안에 MemberController 클래스를 생성해주었다. MVC 중에 C를 가지고 요청을 받고 어떤 동작을 해줄지를 결정하기 위해서이다. package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final Membe.. 2022. 1. 9.
[Spring Boot] 간단한 예제 - 회원 관리 예제 2 지난 글에서는 리포지토리와 관련한 이번에는 회원 서비스 개발 및 테스트이다. 회원가입과 전체 회원 조회, 개별 회원 조회 이렇게 세 가지 서비스를 추가하려고 한다. 새로 service 패키지를 만들어서 그 안에 MemberService 클래스를 만든다. 그리고 아래 코드를 추가한다. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; .. 2022. 1. 7.
[Spring Boot] 간단한 예제 - 회원 관리 예제 1 인프런에서 무료로 열려 있는 스프링부트 입문 강의를 수강하고 있다. 오늘 배운 내용은 회원 관리에 필요한 백엔드를 만드는 것이다. 먼저 다음과 같은 상황을 가정했다. 데이터에는 회원 ID(pk로 사용자가 아닌 시스템에서 고유키로 부여), 회원 이름을 저장 기능 : 회원 등록, 조회 아직 데이터베이스로 무엇을 사용해야 할지 (ex. MSSQL, MySQL 등) 결정하지 못해서 DB가 없이 먼저 개발부터 해야 할 상황 일반적으로 웹 애플리케이션의 계층 구조는 다음과 같다. 이 때 아직 DB가 선정되지 않았기 때문에, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계하며, 구현체로 가벼운 메모리 기반의 데이터 저장소를 사용한다. ※자바의 인터페이스※ 객체와 객체 사이에서 일어나는 상호 작용의 매개로 쓰인.. 2022. 1. 7.