백엔드/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 7

섹션8. AOP

AOP가 필요한 상황모든 메소드의 호출 시간을 측정하고 싶다면?공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? MemberService 회원 조회 시간 측정 추가package hello.hellospring.service;import hello.hellospring.domain.Member;import hello.hellospring.repository.MemberRepository;import hello.hellospring.repository.MemoryMemberRepository;import org.springframework.beans.factory.annotation.Autowired;i..

섹션7. 스프링 DB 접근 기술

H2 데이터베이스 설치개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공https://www.h2database.com 에서 다운로드 h2.bat 입력하여 실행실행 후 화면jdbc:h2:~/test (최초 한번)연결 버튼 클릭 ~/test.mv.db 파일 생성 확인 jdbc:h2:tcp://localhost/~/test 입력하여 연결  테이블 생성하기 ctrl + Enter 로 실행 모두 지운 상태로 MEMBER 클릭하면 자동으로 SELECT * FROM MEMBER 입력됨 insert into member(name) values('spring1')insert into member(name) values('spring2') 입력 후 결과 테이블 관리를 위해 프로젝트 루트에 sql/ddl.sql 파..

섹션6. 회원 관리 예제 - 웹 MVC 개발

회원 웹 기능 - 홈 화면 추가controller 패키지에 HomeController 클래스 생성package hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") public String home(){ return "home"; }}  template/home.html 생성 Hello Spring 회원 기능 회원 가입 ..

섹션5. 스프링 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계 준비 회원 컨트롤러에 의존관계 추가package hello.hellospring.controller;import hello.hellospring.service.MemberService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;@Controllerpublic class MemberController { private final MemberService memberService; @Autowired public MemberContro..

섹션4. 회원 관리 예제 - 백엔드 개발

비즈니스 요구사항 정리데이터: 회원 ID, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현, ex) 회원 중복 가입 불가 로직리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리 클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터베이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용단순한..

섹션3. 스프링 웹 개발 기초

정적 컨텐츠스프링 부트 정적 컨텐츠 기능파일을 그대로 웹브라우저에 내려줌 resources/static/hello-static.html 생성 정적 컨텐츠 입니다.  실행http://localhost:8080/hello-static.html  정적 파일이 그대로 반환됨  정적 컨텐츠 이미지 내장 톰캣 서버가 요청을 받고 스프링에 넘김스프링은 먼저 컨트롤러 쪽에서 존재하는지 확인→ 없으면, resources:static/hello-static.html 찾음(컨트롤러가 우선 순위를 가짐)  MVC와 템플릿 엔진MVC : Mdoel, View,Controller (과거에는 컨트롤러와 뷰가 따로 분리되어 있지 않았고 뷰에 모든 걸 다 했었음 - 모델1 방식) 뷰는 화면을 그리는 데 집중컨트롤러와 모델 관련..

섹션2. 프로젝트 환경설정

프로젝트 생성사전준비물Java 설치IDE: IntelliJ 또는 Eclipse 설치https://start.spring.io/ 스프링 부트 스타터 사이트를 이용해 스프링 프로젝트 생성 해당 사이트에서 아래 사진과 같이 설정한 후, GENERATE 눌러 다운받음 ProjectGradle, Maven : 필요한 라이브러리를 가져오고, 빌드하는 라이프 사이클까지 관리해주는 툴Gradle을 많이 쓰는 추세 Spring BootSNAPSHOT, M1 이런 것들은 아직 정식 릴리즈 버전X Project MetadataGroup: 보통 기업 도메인명을 주 적음Artifact: build되어 나올 때의 결과물 Dependencies어떤 라이브러리를 가져올지 결정 압축 푼 뒤, IntelliJ에서 build.gradle..