[스프링 핵심 원리 - 기본편] 스프링 핵심 원리 이해(2)
·
Back-End/Spring
[작성일: 2023. 08. 01] 새로운 할인 정책 개발이번에는 주문한 금액의 %를 할인해 주는 새로운 정률 할인 정책을 추가하자.RateDiscountPolicy 추가public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent = 10; @Override public int discount(Member member, int price) { if (member.getGrade() == Grade.VIP) { return price * discountPercent / 100; } else { return 0; } ..
[스프링 핵심 원리 - 기본편] 스프링 핵심 원리 이해(1)
·
Back-End/Spring
[작성일: 2023. 06. 02]  비즈니스 요구사항과 설계(순수 자바 개발)회원 도메인 요구사항회원을 가입하고 조회할 수 있다.회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정)  주문과 할인 정책회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용할 수 있다.할인 정책은 모든 VIP는 1000원을 할인해 주는 고정 금액 할인을 적용해야 한다.(나중에 변경가능성 있음.)할인 정책은 변경 가능성이 높다.(미확정)     회원 도메인 설계회원 도메인 협력 관계회원 저장소라는 인터페이스 생성(메모리 회원 저장소/DB회원 저장소/외부 시스템 연동 회원 저장소 중 선정)  회원 클래스 다이어그램  회원 객체 다이어그램회원..
[스프링 핵심 원리 - 기본편] 객체지향 설계와 스프링
·
Back-End/Spring
[작성일: 2023. 05. 30] 스프링이란?스프링 프레임워크핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술 : 스프링 MVC, 스프링 WebFlux데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원기술 통합 : 캐시, 이메일, 원격 접근, 스케줄링테스트 : 스프링 기반 테스트 지원언어 : 코틀린, 그루비최근에는 스프링 부트를 통해 스프링 프레임워크의 기술들을 편리하게 사용하고 있음.   스프링 부트스프링을 편리하게 사용할 수 있도록 지원하며 최근에는 기본으로 사용하고 있다.단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성한다. Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다.쉬운 빌드 구성을 위한 starter 종속성을 제공한다..
[스프링 입문] AOP
·
Back-End/Spring
[작성일: 2023. 05. 24] AOPAOP가 필요한 상황모든 메소드의 호출 시간을 측정하고 싶다면?공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)회원 가입 시간, 회원 조회 시간을 측정하고 싶다면?   MemberService회원 조회 시간 측정 추가@Transactionalpublic class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } pub..
[스프링 입문] 스프링 DB 접근 기술(2)
·
Back-End/Spring
[작성일: 2023. 05. 22] JPAJPA는 기존의 반복 코드는 물론이고 기본적인 SQL도 JPA가 직접 만들어서 실행해준다.JAP를 사용하면 SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다.JAP를 사용하면 개발 생산성을 크게 높일 수 있다.  Build.gradleJDBC 관련 코드는 주석처리 해주고 JPA, h2 데이터베이스 관련 라이브러리를 추가한다.spring-boot-starter-data-jpa는 내부에 jdbc 관련 라이브러리를 포함하기 때문에 jdbc는 제거해도 상관없다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation '..
[스프링 입문] 스프링 DB 접근 기술(1)
·
Back-End/Spring
[작성일: 2023. 05. 17]  H2 데이터베이스 설치나는 지금 데이터베이스로 dbeaver를 쓰고 있기는 하지만 강의를 더 완벽하게 흡수하기 위해 똑같이 h2를 설치해서 사용해보기로 했다. 강의에서는 1.4.200 버전을 사용하고 있기도 하고, 최근 버전을 사용하면 일부 기능이 정상 동작 하지 않는다고하여 1.4.200 버전을 설치하면 된다.  https://www.h2database.com/html/download-archive.htm  (window 기준) 패키지를 다운받았다면 압축을 풀고 bin 폴더의 h2.bat을 실행해주면 H2콘솔 창이 인터넷으로 연결된다.  데이터베이스 파일 생성 방법최초 한 번은 JDBC URL을 jdbc:h2:~/test로 접속한다. 그 이후부터는 jdbc:h2:t..