Computer Science (41) 썸네일형 리스트형 검색(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로 나타내어 빠르게 접근할 .. MyBatis의 fluchCache옵션에 대하여 Instance의 equality MyBatis에서 같은 parameter를 가지고 같은 SQL을 호출하게 되면 MyBatis는 이전과 같은 결과를 출력해야 하므로 실행 시간 단축과 자원 절약을 위해 객체를 새로 생성하지 않고 cache에 저장된 객체를 가져와 재활용한다. MyBatis는 Statement를 생성하여 sql문과 함께 parameter를 가지고 있다가 이를 기반으로 JDBC로 접근한다. 이 때 PreparedStatement를 생성하고 cache에 저장한다. flushCache 옵션을 사용하여 캐시를 비우고 sql문을 실행하도록 할 수 있다. 즉, 같은 쿼리를 중복 실행하도록 할 수 있다. SQLD 정리 2 sqld-2 SQL 기본 관계형 데이터베이스 계층형 데이터베이스 네트워크형 데이터베이스 관계형 데이터베이스 집합연산 합집함 차집함 교집합 곱집합 관계연산 선택연산 투영연산 결합연산 나누기연산 테이블 구조 릴레이션 → 테이블 기본키 : unique, 최소성, not null 행 = 튜플 컬럼 = 필드 = 속성 외래키 : 다른 테이블의 기본키 참조 SQL 종류 DDL DML DCL TCL 트랜잭션 : 트랜잭션은 데이터베이스의 작업을 처리하는 단위 트랜잭션의 특성 원자성(Atomicity) : 트랜잭션은 연산의 전부가 실행되거나 전혀 실행되지 않아야 한다(all or nothing) 일관성(Consistency) : 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다. 고립성(Isolation) .. 이전 1 2 3 4 5 6 다음