본문 바로가기

Back-end/Spring19

[Spring] AOP 스프링 입문 강의를 들으면서 복습겸 기록을 합니다. AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? MemberService 회원 조회 시간 측정 추가 public class MemberService { /** * 회원가입 */ public Long join(Member member) { long start = System.currentTimeMillis(); try { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.ge.. 2021. 9. 21.
[Spring] 스프링 DB 접근 기술 스프링 입문강의를 들으면서 복습겸 기록을 합니다. H2 데이터베이스 설치 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공 https://www.h2database.com 다운로드 및 설치 h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. 권한 주기: chmod 755 h2.sh (윈도우 사용자는 x) 실행: ./h2.sh (윈도우 사용자는 h2.bat) 데이터베이스 파일 생성 방법 jdbc:h2:~/test (최초 한번) ~/test.mv.db 파일 생성 확인 이후부터는 jdbc:h2:tcp://localhost/~/test 이렇게 접속 테이블 생성하기 테이블 관리를 위해 프로젝트 루트에 sql/ddl.sql 파일을 생성 drop table if exists member CASCADE; c.. 2021. 9. 21.
[Spring] 회원 관리 예제 - 웹 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"; } } 회원 관리용 홈 Hello Spring 회원 기능 회원 가입 회원 목록 참고: 컨트롤러가 정적 파일보다 우선순위가 높다. 회원 웹 기능 - 등록 1. 회원 등록 폼 개발.. 2021. 9. 21.
[Spring] 스프링 빈과 의존관계 스프링 입문강의를 들으면서 복습겸 기록을 합니다. 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러에 의존관계 추가 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 MemberService memberService; @Autowired public MemberController(MemberServic.. 2021. 9. 21.
[Spring] 회원 관리 예제 - 백엔드 개발 스프링 입문강의를 들으면서 복습겸 기록을 합니다. 비지니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비지니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비지니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 회원 도메인과 .. 2021. 7. 29.
[Spring] 스프링 웹 개발 기초 스프링 입문강의를 들으면서 복습겸 기록을 합니다. 정적 컨텐츠 ( 그냥 파일을 그대로 웹 브라우저에 전달) 스프링 부트 정적 컨텐츠 기능 https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features // hello-static.html 파일 내용 정적 컨텐츠 입니다. 실행 (http://localhost:8080/hello-static.html) 정적 컨텐츠 작동원리 MVC와 템플릿 엔진 ( 서버에서 뭔가 변형해서 내려주는 방식 ) MVC : Model, View, Controller 서로 담당하는 것들을 분리해서 관리를 한다. : 비지니스 로직과 관련, 내부를 처리하는것에 집중 @Controller public.. 2021. 7. 29.