본문 바로가기

728x90

분류 전체보기

(85)
이진 검색 이진 검색 이진 검색(binary search)은 요소가 오름차순 또순 내림차순으로 정렬된 배열에서 검색하는 알고리즘 중앙값을 가지고 비교 후 검색 범위를 반 씩 줄여나가는 방식이다. 그렇기에 배열이 정렬되어 있을 때 사용할 수 있음 검색에 필요한 비교 횟수의 평균값은 log n 이다. public class Test1 { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12}; int key = 1; // 찾을 값 int idx = BinarySearch.binSearch(arr, key); System.out.println(arr[idx]); } } class BinarySearch { static int bi..
검색(Search) 선 요약 선형 검색 : 무작위로 늘어놓은 데이터 모임에서 검색 수행 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 모임에서 빠른 검색 수행 해시법 : 추가, 삭제가 빈번한 데이터 모임에서 빠른 검색 수행 체인법 : 같은 해시 값의 데이터를 선형 리스트로 연결하는 방법 오픈 주소법 : 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법 선형 검색(Linear Search) 직선으로 늘어선 배열에서 원하는 키 값을 갖는 요소를 만날 때 까지 맨 앞부터 순서대로 요소 검색하는 방법, sequential search라고도 불린다. 조건 조건 1. 원하는 키 값을 만나 검색 중단 조건 2. 원하는 키 값을 만나지 못하고 전체 검색 후 종료 위 조건을 판단하는 횟수는 평균 n/2회 import java.util.S..
JAVA - Generics 제네릭스 Generics는 파라미터화된 타입을 의미한다. 즉, 메소드에 타입(Integer, String, 유저 정의 타입)을 파라미터로 하여 메서드, 클래스, 인터페이스에 전달할 수 있게 하는 기능이다. 이를 이용하여 다양한 데이터 타입을 가지고 동작하는 클래스를 만들 수 있다. 클래스, 인터페이스 또는 메서드와 같은 엔터티가 파라미터화된 타입에 기반에 수행된다면 이를 제네릭스 엔터티라고 한다. 왜 제네릭스를 쓰는가? Object 클래스는 모든 다른 클래스들의 조상 클래스이다. Object 타입 참조 변수는 어떤 객체든 참조할 수 있다. 이런 특징은 타입 안정성을 해친다. 제네릭스를 사용하면 타입 안정성 효과가 있다. JAVA의 Generics는 C++의 template과 비슷하다. HashSet,Ar..
Quartz API에 대해서 1. Quartz API - Job and JobDetail : 이 API는 execute라는 하나의 메서드만 가진 Job 인터페이스를 제공한다. 실제 비즈니스 로직을 담아 이 인터페이스를 구현해야 한다. Trigger가 작동하면 스케줄러는 이 execute 메서드를 불러와 이를 jobExecutionContext에 전달한다. - JobExcecutionContext는 런타임 환경에서의 job 인스턴스를 제공한다. 또한 스케줄러 핸들링, 트리거 핸들링 그리고 Job의 정보가 담겨있는 JobDetail 객체를 포함한다. @Component public class SampleJob implements Job { @Autowired private SampleJobService jobService; public..
2. 데이터와 2진법(부동소수점에 대하여) 정보 단위 bit : 0과 1을 표현할 수 있는 가장 작은 정보 단위 n비트는 2^n 가지 정보를 표현할 수 있다. 1 byte = 8bit 1kB = 1,000byte 1MB = 1,000kB 1GB = 1,000MB 1TB = 1,000GB 1,024 단위로 다음 단위를 나타내는 것은 잘못된 관습. 현재는 이를 KiB, MiB, GiB 등으로 표현한다. word : CPU가 한 번에 처리할 수 있는 데이터 크기 x86 CPU는 32비트 워드, x64 CPU는 64비트 워드 CPU이다. x86계열의 CPU가 32비트까지 나왔고 여기서 64비트를 지원하도록 확장된게 x86-64이다. 그래서 x86-64를 줄여 간단히 x64로 표현하게 되었다. x86은 32비트를, x64는 64비트를 가리키게 되었다. 2..
1. 운영체제를 알아야 하는 이유 운영체제란 운영체제는 실행할 프로그램에 필요한 자원(CPU, 메모리, 보조기억장치, 입출력장치 등)을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이다. 운영체제 또한 프로그램이기 때문에 메모리에 적재되어야 한다. 다만 특별한 프로그램이기 때문에 컴퓨터가 부팅될 때 메모리 내 커널 영역(kernel space)이라는 공간에 적재되어 실행된다. 이 영역을 제외한 나머지 영역에 응용 프로그램이 적재되며 이를 사용자 영역(user space)라고 한다. → 즉, 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 이들이 올바르게 실행되도록 돕는다. 운영체제는 메모리 주소가 겹치지 않도록 적당한 공간에 응용프로그램들을 적재한다. 더 이상 실행되지 않는 프로그램을 메모리에서..
1. 컴퓨터 구조를 공부하는 이유 성능, 용량, 비용 개발한 프로그램을 위한 최적의 환경을 판단할 수 있다. 컴퓨터 구조에서 배우는 내용은 최적의 환경을 판단할 근거가 되는 성능, 용량, 비용을 고려할 수 있게 하는 지식이 될 수 있다. 전산업무에서 발생하는 문제에 대한 해결 능력이 향상된다. 컴퓨터 구조의 큰 그림 컴퓨터가 이해하는 정보 Data : 컴퓨터가 이해하는 정적인 정보들 Instruction : 데이터를 움직이고 컴퓨터를 작동시키는 정보 컴퓨터의 4가지 핵심 부품 CPU; Central Processing Unit Main Memory Secondary Storage I/O Device 메모리 : 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 저장된 명령어와 데이터의 위치를 address로 나타내어 빠르게 접근할 ..
SAP ERP 개론 - 3. MM 모듈 개요 1. 개요 - 자재관리(Materials Management, MM) 모듈은 기업의 구매, 자재관리 업무를 지원한다. - 자재구매계획(inventory planning), 구매관리, 자재관리, 송장검증 등으로 구성 - 대금지급은 송장(대금청구서) 이검증된 금액에 대해 대금을 지불하는 업무 -> 회계부서에서 수행(FI 모듈) 2. 프로세스 재고의 구분 원재료 : 제품 생산에 사용하기 위해 구매된 자재 재공품 : 제조과정 중에 있는 재고 제품 : 판매 가능한 완성된 상태의 완성품 상품 : 판매를 목적으로 매입한 제품 2-1. 자재구매계획(Inventory Planning) - 재고의 최적 수량 및 적절한 구매 시기를 결정하는 것 - 자재소요계획(MRP), 소비기준계획(CBP) 등에서 산출한 자재요구량에 근거..

728x90