본문 바로가기

Spring/기본9

3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 1. 기존 설계 문제점 - 문제점 위 자료를 보자. 정책을 변경하려면 클라이언트인 OrderServiceImpl 코드를 변경해야 한다. 이는 다형성을 활용하여, 역할(interface)과 구현(class)을 분리했지만 - OCP(: 변경하지 않고 확장이 가능하다)를 위반하는 것을 확인할 수 있다. - 또한 인터페이스뿐만 아니라 구체 클래스에도 의존하고 있다. DIP(: 구체화가 아닌, 추상화에 의존해야한다.) 위반 - 해결방안 인터페이스에만 의존하도록 코드를 변경해야한다. 즉, 클라이언트인 OrderServiceImpl에 구현 객체를 대신 생성하고 주입해주어야 한다. AppConfig : 애플리케이션의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고 생성자를 통해서 연결하는 책임을 .. 2023. 7. 21.
2. 스프링 핵심 원리 이해1 - 예제 만들기 1. 회원 도메인 설계 - Service : 핵심 비즈니스 로직 구현 - MemberService 로 '회원가입' 및 '회원 조회' 기능 추상화 - MemberServiceImpl 에서 구체화 - MemberRepository 에 의존함, 그러나 구체 클래스에도 의존하고 있음 (DIP 위반) - Repository : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 - MemberRepository 로 데이터베이스에 '회원 저장' 및 'Id 회원 찾기' 기능 추상화 - 어떤 데이터베이스를 사용할 지 정해지지 않음 (자체 DB / 외부 시스템 연동) 2. 주문과 할인 도메인 설계 위의 강의자료처럼 역할과 구현을 분리해서 자유롭게 구현 객체를 조립할 수 있게 설계해야 한다. 덕분에 회원 저장소와 할.. 2023. 7. 20.
1. 객체지향 설계와 스프링 Q. EJB(Enterprise Java Beans) 란? 개념 ▶ 기업 환경에서 사용되는 분산 컴포넌트 아키텍처를 위한 표준 Java 기술 장점 1. 분산 애플리케이션 개발을 위한 기본 구조를 제공한다. 2. 트랜잭션 관리와 보안 : 트랜잭션 관리와 보안을 자동으로 처리하여, 개발자가 직접 구현할 필요가 없다. 단점 1. 복잡한 모델을 가지고 있어, 설정 및 배포 작업에 시간이 걸린다. 2. 순수 객체지향적이지 않다. (Session Bean, Entity Bean) 3. 컨테이너 환경 없이 단위 테스트하기 어려움 * 복잡성과 기술적 제약으로 개발 생산성과 유연성이 감소된다. Q. Spring 이란? 개념 ▶ Java를 기반으로 하는 기업용 애플리케이션 개발을 위한 경량급 프레임워크 등장 배경 - 기존.. 2023. 7. 18.