Spring 7

[Spring] 07. AOP

AOPAOP가 필요한 상황모든 메소드의 호출 시간을 측정하고 싶다면?초 단위로 만들었는데 ms 단위로 만들라고 하면??공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?MemberService 회원 조회 시간 측정 추가package hello.hellospring.service;@Transactionalpublic class MemberService { /** * 회원가입 */ public Long join(Member member) { long start = System.currentTimeMillis(); try { vali..

Spring 2024.05.13

[Spring] 06. 스프링 DB 접근 기술

스프링 DB 접근 기술H2 데이터베이스 설치순수 Jdbc스프링 JdbcTemplateJPA스프링 데이터 JPAH2 데이터베이스 설치개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공 [https://www.h2database.com]다운로드 및 설치h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다.권한 주기: chmod 755 h2.sh (윈도우 사용자는 x)실행: ./h2.sh (윈도우 사용자는 h2.bat)실행하면 exploler에 콘솔이 뜨는데, 접속이 안되면 주소를 localhost로 해주자데이터베이스 파일 생성 방법jdbc:h2:~/test (최초 한번)~/test.mv.db 파일 생성 확인이후부터는 jdbc:h2:tcp://localhost/~/test 이렇게 접속h2 데이터베이스 버..

Spring 2024.05.13

[Spring] 회원 관리 예제 - 웹 MVC 개발

회원 관리 예제 - 웹 MVC 개발회원 웹 기능 - 홈 화면 추가HomeController를 만들자package hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { // localhost:8080/ 요청이 오면 이 메서드가 호출되어 home.html이 호출됨 @GetMapping("/") public String home() { return "home"; }}GetMapping("/")는 그냥 첫번째 local..

Spring 2024.04.29

[Spring] 스프링 빈과 의존관계

스프링 빈과 의존관계컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자회원 컨트롤러에 의존관계 추가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 = new MemberService(); //..

Spring 2024.04.29

[Spring] 회원 관리 예제 - 백엔드 개발

회원관리 예제 - 백엔드 개발비지니스 요구사항 정리회원 도메인과 리포지토리 만들기회원 리포지토리 테스트 케이스 작성회원 서비스 개발회원 서비스 테스트비지니스 요구사항데이터: 회원ID, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)일반적인 웹 application layer 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현ex) 중복 가입 불가리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등..

Spring 2024.04.29

[Spring] 스프링 웹 개발 기초

스프링 웹 개발 기초정적 컨텐츠서버에서 특별한 동작을 하지 않고 파일을 그대로 웹브라우저(client)로 전달스프링 부트는 정적 컨텐츠를 제공함 정적 컨텐츠 입니다. localhost:8080/hello-static.html원하는 파일을 넣으면 파일 그대로 반환됨내장 톰켓 서버가 요청을 받고 Spring에 controller가 있는지 찾아봄hello-static이라는 컨트롤러, 맵핑된 컨트롤러가 존재Xresources 안에 있는 static/hello-static.html을 찾음찾은 파일을 반환MVC와 템플릿 엔진Model, View, Controller서버에서 변형을 해서(EX. HTML 파일 변경) 웹브라우저(client)로 전달hello! empty단순히 hello-mvc를 열..

Spring 2024.04.28

[Spring] 스프링 View 환경설정

View 환경설정Welcome Page 만들기resources/static/index.html에 다음 파일 생성Hellohello스프링 부트가 제공하는 Welcome Page 기능static/index.html 을 올려두면 Welcome page 기능을 제공한다.thymeleaf 템플릿 엔진Controller 만들기hello.hellospring 패키지 안에 controller 패키지를 만들고 controller 클래스를 생성@Controllerpublic class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); r..

Spring 2024.04.28