한 화면에 그리드가 몰려있는 경우, 모든 그리드의 BODY 영역의 row가 선택된 상태로 있기 때문에 보기 안좋을 때가 있다. Grid.selectRow() 메서드를 이용해 N개 의 그리드가 있을 때도 하나의 그리드의 row만 선택할 수 있도록 구현해보았다. * selectRow()메서드는 그리드의 selecttype 속성값이 "row" 또는 "multirow" 인 경우만 동작한다. 초기 포커스 해제하기 조회직후 콜백단에서 그리드 row를 선택하지 않도록 해준다. selectRow에 rowIndex 인자로 전달되는 -1 인덱스는 존재하지 않아 row가 선택되지 않지만 기존에 선택되어있는 row를 선택해제 시켜준다. this.init_GridFocus = function(objGrid){ if(typeof..
인덱스 테이블에 저장되어있는 데이터를 스캔할 때 table full scan을 수행하면 O(n)만큼의 시간복잡도를 가진다. 저장된 데이터가 많아질 수록 검색속도가 느려지게 되는데, 이 때 인덱스를 이용하면 검색속도를 향상시킬 수 있다. 인덱스 생성 인덱스는 자동으로 생성되는 인덱스와 사용자가 수동으로 생성하는 인덱스가 있다. 대부분의 RDBMS에서는 테이블 정의에서 PRIMARY KEY 또는 UNIQUE 제약 조건을 정의하면 인덱스가 자동으로 생성되는데 이를 고유 인덱스라고 하며, 사용자가 직접 생성한 인덱스를 비고유 인덱스라고한다. 생성쿼리 CREATE [UNIQUE][BITMAP]INDEX 인덱스이름 ON 테이블 (column[, column]...) 인덱스가 기반으로 하는 열의 값이 고유해야 함을 ..
동적 쿼리 iBatis는 기본적으로 이전 쿼리 결과의 메타데이터를 캐싱하는데 조회마다 컬럼이 달라지는 동적쿼리를 사용하는 경우 캐싱으로 인해 오류가 발생할 수 있다. 이 때 태그에 다음과 같은 속성을 추가하면 메타데이터 캐싱작업을 막을 수 있다. iBatis iBatis DataMapper 2.0 Developer Guide The remapResults attribute should be set to true when a query has a variable set of return columns. For example consider the following queries: SELECT $fieldList$ FROM table Mybatis MyBatis 3 – 사용자 가이드 flushCache 이 ..
java.lang.IndexOutOfBoundsException: Index: 17, Size: 17 방금까지 잘 되던 쿼리를 수행했는데 갑자기 인덱스 범위 오류가 발생했다. 해당쿼리를 golden과 같은 쿼리 질의 도구에서 수행했을 때는 문제없이 수행되는 것을 확인하고 작성한 쿼리를 한줄 한줄 읽어나가다 보니.. 주석에 preparedstatement에서 사용되는 ? 가 들어가있는 것을 확인했다. 혹시나 해서 지우고 실행해보니 잘된다. 주석안에 있더라도 ?(물음표)가 있는경우 preparedstatement 처럼 바인딩이 동작하니 주의해야겠다.
오라클에 제공하는 AVG 함수를 이용하면 컬럼의 평균값을 구할 수 있다. 이 때 함수가 null 값을 처리하는 방법을 잘 알지 못하면 평균값이 제대로 구해지지 않을 수 있다. 테이블 쿼리 COMM 컬럼의 합계는 2200 테이블의 ROW 수는 5개이기 때문에 COMM_A의 결과가 440(2200 ÷ 5)이 나와야 했는데 550(2200 ÷ 4)으로 계산되었다. 컬럼이 null인 경우 집계함수가 처리하지 않기 때문에 null 처리를 해주어야 한다.(NVL 함수 사용법) SELECT AVG(COMM) AS COMM_A FROM EMP WHERE SAL BETWEEN 1200 AND 1600 SELECT AVG(NVL(COMM, 0)) AS COMM_A FROM EMP WHERE SAL BETWEEN 1200 ..
배치(Batch) 데이터가 생성 또는 요청될 때마다 실시간으로 처리하는 것이 아니라 저장해두었다가 대량의 데이터를 일괄적으로 처리하는 프로세스이다. 백업, 필터링, 정렬과 같이 개별 요청을 트랜잭션에서 처리하기 비효율적인 경우 또는 유사한 업무를 한 번에 일괄처리해 자원을 효율적으로 사용할 수 있다. 배치의 특징 1. 대량의 데이터를 처리한다 2. 특정 시간에 처리한다. 3. 일괄적으로 처리한다. 대량의 데이터를 일괄처리하는 것이 배치의 핵심이다. 이 때 배치가 실행되는 시간은 시스템 부하가 발생할 수 있는 시간을 피하는 것이 좋다. 배치를 사용해야하는가 배치를 적용하면 요청을 실시간으로 반영하지 않아도 되기 때문에 웹/클라우드 상에서 자원을 효율적으로 사용할 수 있다. 그러나 배치 프로세스가 적용되면 ..
IP 네트워크에서 통신을 위해 서로를 식별하는데 IP 주소를 이용한다. 그러나 우리는 대부분 IP주소를 이용해 웹사이트에 접근하지 않는다. 사용자가 사이트마다 IP주소를 기억하기 힘들고, 서버 IP가 변경된다면 새로운 IP주소를 받아와야하기 때문에 대부분 도메인 네임(www.naver.com 등)을 이용해 접근한다. 하지만 가변길이의 문자로 구성된 도메인네임을 라우터가 처리하기에는 어려움이 있는데, 이 때 사용자가 요청한 도메인네임을 라우터가 처리할 수 있는 IP 주소로 변환시켜주는 시스템이 DNS(Domain Name System)다. DNS 호스트네임을 IP 주소로 변환해주는 서비스를 제공하는 분산형 데이터베이스 디렉터리 서비스이다. 애플리케이션 계층에서 동작하며 프로토콜은 UDP, 포트는 53을 이..
- Total
- Today
- Yesterday
- 백준
- Java
- C
- Open API
- 인턴
- 오라클
- CSS
- 부트스트랩
- 스프링부트
- HeidiSQL
- 네트워크
- JSP
- SQL
- 프로그래머스
- JVM
- 스프링
- 국비교육
- 이클립스
- CS
- 오류
- C++
- 환경설정
- svn
- 넥사크로
- Thymeleaf
- 개발용어
- 데이터베이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |