목록Java/Spring (6)
CVillain
스프링과 객체 지향 스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 스프링이 없던 시절에는 좋은 객체 지향 개발을 하려고 OCP, DIP 원칙을 지키면 업무량이 너무 많아짐 → 그래서 아예 프레임워크로 만듬 순수하게 자바로 OCP, DIP 원칙을 지키면서 개발해보면, 결국 스프링 프레임워크(DI 컨테이너)를 만들게 됨 정리 모든 설계에 역할과 구현을 분리하자! → 자동차, 공연의 예시 인터페이스와 구현 클래스를 분리하자! 애플리케이션 설계도 공연을 설계 하듯이 배역만 만들어두고, 배우는 언제든지 유연하게 변경할 수 있도록 만드는 것..
SOLID 클린 코드로 유명한 로버트 마팅이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것 SRP : 단일 책임 원칙 (Single Responsibility Principle) OCP : 개방-폐쇄 원칙 (Open/Closed Principle) LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) SRP, 단일 책임 원칙 Single Responsibility Principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. → ..
객체 지향의 특징 ■ 추상화 공통의 속성이나 기능을 묶어 이름을 붙이는 것 객체 지향적 관점에서 클래스를 정의하는 것을 추상화라고 함 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 주어 개략화 함 ■ 캡슐화 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것 정보은닉 외부에서 직접 접근을 하면 안되고 오로지 함수를 통해서만 접근해야 함 각 객체의 수정이 다른 객체에게 주는 영향을 최소화 함(응집도 ↑, 결합도 ↓) ■ 상속 상위 클래스의 속성 및 메서드를 하위 클래스가 물려받는 것 하위 클래스는 상속받은 속성 및 메서드를 재정의하지 않고도 즉시 사용 가능 하위 클래스는 상속받은 속성 및 메서드 외 재정의 하거나 새로운 속성과 메서드를 추가할 수 있음 ■ 다형성 상위 클래스에서 ..
스프링 생태계 필수 스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트 등 웹 기술 : 스프링 MVC, 스프링 WebFlux 등 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 등 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 등 테스트 : 스프링 기반 테스트 지원 언어 : 코틀린, 그루비 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 Tomcat과 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 Embedded Tomcat 등 손쉬운 빌드 구성을 위한 starter 종속성 제공 spring-boot-starter-web 등 스프링과 3rd party(외부) 라이브러리 자동 구성 메트릭, 상태 확인, 외부 구성 같..
스프링 프레임워크의 역사 및 J2EE와의 관계 스프링 프레임워크의 역사 로드 존슨(Rod Johnson)이 2002년에 출판한 저서 Expert One-on-One J2EE Design and Development에서 선보인 소스 코드를 시작으로 점점 발전하게 되었다. EJB의 문제점을 지적하며 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000 라인 이상의 기반 기술을 예제 코드로 선보였다. 여기에 지금의 스프링 핵심 개념과 기반 코드가 들어가 있다. 책 출간 직후 유겐 휠러(Juergen Hoeller), 얀 카로프(Yann Caroff)가 로드 존슨에게 오픈소스 프로젝트를 제안했고, 스프링의 핵심 코드의 상당수는 지금도 유겐 휠러가 개발중이다. 여담으로..
EJB(Enterprise Java Beans) 개념 EJB(Enterprise Java Beans), 기업 환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 애플리케이션을 EJB라고 한다. EJB(Enterprise Java Beans)는 독립한 부품이 아닌, 미국 Sun Microsystem 사가 제창한 규약이다. EJB는 서버 애플리케이션의 개발을 용이하게 해 다중 다양한 Platform과 제품 간의 이동성을 실현하기 위하여 비즈니스 로직과 시스템 서비스를 이용하는 로직을 분산해 그 사이의 규약을 정하고 있다. 비즈니스 로직을 탑재한 부품을 Enterprise Bean이라고 한다. Database 처리, Transacion 처리 등의 시스템 서비스를..