프로그래밍 공부
-
[Spring] AOP란?프로그래밍 공부/Spring 2021. 5. 5. 12:12
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. AOP란? : Aspect Oriented Programming Object Oriented Programming: 사용자가 원하는 업무 기반의 로직을 프로그래밍 한 것 사용자가 요구한 업무를 개발하기 위해 개발자, 운영자, 관리자가 넣은 코드. 사용자는 모르는 부가적인 코드 즉, 관점에 따라 프로그래밍을 달리하게 됨 (객체 지향 프로그래밍보다 더 큰 개념) Concern Primary Concern: 관점에 해당되는 것 중에 주 관심사(주 업무 로직)에 해당하는 것 Cross-cutting Concern: 개발자, 운영자가 주 업무 로직을 개발하기 위해 넣은 부가적인 로직 AOP 구현 방식 : 주 업무 로직이 아닌 부가 로직을 Core Concern에 직..
-
[Spring] Java Configuration프로그래밍 공부/Spring 2021. 5. 5. 11:37
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. xml으로 작성된 configuration 파일을 java 파일로 바꾸기 1. 설정을 위한 자바 파일: @Configuration 2. componentScan: @ComponentScan("spring.di.ui") //setting.xml + 여러 패키지를 컴포넌트 스캔하고 싶은 경우 @ComponentScan({"spring.di.ui", "spring.di.entity"}) 3. bean 객체 생성 setting.xml //setting.xml config.java @Bean public Exam exam(){ return new NewlecExam(); } 일반적인 메서드가 아닌 컨테이너에 객체를 담아주는 역할 - exam이라는 id로 컨테이너에 ..
-
[Spring] @Component의 종류와 시멘틱 @Component프로그래밍 공부/Spring 2021. 4. 30. 22:48
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. 기본 값 설정을 위한 @Value 어노테이션 @Component 어노테이션으로 생성되는 객체의 값을 설정해주기 위한 어노테이션이다. 다음과 같이 사용한다. NewlecExam.java @Component("exam2") public class NewlecExam implements Exam { @Value("20") private int kor; @Value("30") private int eng; private int math; private int com; public NewlecExam() { } } MVC 애플리케이션을 제작할 때 각 객체(Component)의 역할을 알기 쉽게 하기 위해(의미를 분명하게 하기 위해) @Controller, @Serv..
-
[Spring] Annotation을 이용한 객체생성프로그래밍 공부/Spring 2021. 4. 30. 22:18
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. @Component : 객체화 하고 싶은 클래스 위에 넣어준다. xml의 context:annotation-config 설정 태그는, 객체를 생성할 때 객체 생성 코드 안에 어노테이션이 있는지 보라는 것이다. 어노테이션을 이용하여 객체를 생성하게 되면, xml에서 객체 생성하는 코드가 제거되어 위의 설정으로는 어노테이션을 확인 할 수가 없다. 따라서 context:component-scan 설정 태그를 추가하여, 어노테이션으로 생성되는 객체가 있는지를 확인하도록 해야 한다. => spring.di.ui 패키지 안의 클래스 중 component 어노테이션이 붙은 클래스를 찾아 객체화 한다! 객체화 할 때, 객체 생성 코드 안의 어노테이션 설정을 찾는 과정이 ..
-
[Spring] @Autowired의 위치와 Required 옵션프로그래밍 공부/Spring 2021. 4. 30. 21:31
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. @Autowired와 @Qualifier의 위치 1. setter 함수 위 2. field 위 -> 기본 생성자에서 객체 binding 3. 오버로드 생성자 위 3번의 경우 여러개의 argument를 가질 수 있기 때문에 각 argument 앞에 @Qualifier을 붙여 주어야 한다. @Autowired public InlineExamConsole( @Qualifier("exam1")Exam exam1, @Qualifier("exam2")Exam exam2) { System.out.println("overloaded constructor"); this.exam = exam1; } @Autowired를 설정한 경우 DI할 객체가 없으면 에러가 발생한다. 하..
-
[Spring] @Autowired와 @Qualifier프로그래밍 공부/Spring 2021. 4. 30. 21:09
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. @Autowired: XML에서 DI 하는 것을 대신하는 어노테이션 기본적으로 자동으로 해당 객체를 찾아 DI를 해준다. 어떤 기준? 1. 해당 인터페이스나 클래스로 구현된 객체를 찾는다. 2. 찾아진 객체가 여러개일 경우 사용된 이름과 동일한 객체를 찾는다. @Autowired @Override public void setExam(Exam exam) { this.exam = exam; } 1 => Exam으로 구현된 객체를 찾는다. 2 => exam 이름을 가진 객체를 찾는다. DI 할 객체의 이름을 특정해주는 어노테이션이 존재한다. 이때 사용하는 어노테이션이 @Qualifier이다. @Qualifier("exam1") 과 같이 사용한다. InlineEx..
-
[Spring] Annotation 이용의 장점과 @Autowired를 이용한 DI프로그래밍 공부/Spring 2021. 4. 30. 20:40
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. 자바 애플리케이션의 초기화 설정하는 두가지 방법 1. XML 파일에 설정 정보를 두기 2. Annotation을 이용하여 코드 파일에 설정을 심기 Annotation - Java 5부터 추가되었다. - 클래스 또는 메서드, 변수 등에 붙여 사용된다. - 소스코드에 메타코드를 준다. (특별한 의미를 부여하거나 기능을 주입하거나 해석 시점등을 정해줌) Annotation의 장점 : 설정을 코드 안에 심어 두는 방식 - 객체를 바꾸면 설정 파일이나 코드 수정 없이 결합을 다르게 할 수 있다. @Autowired를 이용한 DI InlineExamConsole 객체를 만들 때 Exam 객체와 DI 하는 과정을 어노테이션을 이용하여 진행해보자. 기존에 작성되어 있던 ..
-
[Spring] 콜렉션 생성과 DI프로그래밍 공부/Spring 2021. 4. 30. 10:39
뉴렉처 강사님의 동영상 강의를 정리한 글입니다. ArrayList를 xml을 통해 생성하고 DI 해봅니다. 1. xml을 통해 ArrayList만 생성하고 요소는 코드에서 넣기 setting.xml Program.java List exams = (List) context.getBean("exams"); exams.add(new NewlecExam(1,1,1,1)); for(Exam e: exams) System.out.println(e); 2. ArrayList 생성자를 이용하여 xml 파일에서 요소까지 넣기 list Collection을 추가한 생성자를 통해 ArrayList 생성 setting.xml 1) constructor-arg 태그를 이용 2) list 태그를 이용하여 Collection형으로..