🌱 Spring

AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶을 경우 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? 👉🏻 MemberService 회원 가입, 조회 시간 측정 추가 📁 service/MemberService @Transactional public class MemberService { .... /** * 회원가입 */ public Long join(Member member) { long start = System.currentTimeMillis(); // 회원 가입 시간 측정 try { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } finally { ..
h2 데이터베이스 다운로드 및 설치 https://www.h2database.com/html/download-archive.html (최근에 나온 버전을 설치하면 일부 기능이 정상 동작하지 않을수 있어 1.4.200버전을 설치하기를 권장한다.) 권한 주기 (mac 사용자만) chmod 755 h2.sh 실행하기 window : h2.bat mac : ./h2.sh 데이터베이스 파일 생성 Embedded 설정 jdbc:h2~/test (최초 한번) 파일 생성 확인 : ~/test.mv.db ➡ 홈 디렉토리(User\사용자이름)에서 확인! 접속하기 jdbc:h2:tcp://localhost/~/test 테이블 생성 drop table if exists member CASCADE; create table me..
본 포스팅은 인프런 - 스프링 입문을 강의를 바탕으로 공부하고 정리한 글입니다. 회원 웹 기능 홈 화면 추가 👉🏻 홈 컨트롤러 추가 📁 controller/HomeController @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; // home.html 호출 } } 👉🏻 회원 관리용 홈 뷰 📁 templates/home.html Hello Spring 회원 기능 회원 가입 회원 목록 👉🏻 실행 (localhost:8080) 웹 브라우저로 부터 온 요청을 톰캣 서버가 받아 스프링에게 전달하면, 스프링은 정적 파일보다 컨트롤러에서 우선적으로 찾는다. 따라서 "localhost:8080..
본 포스팅은 인프런 - 스프링 입문을 강의를 바탕으로 공부하고 정리한 글입니다. 스프링 빈을 등록하는 2가지 방법에 대해 알아보자. 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록하기 컴포넌트 스캔과 자동 의존관계 설정 앞서 회원 도메인 객체, 회원 서비스, 회원 리포지토리를 만들어주었다. 이를 화면에 보여주기 위해 회원 컨트롤러와 뷰 템플릿이 필요하다. 때문에 회원 컨트롤러를 만들어 줘야 하는데, 이때 회원 컨트롤러가 회원 서비스를 통해 회원 가입 및 조회를 할 수 있어야 한다. 이를 위해 회원 컨트롤러가 회원 서비스 및 회원 리포지토리를 사용할 수 있도록 의존관계를 준비해줘야 한다. 📁 controller/MemberController @Controller public class..
본 포스팅은 인프런 - 스프링 입문을 강의를 바탕으로 공부하고 정리한 글입니다. 간단한 회원관리 예제를 만들어보면서 Spring이 어떻게 돌아가는지 알아보도록 하자. 비즈니스 요구사항 데이터 : 회원 ID, 이름 기능: 회원 등록, 조회 데이터베이스가 선정되지 않은 상태 웹 어플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리됨 클래스 의존 관계 회원 비즈니스 로직에는 회원 서비스가 있다. 회원 리포지토리는 아직 데이터베이스가 정해지지 않았기 때문에 우선 인터페이스로 구현 클래스를 변경할 수 있..
본 포스팅은 인프런 - 스프링 입문을 강의를 바탕으로 공부하고 정리한 글입니다. 스프링 웹을 개발하는 3가지 방식에 대해 알아보도록 하자. 정적 컨텐츠 : 서버에서 무언가 하지 않고 html 파일을 웹 브라우저에 그대로 내려주는 방식 MVC와 템플릿 엔진 : 서버에서 프로그래밍을 통해 html을 동적으로 바꿔서 웹 브라우저에 내려주는 방식 API : json 이라는 데이터 구조 포맷으로 바꿔서 웹 브라우저에 내려주는 방식 정적 컨텐츠 스프링 부트는 정적 컨텐츠 기능을 기본적으로 제공한다. 참고 정적 컨텐츠는 파일 그대로를 클라이언트에게 전달해주는 방식이다. 👉 View 📁 resources/static/hello-static.html 정적 컨텐츠 입니다. 👉 실행 동작 원리 웹 브라우저로부터 내장 톰켓 ..
본 포스팅은 인프런 - 스프링 입문을 강의를 바탕으로 공부하고 정리한 글입니다. 스프링 프로젝트 생성 및 실행 스프링 부트 기반 프로젝트 생성 스프링 부트 스타터 사이트를 사용해 스프링 부트 기반 프로젝트를 간편하게 생성할 수 있다. Project : 빌트 관리 툴 선택 (Gradle을 많이 사용) Language : 언어 설정 Spring Boot : 스프링 부트 버전 설정 정식버전 중 가장 최신버전을 선택하면 된다. SNAPSHOT : 미정식 버전 Project Metadata Group : 보통 기업의 도메인명 Artifact : 빌드 결과물 이름 Name : 이름 Description : 프로젝트 설명 Package name : 패키지 이름 Packaging : 배포 형태 선택 Java : 자바 ..
an2z
'🌱 Spring' 카테고리의 글 목록 (9 Page)