본문 바로가기

반응형

전체 글

(53)
의존성 주입 DI(Dependency Injection) 이해 시켜줘 제발 DI 란? DI는 클래스 사이의 의존 관계를 Bean Configuration 정보를 통해서 컨테이너가 자동으로 연결해주는 것이다. 개발을 하면서 개발자가 제어를 담당할 필요가 없이 Bean의 설정 파일을 보고 의존관계가 필요하다는 정보를 추가해주기만 하면 된다. 그러면 오브젝트 레퍼런스를 외부(Container)로 부터 주입을 받아서, 실행 시에 동적으로 의존 관계가 생성된다. 결국 컨테이너가 흐름의 주체가 되어서 애플리케이션 코드에 의존 관계를 주입해주는 것이다. 1 2 3 4 5 6 7 public class Foo{ private Bar bar; public Foo() { bar = new SubBar(); } } cs 위와 같이 Foo 객체는 bar를 인스턴스화 할 수 있다. Bar 인터페이스를..
Spring Framework Ioc (Inversion of Control) 컨테이너 - ApplicationContext (Bean Factory) ApplicationContext 는 BeanFactory를 상속받고 있음 IoC 컨테이너가 하는 일 Bean 생성 Bean들 사이의 의존성을 엮음 Bean들을 제공해서 사용하게 해줌 다양한 방법으로 등록된 빈들은 서로간의 의존성 주입을 IoC 컨테이너가 해준다. Bean → IoC 컨테이너가 관리하는 객체 클래스
Item 42. 익명 클래스보다는 람다를 사용하라 jdk1.1 부터 익명클래스(Anonymous Class)를 사용했는데, jdk1.8 부터는 람다식을 적용하면서 코드를 간결하게 작성할 수 있게 되었습니다. 람다식은 수학자 알론조(Alonzo Church)가 발표한 람다 계산법에서 사용된 식으로 이를 제자 존 매카시(John Macarthy)가 프로그래밍 언어에 도입했습니다. 사실 이것이 중요한 것은 아니고, Java8 버전부터 람다식(Lambda Expressions)을 지원하게 됨으로서 기존 익명함수(Anonymous function)을 대체하는 방법을 익혀야 한다. 람다식은 익명함수(Anonymous function)을 생성하기 위한 식으로 매개변수를 가진 코드 블록이다. 그리고 런타임 시에는 익명 구현 객체(추상메소드가 한 개인 객체)를 생성한다..
삽입 정렬 (Insertion Sort) #Insertion_Sort " 리스트에 있는 값들을 왼 쪽부터 탐색하면서 정렬되어야 할 위치로 옮겨주자! " #Sudo_code 리스트에 있는 값들 중 맨 왼 쪽에 있는 index 값과 index+1을 한 바로 오른 쪽의 값을 비교해 준다. 만약 index의 값이 index+1의 값 보다 클 경우 해당 값을 서로 swap 해주고, 비교해 줄 index를 줄여준다. 2번 과정을 진행(index가 줄어드는 것)을 통해 index의 왼쪽에 정렬 되었던 값들과 비교를 또 진행해서 왼쪽의 정렬을 완성 해준다. 리스트 길이의 -1만큼 위 과정을 진행한다. 그 이유는 해당 과정이 진행 될 때 비교할 index를 기준으로 왼쪽에는 정렬된 리스트이기 때문에 이미 비교를 진행했기 때문이다.(설명 부족 ㅠ 느낌만 이해) ..
선택 정렬 (Selection Sort) #Selection_Sort " 리스트의 값들 중 가장 작은 값들을 선택해 순서대로 맨 앞으로 보낸다. " #Sudo_code 리스트의 길이 만큼 진행한다. 최소값 min 값을 처음에 무엇과 비교해도 가장 큰 값을 넣는다. 배열을 처음부터 탐색을 진행하면서, 해당 index에 들어 있는 값과 min 값을 비교해 계속해서 min을 최신화시켜준다. 한 번의 루프를 돌아 만들어진 index의 값은 최소 값 min이 들어간 값이기 때문에 리스트의 맨 앞의 값과 swap 해준다. 1 ~ 4번의 과정을 리스트의 길이 만큼 반복하면서 오름차순으로 정렬한다. #Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include int main(){ int..

반응형