본문 바로가기

BackEnd304

[스프링 기본] 싱글톤 컨테이너 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.  웹 애플리케이션과 싱글톤- 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. - 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션도 개발할 수 있다. - 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다.- 클라이언트가 요청할 때마다 객체가 생성된다. (비효율)package hello.core.singleton;import hello.core.AppConfig;import hello.core.member.MemberService;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.DisplayName;import org.. 2024. 7. 7.
[스프링 기본] 컨테이너와 스프링 빈 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 스프링 컨테이너 생성스프링 컨테이너가 생성되는 과정ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);- ApplicationContext를 스프링 컨테이너라고 한다.- ApplicationContext는 인터페이스이다.- 스프링 컨테이너는 XML 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다.- 이전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다.- 자바 설정 클래스를 기반으로 스프링 컨테이너(ApplicationContext)를.. 2024. 7. 7.
[스프링 기본] 객체 지향 원리 적용 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 새로운 할인 정책 개발실무에서 기획자가 할인 정책을 지금처럼 고정된 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률% 할인으로 변경하고 싶다고 요청했다. 1. 객체지향 설계 원칙을 잘 준수했는지 확인하기 위해 주문한 금액의 %를 할인해 주는 새로운 정률 할인 정책을 추가한다.2. RateDiscountPolicy 클래스를 만든다.package hello.core.discount;import hello.core.member.Grade;import hello.core.member.Member;public class RateDiscountPolicy implements DiscountPolicy{ private int di.. 2024. 7. 5.
[스프링 기본] 예제 만들기 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 프로젝트 생성1. start.spring.io 사이트에서 dependency에 아무것도 추가하지 않고 다운로드하여서 프로젝트를 시작한다.2. Gradle을 통해서 실행하는 것이 기본설정인데, InteliJ IDEA로 변경해준다. Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle - Build and run using: Gradle -> IntelliJ IDEA- Run tests using: Gradle -> IntelliJ IDEA  비즈니스 요구사항과 설계1. 회원- 회원을 가입하고 조회할 수 있다.- 회원은 일반과 VIP 두 가지 등급이 있다.- 회원 데이터는.. 2024. 7. 4.
[스프링 기본] 객체 지향 설계와 스프링 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 좋은 객체 지향 설계의 5가지 원칙(SOLID) SOLID• SRP: 단일 책임 원칙(single responsibility principle)• OCP: 개방-폐쇄 원칙 (Open/closed principle)• LSP: 리스코프 치환 원칙 (Liskov substitution principle)• ISP: 인터페이스 분리 원칙 (Interface segregation principle)• DIP: 의존관계 역전 원칙 (Dependency inversion principle) 1. SRP 단일 책임 원칙- 한 클래스는 하나의 책임만 가져야 한다.- 하나의 책임이라는 것은 모호하다.  - 클 수 있고, 작을 수 있다.  - 문맥과 상황.. 2024. 7. 4.
[스프링 입문] AOP 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. AOP가 필요한 상황메서드가 1000개가 있을 때, 모든 메서드의 호출 시간을 측정하고 싶다고 가정한다.회원 가입, 회원 조회 시간 측정을 할 때 단순히 이렇게 구현할 수 있다. /** * 회원 가 입 */ public Long join (Member member) { long start = System.currentTimeMillis(); //중복 회원 검증 try { validateDuplicateMember(member); memberRepository.save(member); return member.getId(); .. 2024. 7. 3.