두두의 IT (172) 썸네일형 리스트형 vue 끄적끄적 //Xxx.vue 두 번째 this는 바인딩 해주는 기능. 안 써주면 TypeError: Cannot read property '메서드' of undefined 오류가 남 싱글톤 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 우리가 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 객체를 새로 생성한다 고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸된다! -> 메모리 낭비가 심하다 해결방안은 해당 객체가 딱 1개만 생성되고 공유하도록 설계하면 된다 -> 싱글톤 패턴 싱글톤 패턴 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다 pr.. BeanDefinition AnnotationConfigApplicationContext는 AnnotatedBeanDefinitionReader를 사용해서 AppConfig.class를 읽고 BeanDifinition을 생성한다 GenericXmlApplicationContext는 XmlBeanDefinitionReader를 사용해서 appConfig.xml 설정 정보를 읽고 BeanDefinition을 생성한다 새로운 형식의 설정 정보가 추가되면, XxxBeanDefinitionReader를 만들어서 BeanDefinition을 생성하면 된다. BeanDefinition 정보 BeanClassName : 생성할 빈의 클래스 명(자바 설정처럼 팩토리 역할의 빈을 사용하면 없음) factoryBeanName : 팩토리 역할의 빈을 .. BeanFactory와 ApplicationContext BeanFactory 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할을 담당 getBean()을 제공 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능 ApplicationContext BeanFactory 기능을 모두 상속받아서 제공함 빈을 관리하고 검색하는 기능을 BeanFactory가 제공해주는데, 그러면 둘의 차이가 뭘까? 빈을 관리하고 조회하는 기능은 물론이고, 수 많은 부가기능 제공 메시지 소스를 활용한 국제화 기능 : 한국-한국어, 영어권-영어 환경변수 : 로컬, 개발, 운영 등을 구분해서 처리 애플리케이션 이벤트 : 이벤트를 발행하고 구독하는 모델을 편리하게 지원 편리한 리소스 조회 : 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조.. 스프링 컨테이너 'ApplicationContext'를 스프링 컨테이너라 한다 기존에는 개발자가 'AppConfig'를 사용하여 직접 객체를 생성하고 DI를 했지만, 이제부터는 스프링 컨테이너를 통해서 사용한다 스프링 컨테이너는 @Configuration이 붙은 AppConfig를 설정(구성) 정보롤 사용한다. 여기서 @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다(memberService, orderService) 이전에는 개발자가 필요한 객체를 AppConfig를 사용해서 직접 조회했지만, 이제부터는 스프링 컨테이너를 통해서 필요한 스프링 빈(객체.. IoC/DI 컨테이너 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스로운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 'OrderServiceImpl'은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 'OrderServiceImpl'도 AppConfig가 생성한다. 그리고 AppConfi.. 객체지향설계와 스프링 스프링은 다음 기술로 다형성+OCP, DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 실무 고민 인터페이스를 도입하면 추상화라는 비용이 발생한다 기능을 확장할 가능성이 없다면, 구체 클래스를 직접 사용하고, 향후 꼭 필요할 때 리팩터링해서 인터페이스를 도입하는 것도 방법이다 인프런 스프링 핵심 원리 - 기본편 객체 지향 설계와 스프링 객체 지향 설계와 스프링 개발 프로세스 (비즈니스 요구사항, 설계) 1. 기획자의 요구사항 분석 2. 기획자와 같이 볼 수 있는 도메인 관계 작성 3. 클래스 다이어그램 작성 - 역할 4. 인터페이스 다이어그램 작성 - 역할 & 구현 4. 실제 객체 다이어그램 작성 - 주문과 할인 도메인 설계 pdf 참고하기........ 5. 단위 테스트 >> 스프링 서버 띄우고 하는 거보다 속도가 빠름 이전 1 2 3 4 5 6 ··· 22 다음