분류 전체보기
-
스프링 빈 설정 메타 정보 - BeanDefinitionFrameWork/Spring&Spring-boot 2022. 1. 10. 13:05
스프링은 어떻게 이런 다양한 설정 형식을 지원하는 것일까? 그 중심에는 'BeanDefinition'이라는 추상화가 았다. 쉽게 이야기 해서 *역할과 구현을 개념적으로 나눈 것*이다. - XML을 읽어서 BeanDefinition을 만들면 된다. - 자바 코드를 읽어서 BeanDefinition을 만들면 된다. - 스프링 컨테이너는 자바코드인지,XML인지 몰라도 된다. 오직BeanDefinition만 알면 된다. 'BeanDefinition'을 빈 설정 메타 정보라 한다. - '@Bean', ''당 가가 하나씩 메타 정보가 생성된다. 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다. *코드 레벨로 조금 더 깊이 있게 들어가보자* 'AnnotationConfigApplicationContex..
-
다양한 설정 형식 지원 - 자바 코드, XMLFrameWork/Spring&Spring-boot 2022. 1. 9. 19:50
- 스프링 컨테이너는 다양한 형식의 설정 정보를 받아드릴 수 있게 유연하게 설계되어 있다. 예) 자바코드, XML, Groovy 등등 (임의의 뭔가를 만들 수 도 있다.) 애노테이션 기반 자바 코드 설정 사용 지금까지 했던 것이다. 'new AnnotationConfigApplicationContext(AppConfig.class)' 'AnnotationConfigApplicationContext'클래스를 사용하면서 자바 코드로된 설정 정보를 남기면 된다. XML 설정 사용 최근에는 스프링부트를 많이 사용하면서XML 기반의 설정은 잘 사용하지 않는다. 아직 많으 레거시 프로젝트 들이 XML로 되어 있고 또 XML을 사용하면서 컴파일 없이 빈 설정 정보를 변경할 수 있는 장점도 있으므로 한번쯤 배워두는 것..
-
BeanFactory와 ApplicationContextFrameWork/Spring&Spring-boot 2022. 1. 9. 17:14
- beanFactory와 ApplicationContext에 대해서 알아 보자 *BeanFactory* 스프링 컨테이너의 최상위 인터페이스다. 스프링 빈을 관리하고 조회하는 역할을 담당한다. 'getBean( )'을 제공한다. 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다. *ApplicationContect* BeanFactory 기능을 모두 상속받아서 제공한다. 빈을 관리하고 검색하는 기능을 BeanFactory가 제공해주는데, 그러면 둘의 차이가 뭘까? 애플리케이션을 개발할 때는 빈을 관리하고 조회하느 기능은 물론이고, 수 많은 부가기능이 필요하다. *ApplicationContext가 제공하는 부가 기능* 메시지소스를 활용한 국제화 기능 예를들어서 한국에서 들..
-
커널과 쉘Web 개발/Web 기본 지식 2022. 1. 7. 20:00
사용자가 입력한 명령어는 일려의 과정을 거쳐 하드웨어를 제어하게 된다. 사용자가 명령어를 작성하고 조작하기 까지 이 사이에는 몇 가지의 과정을 거쳐서 수행을 하게 되는데, 명령어를 입력하게 되면 컴퓨터 내부에서는 쉘(Shell)이 이를 받아들이고, 명령어를 해석하여 커널(Kernel) 을 통해 하드웨어를 조작한다. 즉 제일 하단에는 하드웨어가 있고, 그 위에는 커널, 커널위에는 쉘, 그리고 쉘 위에는 사용자가 존재하여 사용자인 유저의 입력을 받게 된다. 커널 커널은 운영체제의 핵심 으로, 쉽게 말해 소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램 이다. 운영체제에서 가장 중요한 구성요소로서 입출력을 관리하고 소프트웨어로부터의 요청을 컴퓨터에 있는 하드웨어(CPU,메모리,저장장치등)가 처리 할 수..
-
오픈소스 라이선스 종류Web 개발/Web 기본 지식 2022. 1. 7. 13:30
OSI Open Source Definition (http://opensource.org/) 유명한 오픈 소스 라이선스들 Apache Liense2.0 GNU General public License(GPL) GNU Library or "Lesser" General Public License (LGPL) MIT license Eclipse Public License GNU General public License(GPL) 공개운영체계인 GNU프로젝트로부터 제공되는 소프트웨어에 적용되는 라이센스이다. 사용자들이 소프트웨어를 자유롭게 공유하고 내용을 수정하도록 보증하는 것을 말한다. 따라서, 사람들은 GPL을 이용하여 소프트웨어의 배포판을 만드러 배포할 수 있고, 원한다면 그 배포판을 상업적으로 이용할 수도..
-
리눅스2 -리눅스의 모태가 된 유닉스CS지식/운영체제 2022. 1. 7. 13:07
오픈소스 유닉스의 탄생 유닉스가 탄생한이후 얼마 되지 않아서 유료화 된다. 그리고 그 유료화에 대한 반발을 사게 되는데. 무료버전에 유닉스를 만들고자하는 움직임이 일어난다. UNIX의 상업화 1984년 7개의 회사 (Verizon,Qwest,SBC Communication,Lucent..)로 분리된 AT&T 컴퓨터 시스템 판매 금지를 당한 AT&T USL(UNIX System Laboratories) -> SCO(Santa Cruz Operation) 온전한 컴퓨터 제품을 만들어 팔 수는 없었짐나 소스코드는 팔 수 있었음. ↓↓↓ 운영체제 인터페이스를 표준화하기 시작함. Portable Operation System Interface(POSIX) ↓↓↓ SVID(AT&T System V Interrace..
-
리눅스1 - 본격적인 학습에 앞서CS지식/운영체제 2022. 1. 6. 21:17
3대 리눅스 계열 Debian : 미래지향적으로 봤을때 가치가 있는 리눅스 계열(Ubuntu) Slackware Red Hat : 엔터프라이즈 쪽에 상용화되어 서비스를 위한 운영체제로 팔릴 정도로 굉장히 히트 -일반적으로 리눅스는 서비스 환경에서 사용하기 위해서 사용한다. -서비스관리 : 원격에서 터미널을 이용해서 서비스를 실행하고 관리 리눅스 학습목표 Tomcat/MySQL JAVA JDK 설치 Telnet/SSH/FTP 설치파일 관리 Bash Shell 프로세스 관리 사용자 관리 파일관리 파일 편집 Linux서버설치 UNIX(Uniplexed Information Computing Service)의 탄생 운영체제(OS): 컴퓨터위에 존재. 운영체제는 커다란 박스가 존재하는 것과 마찬가지 이다. 그안에..
-
스프링 빈 조회-상속관계FrameWork/Spring&Spring-boot 2022. 1. 2. 15:58
부모 타입으로 조회하면, 자식 타입도 함께 조회한다. 그래서 모든 자바 객체의 최고 부모인'Object'타입으로 조회하면, 모든 스프링 빈을 조회한다. @Test @DisplayName("부모 타입으로 조회시,자식이 둘 이상 있으면,중복 오류가 발생한다.") void findBeanByParentTypeDuplicate(){ assertThrows(NoUniqueBeanDefinitionException.class, () -> ac.getBean(DiscountPolicy.class)); } @Test @DisplayName("부모 타입으로 조회시,자식이 둘 이상 있으면,이상 있으면, 빈 이름을 지정하면된다.") void findBeanByParentTypeDuplicateBeanName(){ Disco..