Spring 10

스프링 DB 접근 기술 ( 스프링 데이터 JPA ) AOP ( AOP가 필요한 상황 | AOP 적용 )

스프링 데이터 JPA 스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어듭니다. 여기에 스프링 데이터 JPA를 사용하면, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공합니다. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 프레임워크를 더하면 개발 코드들이 확연하게 줄어듭니다. 스프링 데이터 JPA 회원 리포지토리 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.data.jpa.repository.JpaRep..

Spring 2022.02.03

스프링 DB 접근 기술 3 ( JPA | 스프링 데이터 JPA )

JPA JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다. JPA를 사용하면 개발 생산성을 크게 높일 수 있다 먼저 jpa를 사용하기 위해 build.gradle에서 1 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 2 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 1번 jdbc는 이제 주석처리 해주고 data-jpa를 추가해줍니다 그리고 spplication.properties에서 jpa와 관련된 설정을 추가..

Spring 2022.01.28

스프링 DB 접근 기술 2 ( 스프링 통합 테스트 | 스프링 JdbcTemplate )

저번 스프링 DB 접근 기술에 이어 진행합니다 스프링 통합 테스트 test - java - service - MemberServiceIntegrationTest 를 하나 생성합니다 package com.ujin.ujinspring.service; import com.ujin.ujinspring.domain.Member; import com.ujin.ujinspring.repository.MemberRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; imp..

Spring 2022.01.27

스프링 DB 접근 기술 1 ( H2 데이터베이스 설치 | 순수 JDBC )

(스프링 DB 접근 기술을 몇 차례에 나누어 진행하도록 하겠습니다) 지금까지는 따로 회원 정보를 DB에 저장해두지 않아 껐다 키면 서버가 날아가 회원 목록이 전부 사라졌습니다 데이터가 날아가지 않도록 H2 데이터베이스 설치를 하도록 하겠습니다 그리고 설치한 DB를 JDBC로 연결하여 사용해보도록 하겠습니다 H2 데이터베이스 설치 : 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공 https://www.h2database.com 에 접속하여 다운로드 및 설치 h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다 권한 주기 : chmod 755 h2.sh jdbc:h2:tcp://localhost/~/test 3. 실행을 누른 뒤 테이블을 만든다 4. table을 하나 만들어주었다 왼쪽에 노랑 형광..

Spring 2022.01.26

회원 관리 예제 - 웹 MVC 개발 ( 회원 웹 기능 - 홈 화면 추가 | 등록 | 조회 )

회원 웹 기능 - 홈 화면 추가 package com.ujin.ujinspring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } Helloc Spring 회원 기능 회원 가입 회원 목록 locathost:8080 입력 이런 화면이 보여지게 되고 회원가입을 누르면 페이지가 아래 그림과 같이 이동된다 그런데 그 전에 만들어둔 static - index.html이 왜..

Spring 2022.01.25

스프링 빈과 의존관계 ( 컴포넌트 스캔과 자동 의존관계 설정 | 자바 코드로 직접 스프링 빈 등록하기 )

스프링 빈을 등록하고, 의존관계 설정하기 - 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러에 의존관계 추가 MemberController 클래스 추가 package com.ujin.ujinspring.controller; import com.ujin.ujinspring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final Membe..

Spring 2022.01.24

회원 관리 예제 2 - 백엔드 개발 ( 회원 서비스 개발 | 회원 서비스 테스트 )

(( 저번 회원 관리 예제 1에 이어서 진행됩니다 )) 회원 서비스 개발 service 패키지를 하나 생성합니다 service 패키지 안에는 MemberService 클래스를 하나 생성합니다 package com.ujin.ujinspring.service; import com.ujin.ujinspring.domain.Member; import com.ujin.ujinspring.repository.MemberRepository; import com.ujin.ujinspring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { private final M..

Spring 2022.01.21

회원 관리 예제 1 - 백엔드 개발 ( 비즈니스 요구 사항 정리 | 회원 도메인과 리포지토리 만들기 | 회원 리포지토리 테스트 케이스 작성 )

비즈니스 요구 사항 정리 비즈니스 요구 사항 정리 - 데이터 : 회원 ID, 이름 - 기능 : 회원 등록, 조회 - 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) - 컨트롤러 : 웹 MVC의 컨트롤러 역할 - 서비스 : 핵심 비즈니스 로직 구현 - 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 - 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 회원 도메인과 리포지토리 만들기 com.ujin.ujinspring - domain 패키지를 하나 만들어주었습니다 새로 만든 도메인 패키지 안에는 Member 클래스를 생성하였습니다 package com.ujin.ujinspring.domain; public class Member..

Spring 2022.01.20

스프링 웹 개발 기초 ( 정적 컨텐츠 | MVC와 템플릿 엔진 | API )

정적 컨텐츠 스프링 부트는 정적 컨텐츠를 제공하고 있습니다 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the applic..

Spring 2022.01.19

프로젝트 환경 설정 ( 프로젝트 생성 | 라이브러리 살펴보기 | View 환경설정 | 빌드하고 실행하기 )

시작하기에 앞서 - Java11 - IDE : IntelliJ 또는 Eclipse 를 설치합니다. 저는 인프런 스프링 입문 강의를 따라 IntelliJ를 설치했습니다. 1. https://start.spring.io 에 접속합니다. 2. Project를 선택해줍니다 사용할 빌드 툴 선택을 합니다 현재 대부분은 Gradle Project를 사용한다고 합니다 3. Language는 그대로 Java를 사용합니다 4. Spring Boot는 버전을 선택하는 부분입니다. (SNAPSHOT는 아직 만들고 있는 버전이라고 합니다) 5. Group과 Artifact는 자유롭게 바꾸어주었습니다. ( 약간 프로젝트명 느낌 ) 6. 그리고 중요한 Dependencies !! 어떤 라이브러리를 가져와 사용할지 정해야 합니다...

Spring 2022.01.19