분류 전체보기380 스프링 4 AOP 스프링 AOP란 업무의 본질적인 로직 부분만 해당 클래스안에 적고, 나머지 본질적이지 않은 처리는 외부로 꺼내어 정리하는 기술이다. 예를 들면, 로그처리나 예외 처리등 공통으로 할 수 있는 처리를 Aspect라는 하나의 단위로 모아서 어떤 오브젝트가 원래 해야 할 일만 할 수 있게 하는 기술이다. aop 용어 애스펙트 횡단 관심사의 동작과 그 횡단 관심사를 적용하는 소스 코드상의 포인트를 모은것.(동작과 동작을 적용하는 조건) 조인포인트 어드바이스가 실행하는 동작을 끼워넣을 수 있을때를 말한다. 어드바이스 조인 포인트에 실행되는 코드.(출력로그, 트랜잭션 로직 등) 포인트컷 포인트컷은 조인포인트와 어드바이스의 중간에 있으면서 처리가 조인 포인트에 이르렀을 때 어드바이스를 호출할지 선별한다.(조건) 어드바.. 2020. 11. 8. 스프링 4 Bean Config DI 컨테이너의 핵심 DI 컨테이너의 핵심은 BeanFactory 이다. BeanFactory는 실행시 건네지는 Bean 정의 파일(applicationContext.xml)을 바탕으로 인스턴스를 생성하고 인스턴스의 인젝션을 처리한다. DI컨테이너로 부터 인스턴스를 얻는다는 말은 BeanFactory로부터 인스턴스를 얻는다는 것이다. Bean 정의 파일은 xml 파일에 기술하는 것이 일반적이다. 이전포스팅에서 @Autowired , @Component의 두 어노테이션으로 구현한것을 파일로 바꿔쓴다면, ProductServiceImpl 클래스와 ProductDaoImpl 클래스에서 어노테이션이 사라지고 ProductServiceImpl클래스에만 인젝션을 위한 setter 메소드가 필요해진다. 아래 예제에서.. 2020. 11. 7. 스프링 4 DI 스프링 DI는 인터페이스를 이용해서 컴포넌트화를 실현하는 것이다. 쉽게말하면 의존관계를 주입한다고도 한다. 이 말은 어떤 오브젝트의 프로퍼티(인스턴스 변수)에 그 오브젝트가 이용할 오브젝트를 셋팅(주입)한다는 의미다. 다시말하면 어떤 오브젝트가 의존(이용)할 오브젝트를 주입, 인젝션 한다는 뜻이다. 빈의 생명주기 BeanFactory 상속관계 예제 프로젝트 구조 어노테이션을 이용한 스프링 DI 예제 ProductSampleRun.java @Autowire를 붙이면 DI 컨테이너가 그 인스턴스 변수의 형에 대입할 수 있는 클래스를, @Componet 가 붙은 클래스중에서 찾아서 @Autowire가 붙은 변수에 인젝션 해준다.(Bean정의에서 스탠할 범위지정필요) @Componet가 붙은 클래스가 여러개 있.. 2020. 11. 7. 코어 블루투스 - IOS Core Bluetooth #.CENTRAL (아이폰) 1.뷰컨트롤러.h 2.뷰컨트롤러.m #.PERIPHERAL (블루투스 기기) 1.기기정보 2.뷰컨트롤러.h 3.뷰컨트롤러.m 파일 2020. 10. 25. 4.연결리스트 - 연결리스트 앞장에서 배열을 이용한 리스트 구현에 대해서 배웠다. 요약하자면 아래와 같다. 1.ADT (Abstract Data Type) 추상 자료형에 대한이해 2.리스트 자료구조의 특성과 활용 3.리스트 종류 -순차 리스트 : 배열을 기반으로 구현된 리스트 -연결 리스트 : 메모리의 동적 할당을 기반으로 구현된 리스트 4.배열 기반 리스트의 단점 -배열의 길이가 초기에 결정되어야 한다. 변경이 불가능하다. -삭제의 과정에서 데이터의 이동(복사)가 매우 빈번히 일어난다. 5.배열 기반 리스트의 장점 -데이터의 참조가 쉽다. 인덱스 값을 기준으로 어디든 한 번에 참조가 가능하다. 배열과 관련된 예제를 보자. 위의 예제를 보면 배열의 단점을 알 수 있다. "배열은 메모리의 특성이 정적이어서(길이의 변경이 불가능해서) .. 2020. 9. 2. 3.연결리스트 - 배열 추상 자료형(ADT)의 이해 추상자료형이란? 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것 지갑을 의미하는 구조체 Wallet의 정의 int TakeoutMoney(Wallet* pw, int coinNum, int billNum); -첫번째 인자로 전달된 주소의 지갑에서 돈을 꺼낸다. -두번째 인자로 꺼낼 동전의 수, 세번째 인자로 꺼낼 지폐의 수를 전달한다. -꺼내고자 하는 돈의 총액이 반환된다. 그리고 그만큼 돈은 차감된다. void PutMoney(Wallet* pw, int CoinNum, int billNum); -첫번째 인자로 전달된 주소의 지갑에 돈을 넣는다. -두번째 인자로 넣을 동전의 수, 세번째 인자로 넣을 지폐의 수를 전달한다. -넣은 만큼 동전과 .. 2020. 9. 2. 2.재귀 재귀함수의 기본적인 이해 javascript 로 구현한 재귀함수 예제 재귀함수의 간단한 예제 팩토리얼의 이해 재귀함수를 이용한 팩토리얼 예제 피보나치 수열 함수의 이해 피보나치 수열 함수의 흐름 재귀함수를 이용한 피보나치 수열 이진 탐색 알고리즘의 재귀구현의 이해 이진 탐색 알고리즘의 재귀구현 참고: 윤성우의 열혈 자료구조 2020. 8. 31. 1.자료구조와 알고리즘의 이해 자료구조란 무엇인가? "프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다." 데이터를 표현 : 자료구조 데이터를 처리 :알고리즘 자료구조의 분류 알고리즘을평가하는 두 가지요소 - 시간 복잡도(time complexity) -> 얼마나 빠른가? - 공간 복잡도(space complexity) -> 얼마나 메모리를 적게 쓰는가? *시간 복잡도를 더 중요시 한다. 시간복잡도의평가방법 - 중심이되는 특정연산의 횟수를 세어서평가를 한다. - 데이터의 수에 대한 연산횟수의 함수 T(n)을 구한다. 알고리즘의 수행속도 비교기준 데이터의 수가 적은경우의 수행속도는 큰 의미가없다. 데이터의 수에 따른 수행 속도의 변화정도를 기준으로한다. 최악의 경우와 최상의 경우 순차 탐색 예제 이진탐색 위키백과 .. 2020. 8. 31. 20.C언어 HTTP 서버 구축하기 예제 소스 - http.c 예제소스 - index.html 결과 예제파일 2020. 8. 28. 이전 1 ··· 32 33 34 35 36 37 38 ··· 43 다음