🌱 Spring/Core

본 포스팅은 인프런 - 스프링 핵심 원리(기본편)을 강의를 바탕으로 공부하고 정리한 글입니다. 사전 준비 프로젝트 생성 비즈니스 요구사항 회원 회원을 가입하고 조회할 수 있다. 회원은 일반, VIP 두가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 잇다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책 모든 VIP는 1000원 고정 금액 할인을 적용 (나중에 변경 될 수 있음) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 할인을 적용하지 않을 수도 있다. (미확정) 회원 도메인 설계 👉🏻 회원 도메인 협력 관계 회원 서비스..
본 포스팅은 인프런 - 스프링 핵심 원리(기본편)을 강의를 바탕으로 공부하고 정리한 글입니다. 스프링 💡 스프링 역사 2003년 스프링 프레임 워크 1.0 출시 - XML 2006년 스프링 프레임워크 2.0 출시 - XML 편의 기능 지원 2009년 스프링 프레임워크 3.0 출시 - 자바 코드로 설정 2013년 스프링 프레임워크 4.0 출시 - 자바8 2014년 스프링 부트 1.0 출시 2017년 스프링 프레임워크 5.0 스프링 부트 2.0 출시 - 리엑티브 프로그래밍 2020년 9월 스프링 프레임워크 5.2.x, 스프링 부트 2.3.x 2022년 스프링 프레임워크 6.x, 스프링 부트 3.x 💡 스프링 기능 필수 스프링 프레임워크 스프링 부트 선택 스프링 데이터 : CRUD 관련 스프링 세션 : 세션 ..
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 정적 컨텐츠 입니다. 👉 실행 동작 원리 웹 브라우저로부터 내장 톰켓 ..
an2z
'🌱 Spring/Core' 카테고리의 글 목록 (2 Page)