스프링컨테이너스프링이 아닌 스프링컨테이너라고 하는 이유가 있다.스프링이라는 프레임워크에 가장 기반이 되는 기술은 스프링컨테이너이다.사실 같은 말로 사용해도 된다.Ioc/DI 컨테이너라고도 부른다Dependency Injection (의존관계 주입)기존의 ObjectFactory는 사실 BeanFactory이다.Bean은 그냥 자바의 컴퍼넌트 오브젝트 모델에 붙인 이름이다.그냥 오브젝트라 불러도 된다. 그래서 BeanFactory라고 불러도 된다.현재의 ObjectFactory는 다음과 같은 구조로 서비스를 호출한다. BeanFactory를 사용하려면 아래의 그림과 같은 ObjectFactory가 또 필요로 하게 된다.public class Client { public static void main(..
원칙 : 객체지향 설계 원칙패턴 : 객체지향 디자인 패턴첫 원칙은 관심사 분리였다.개방 폐쇄 원칙 (Open-Closed Principle (OCP))- 무엇 하나가 열려있다면 무엇은 닫혀있다.-> 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.-> 무슨 뜻이야??-> 확장은 하는데 코드는 바뀌면 안된다. 관심자 분리 1~4까지 보았다면 이제는 PaymentService는 prepare라는 메소드를 사용할 때에 그 데이터를 Api에서 읽어오든 DB에서 읽어오든 코드 수정이 필요하지 않게 되었다. 높은 응집도와 낮은 결합도- 응집도가 높다는 것은 하나의 모듈이 하나의 책임 또는 괌심사에 집중되어있다는 뜻.- 변화가 일어날 때 해당 모듈에서 변하는 부분이 크다.- 책임과 관심사가 다..
현재는 Client에서 paymentService를 부를 때 어떤 것을 부를 지에 대해 책임을 가진 것이 된다. public class Client { public static void main(String[] args) throws IOException { //PaymentService paymentService = new PaymentService(new WebApiExRateProvider()); ObjectFactory factory = new ObjectFactory(); PaymentService paymentService = factory.paymentService(); Payment payment = paymentService.prep..
package com.hellopayment;import java.io.IOException;import java.math.BigDecimal;import java.time.LocalDateTime;public class PaymentService { private final ExRateProvider exRateProvider; public PaymentService() { this.exRateProvider = new WebApiExRateProvider(); } public Payment prepare(Long orderId, String currency, BigDecimal foreignCurrencyAmount) throws IOException { ..
package com.hellopayment;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.time.LocalDateTime;import java.util.stream.Collectors;public class PaymentService { public Paymen..
package com.hellopayment;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.time.LocalDateTime;import java.util.stream.Collectors;public class PaymentService { public Paymen..
오브젝트 (Object)- 오브젝트란 OOP, 객체, 클래스 등으로 부른다. 클래스의 인스턴스 = 오브젝트 클래스의 실체 = 오브젝트 인스턴스는 다양하게 사용하는 용어이다. 인스턴스란 추상적인 것에 대한 실체이다. 자바에서 오브젝트란 무엇인가요? 답을 내린다면 클래스의 인스턴스 또는 배열(Array)이다. 이것이 기술적으로는 완벽한 대답이라 한다. 클래스는 설계도이며 그것으로 만들어지는 것이 오브젝트이다. 라고 보면 된다.의존관계 (Dependency)A --> B (A가 B에 의존한다.) Client --> Supplier (Client가 Supplier 클래스의 의존한다)- 이는 Client의 기능이 제대로 작동하려면 Supplier가 필요하다.- Client가 Supplier를 사용, 호출, 생성..
환율 계산기를 만드려고 한다. 먼저 무료로 제공하고 있는 환율 데이터 API를 통해 환율을 가져오는 코드를 작성하려 한다.이 부분에서 기존에 애매모호했던 내용을 정리하려한다. 1. java.net.URLURL url = new URL("https://example.com");URLConnection connection = url.openConnection(); URL클래스는 원격지원에 대한 연결을 생성할 때 사용된다. 그리고 openConnection() 메서드는 주어진 URL에 대한 URLConnection 객체를 반환한다.- 연결 객체 생성: URL의 프로토콜에 맞는 URLConnection 객체를 생성한다. 예를 들어, http 프로토콜의 경우 HttpURLConnection 객체가 반환됩니다.UR..
- Total
- Today
- Yesterday
- 항해플러스
- 인터셉터
- 스프링부트
- SpringBoot
- Intercepter
- react실행
- hypertexttransferprotocol
- 향해플러스
- Java
- filter
- 백엔드 개발자 역량
- thymleaf
- rejectValue
- ArgumentResolver
- jpa api
- 로그인
- HTTP
- 스프링공부
- 백엔드 개발자 공부
- JPA
- 향해플러스백엔드
- 컨트
- reject
- React
- exception
- 항해99
- 리터럴
- 예외처리
- 향해99
- BindingResult
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |