본문 바로가기

Spring/스프링 입문8

[스프링 입문] Section 7. AOP 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 🌱 AOP가 필요한 상황 예를 들어, 모든 메서드의 호출 시간을 측정하고 싶다면? 어느 날 직장 상사가 어플리케이션의 모든 메서드 호출 시간(초)을 측정하라고 지시했다. 밤을 새며 아래와 같이 모든 메서드에 하나하나 시간 측정하는 로직을 추가했다. public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /.. 2022. 7. 7.
[스프링 입문] Section 6-2. 스프링 DB 접근 기술(2) 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 🌱 스프링 JdbcTemplate 순수 JDBC와 동일한 환경설정을 하면 된다. 스프링 JdbcTemplate과 MyBatis와 같은 라이브러리는 순수 JDBC API에서 본 반복 코드(Connection, ResultSet 등...)를 대부분 제거한다. 하지만 SQL은 직접 작성해야 한다. 순수 JDBC와 다르게 DataSource를 직접 사용하는 것이 아닌, DataSource를 감싼 JdbcTemplate 인스턴스를 사용해서 DB에 접근한다. Insert시 테이블과 컬럼명 그리고 값만 넘겨주면 SimpleJdbcInsert가 Insert 쿼리를 자동으로 생성한다.. 2022. 7. 7.
[스프링 입문] Section 6-1. 스프링 DB 접근 기술(1) 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 🌱 H2 DB 설치 H2 DB는 개발이나 테스트 용도로 가볍고 편리한 DB로 웹 화면을 제공한다. 다운로드 및 설치 : https://www.h2database.com/html/main.html 권한 주기: chmod 755 h2.sh (윈도우 사용자는 x) 실행: ./h2.sh (윈도우 사용자는 h2.bat) 데이터베이스 파일 생성 방법 jdbc:h2:~/test (최초 한번) ~/test.mv.db 파일 생성 확인 이후부터는 jdbc:h2:tcp://localhost/~/test 이렇게 접속 DB 테이블 생성하기 drop table if exists member .. 2022. 7. 7.
[스프링 입문] Section 5. 웹 MVC 개발 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 🌱 회원 웹 기능 - 홈화면 추가 HomeController @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } Hello Spring 회원 기능 회원 가입 회원 목록 🍃 회원 웹 기능 - 등록 회원 등록 폼 컨트롤러 MemberController @Controller public class MemberController { private final MemberService memberService; @Autowired public Membe.. 2022. 7. 7.
[스프링 입문] Section 4. 스프링 빈과 의존관계 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 📜 개요 스프링 빈을 등록하는 두 가지 방법으로 1. 컴포넌트 스캔과 자동 의존관계 설정 2. 자바 코드로 직접 스프링 빈에 등록하는 방법이 있다. 🌱 컴포넌트 스캔과 자동 의존관계 설정 서비스, 도메인 리포지토리를 만들었고 이제는 화면을 붙이고 싶다. 그렇다면 Controller와 View를 정의해야 한다. 먼저, 멤버 컨트롤러를 만들어야 하는데 멤버 컨트롤러가 멤버 서비스를 통해서 회원 가입을 하고 데이터를 조회할 수 있어야 한다. 이 구조에서 의존관계가 형성되는데 멤버 컨트롤러가 멤버 서비스에 의존한다고 표현한다. 가령 멤버 컨트롤러에서 멤버 서비스를 다음과 같.. 2022. 7. 6.
[스프링 입문] Section 3. 회원 관리 예제 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 🌱 비즈니스 요구사항 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 DB : 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러 : 웹 MVC의 컨트롤러 서비스 : 핵심 비즈니스 로직 리포지토리 : 데이터베이스에 접근하고 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, 가령 회원, 주문, 쿠폰 등등 주로 DB에 저장되고 관리됨 아직 DB가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 DB는 RDB, NoSQL 등등 다양한 저장소를 고민 중인 상황으로 가정 개발을 진행하기 위해 초기 단계에선 구현체로 .. 2022. 7. 6.
[스프링 입문] Section 2. 스프링 웹 개발 기초 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. 📜 개요 웹을 개발하는 것은 크게 세 가지 방법이 있음 정적 컨텐츠, MVC와 템플릿 엔진, API 🌱 정적 컨텐츠 서버에서 별도의 처리 없이 웹브라우저로 파일을 그대로 내려주는 것. resources/static/hello-static.html 정적 컨텐츠 입니다. Spring은 기본적으로 정적 컨텐츠 기능을 제공함. resources/static 산하에 있는 파일은 정적 컨텐츠로 분류된다. 가령 /hello-static.html 요청이 들어오면 톰캣 서버는 이를 받아서 스프링에 넘긴다. 스프링은 해당 요청에 매핑되는 컨트롤러가 없음을 확인하고 resources/s.. 2022. 7. 6.
[스프링 입문] Section 1. 프로젝트 환경설정 본 포스팅의 내용은 인프런 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 기반으로 작성했습니다. ✍️ 프로젝트 선택 Project: Gradle Project Spring Boot: 2.6.8 Language: Java Packaging: Jar Java: 11 Gradle 설정 plugins { id 'org.springframework.boot' version '2.6.8' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.kangworld' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositor.. 2022. 7. 6.
반응형