일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- pg_hba.conf
- LSP
- 상속관계
- 포함관계
- 도커네트워크
- JVM
- RDD
- 이노베이션아카데미
- 운영체제
- abstract
- JIT
- generics
- javac
- la-piscine
- 라피신
- 제네릭스
- HeapArea
- Compiler
- StackArea
- classloader
- MethodArea
- Operating System
- 바이트코드
- 자바컴파일러
- java
- 42서울
- 42seoul
- SRP
- 참조변수
- jdk
- Today
- Total
목록CS/spring (17)
while(1) 작심삼일();

직전 포스트에서는 순수한 JAVA 코드만으로 DI(의존관계 주입)을 해보았고, 이번에는 스프링 컨테이너를 통해서 사용해본다. @Configuration public class AppConfig { @Bean public OrderService orderService() { return new OrderServiceImpl(new FixDiscountPolicy()); } } main에서의 차이점 기존) AppConfig appConfig = new AppConfig(); OrderService orderService = appConfig.orderService(); 변경) ApplicationContext applicationContext = new AnnotationConfigApplicationCon..

위와 같은 의존관계가 있을때 DiscountPolicy 인터페이스에 대한 구현체로 FixDiscountPolicy를 사용하다가 RateDiscountPolicy로 변경하려고 한다. 이때 아래의 코드와 같이 구현을 했다고 가정한다. public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 역할과 구현을 나누어서 다형성도 활용하였다. 그러나 OCP, DIP 같은 객체지향 설계 원칙은 지켜지지 못했다. Or..

기본 환경 JDK 11 이상의 환경 IDE : IntelliJ 프로젝트 생성하기 1) https://start.spring.io 접속하여 스프링 프로젝트 생성 Project: Gradle Project Language: Java Spring Boot: 2.4.2 Language: Java Group : hello Artifact : core Packaging: Jar Java: 11 Dependencies (사용할 라이브러리 세팅) : X 2) Gradle 설정 plugins { id 'org.springframework.boot' version '2.4.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group =..

객체지향 프로그래밍 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위(객체)의 모임으로 파악하는 것, 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다. 프로그램을 유연하고 변경이 용이(다형성)하게 만들기 때문에 대규모 소프트웨어 개발프로젝트에 많이 사용된다 다형성 : 하나의 객체를 다양한 타입으로 선언하고 사용할 수 있다. 다형성을 반영하여 역할과 구현을 분리했을 때 장점 단순해지고, 유연해지며 변경이 편리해진다. 확장이 가능한 설계가 가능하다. 클라이언트는 대상의 역할(인터페이스)만 알면 된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않..

스프링 스프링은 자바 언어 기반의 오픈소스 프레임워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 스프링이라는 단어는 문맥에 따라 다르게 사용된다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 스프링 프레임워크 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 테스트 : 스프링 기반 테스트 지원 언어 : 코틀린, 그루비 스..