📌 비즈니스 요구사항 정리✔ 데이터 : 회원ID, 이름✔ 기능 : 회원등록, 조회✔ 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오)📌 웹 애플리케이션 계층 구조웹 애플리케이션 계층 구조➰ 컨트롤러 : 웹 MVC의 컨트롤러 역할➰ 서비스 : 핵심 비즈니스 로직
📌 테스트 케이스 작성✔ JUnit 프레임워크로 테스트 실행✔ 클래스 단위로 테스트 코드를 실행 시킬경우 메소드의 순서가 순차적이지 않음 ┗ 테스트 코드의 메서드가 하나 끝나고 나면 해당 테스트 코드의 데이터를 없애야함
회원 서비스 개발
📌 스프링 빈(Bean)의 개념과 생성 원리✔ 빈(Bean)✔ Spring IoC 컨테이너에 빈을 등록하는 방법📌 Component Scan과 자동 의존 관계 설정스프링 컨테이너@Component 은 스프링 컨테이너에 넣어준다면 그것들을 이어주는 것은 @Autowi
스프링📌 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술: 스프링 MVC, 스프링 WebFlux데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원기술 통합: 캐시, 이메일, 원격접근, 스케줄링테스트: 스프링 기반 테스트 지원언어: 코
객체 지향 특징 추상화 캡슐화 상속 다형성 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (
좋은 객체 지향 설계의 5가지 원칙(SOLID) SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙 (Open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution
스프링 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경없이 기능 확장 📌 정리 모든 설계에 역할과 구현을 분리
📌 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성https://start.spring.io/📌 프로젝트 선택Project: Gradle ProjectSpring Boot: 2.3.xLanguage: JavaPackaging: JarJava: 1
✔ 회원회원을 가입하고 조회할 수 있다.회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)✔ 주문과 할인 정책회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용할 수 있다.할인
📌 회원 도메인 요구사항✔ 회원을 가입하고 조회할 수 있다.✔ 회원은 일반과 VIP 두 가지 등급이 있다.✔ 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)📌 회원 도메인 협력 관계회원 도메인 협력 관계📌 회원 클래스 다이어
주문과 할인 도메인 설계 강의 : 스프링 핵심 원리 - 기본편
📌 Framework(프레임 워크)프레임 워크는 뼈대나 기반 구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다.'소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합'으로 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을
의존관계 주입이란, 클래스의 연관 관계를 주입해주는 것이다.의존관계는 정적인 클래스 의존관계와 실행 시점에 결정되는 동적인 객체(인스턴스) 인존관계 둘을 분리해서 생각해야한다.애플리케이션 실행 시점(런타임)에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클
Spring에서는 Spring Container, IoC Container라는 개념을 사용한다.Container는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다.즉 Container는 개발자가 작성한 코드의 처리과정을 위임
싱글톤 패턴 (Singleton pattern)
📌 org.assertj.core.api.AssertionsAssertions는 org.assertj.core.api.Assertions 클래스다.✔ Assertions.assertThat(객체1).isEqaulsTo(객체2)assertThat()으로 비교할 대상을
@📌 @Configuration스프링 IOC Container에게 해당 클래스를 Bean 구성 클래스임을 알려준다.📌 @Component vs @Bean@Component와 @Bean 은 둘 다 Spring(IOC) Container에 빈을 등록하도록 하는 메타 데
@ComponentScan 📌 @Component @Component이란, @Component 및 Stereo Type(@Service, @Repository, @Controller)이 부여된 클래스들을 자동으로 스캔하여 빈으로 등록해주는 역할을 한다.
Stereo Type Annotation 스프링 컨테이너가 스프링 관리 컴포넌트로 식별하게 해주는 단순한 마커다.
컴프넌트 스캔에 의해 자동으로 스프링 빈이 등록된다. 그 이름이 같은 경우 스프링은 오류를 발생시킨다.ConflictingBeanDefinitionException 예외가 발생한다.이 경우 수동 빈 등록이 우선권을 가진다.수동 빈이 자동 빈을 오버라이딩한다.👀 수동
@Autowired는 의존관계를 자동으로 주입한다.스프링 컨테이너는 2가지 라이프 사이클이 존재한다.1\. 스프링 빈 등록2\. 의존관계 주입생성자를 통해서 의존 관계를 주입 받는 방법이다.스프링 컨테이너 라이프 사이클에서 1, 2번이 동시에 진행된다.빈을 등록하기 위
서로 다른 두 개의 클래스가 서로 참조하고 있는 상태를 말한다.순환 참조
build.gradle에 라이브러리 및 환경 추가
빈 조회