오라클에서 해당 월(MONTH)의 마지막 일자를 구하기 위해서는 LAST_DAY 함수를 사용하면 된다. 월별로 마지막 일자(28일, 29일, 30일, 31일)가 틀리기 때문에 조회를 할 때마다 직접 계산을 하는 건 많이 번거롭다. LAST_DAY 함수를 사용하면 이번 달의 마지막 일자, 특정 일자에 해당하는 월의 마지막 일자를 쉽게 구할 수 있다. 기본 사용법 SELECT LAST_DAY(TO_DATE('2022-01-17', 'YYYY-MM-DD')) FROM dual 특정일자에 해당하는 월의 마지막 일자를 구하는 예제이다. 1월의 마지막 일자 31일 반환된다. 활용 예제 이번 달 시작 일자 종료 일자 구하기 SELECT TRUNC(SYSDATE, 'MM') AS first_day_of_month , ..
오라클에서 조인을 할 때 오라클 조인(Oracle Join)과 안시 조인(ANSI JOIN)을 사용할 수 있다. 오라클 9i 까지는 오라클 조인만 사용할 수 있으며, 오라클 10g부터는 안시 조인을 추가로 사용할 수 있다. 최근 구축되는 시스템은 대부분 안시 조인을 사용하지만, 과거에 구축되어 있는 시스템은 오라클 조인을 많이 사용하고 있기 때문에 오라클 조인 방식도 꼭 알고 있어야 한다. 조인 (INNER JOIN) 아우터 조인 (LEFT OUTER JOIN) 아우터 조인 (RIGHT OUTER JOIN) 크로스 조인 (CROSS JOIN) 풀 아우터 조인 (FULL OUTER JOIN) 조인은 크게 위의 5가지 정도로 분류할 수 있다. 조인 (INNER JOIN)과 아우터 조인 (LEFT OUTER ..
오라클에서 INSERT 할 때 PK가 중복되어서 오류가 발생하는 경우가 많다. 이럴 경우 중복을 무시하거나 중복을 제외하고 INSERT를 하거나, 미리 중복을 체크하여 INSERT가 되지 않도록 해야 한다. ORA-00001 : 유일성 제약조건에 위배됩니다 (unique constraint violated) 아래의 3가지 방법을 사용하여 INSERT 할 때 중복을 제외하고 데이터를 입력하면 오류를 방지할 수 있다. NOT EXISTS 연산자를 사용하여 중복 제외 MERGE 절을 사용하여 중복 제외 PRODEDURE를 사용하여 중복 입력 시 예외처리 NOT EXISTS 연산자를 사용하여 중복 제외 INSERT INTO emp (empno, ename, job, hiredate) SELECT 8000 ,..
자바스크립트에서 문자열에 포함된 특정 문자의 개수를 구해야 하는 경우가 있다. 특정 문자를 구하는 직접적인 함수는 없으며 split 함수와 match 함수를 활용하여 특정 문자의 개수를 구할 수 있다. 아래의 예제는 문자열에서 특정 문자 쉼표(',')의 개수를 구하는 방법이다. split 함수 사용 var str = 'HTML,CSS,JavaScript'; var count = str.split(',').length - 1; // 결과 : 2 split 함수를 사용하여 문자열을 배열로 변환 후 배열의 크기에서 -1을 하면 특정 문자의 개수를 구할 수 있다. split 함수를 사용하면 특정 문자를 기준으로 문자열을 배열로 변환한다. 배열의 길이에서 -1 만큼이 특정 문자 개수이다. match 함수 사용 v..
오라클에서는 칼럼의 값을 자동으로 증가시키는 기능이 없기 때문에 INSERT 작업 시 직접 일련번호를 매번 후 데이터를 입력해야 한다. 가장 많이 사용하는 방법은 일련번호 칼럼의 마지막 값을 가져와서 +1 하여 사용한다. 그러나 MAX+1의 단점은 테이블의 트랜잭션이 과도하게 발생하면 중복으로 번호가 채번 되어서 입력 시 오류가 발생할 수 있다. MAX + 1 사용하는 방법 시퀀스 사용하는 방법 테이블의 INSERT 건수가 많이 없거나 프로그램을 잘 설계하였다면 MAX + 1의 방법으로 채번을 해도 큰 문제가 없지만, INSERT가 많이 발생한다면 중복 채번을 예방하기 위해서 시퀀스를 사용할 것을 권장한다. MAX + 1 사용하는 방법 INSERT INTO emp( empno , ename , job..
에어팟 프로를 충전할 때 유닛이 80% 정도까지만 충전이 되고 더 이상 충전이 되지 않아서 놀란적이 있다. 배터리의 수명이 줄어서 성능이 저하된 줄 알았는데 최적화된 배터리 충전 옵션이 켜져 있으서 바로 충전이 되지 않고 사용자의 행동 패턴에 맞춰서 100%까지 충전이 되었던 것이다. 해당 기능을 끄면 100%까지 바로 충전이 된다. 최적화된 배터리 충전이 켜져 있어도 특정 시점이 되면 100%까지 충전이 되니 켜놓아도 문제없다. 그러나 빠르게 충전하고 싶다면 아이폰의 설정에서 아래의 순서대로 최적화된 배터리 충전 기능을 끄면 빠르게 100%까지 충전된다. 최적화된 배터리 충전 끄는 방법 1. 설정앱을 실행한다 2. 블루투스 메뉴를 누른다 3. 에어팟 프로의 설정(ⓘ)을 누른다 (에어팟 본체의 뚜껑을 열..
오라클에서 쿼리문을 작성하다 보면 서브 쿼리(subquery)를 자주 접하게 된다. 서브 쿼리를 처음 접하면 아주 복잡하게 느껴지는데, 기능을 조금만 익히면 쿼리문을 작성할 때 아주 유용하게 사용할 수 있다. 서브 쿼리는 메인 쿼리 내부에 작성하는 쿼리를 뜻하며, 주로 아래의 3가지 서브 쿼리로 분류한다. 서브 쿼리 사용 위치 설명 스칼라 서브 쿼리 SELECT 절 단일 칼럼, 단일 행을 반환 (1개의 값) 인라인 뷰 FROM 절 View와 사용적인 측면에서 동일함 (임시 뷰, 임시 테이블) 중첩 서브 쿼리 WHERE 절, HAVING 절 다중 칼럼 또는 다중 행을 반환 위의 3가지 분류 외에도 연관성 없는 서브 쿼리, 연관성 있는 서브 쿼리로 분류하기도 한다. 연관성 없는 서브 쿼리는 메인 쿼리의 테이..
자바스크립트에서 문자열을 특정 구분자로 분할하기 위해서는 split 함수를 사용하면 된다. split 함수를 사용하면 특정 구분자를 기준으로 문자열을 분리하여 결과를 배열로 반환한다. 구분자가 많지 않다면 substring 함수와 indexOf 함수를 활용하여 문자열을 특정 구분자로 자를 수도 있다. split 함수로 문자열 자르기 var str = 'HTML,CSS,JavaScript'; var words = str.split(','); // 결과 : ['HTML', 'CSS', 'JavaScript'] // words[0] : 'HTML' // words[1] : 'CSS' // words[2] : 'JavaScript' split("구분자 문자열") 위의 예제는 구분자 쉼표(',')를 기준으로 문자..
자바스크립트에서 문자열에서 문자 또는 문자열의 위치를 검색 위해서는 indexOf와 search 함수를 사용하고, 문자열의 뒤에서 부터 문자열을 검색할 때는 lastIndexOf 함수를 사용하면 된다. str.indexOf(searchValue[, fromIndex]) str.search(regexp) str.lastIndexOf(searchValue[, fromIndex]) 대부분 문자열을 찾을 때는 indexOf 함수를 많이 사용하며, 정규식을 사용해야 할 경우 search 함수를 사용하면 된다. 문자열을 찾으면 문자열의 첫 번째 위치를 반환하고 찾지 못하면 -1을 반환한다. indexOf 함수로 문자열 찾기 var str = 'HTML,CSS,JavaScript'; var pos1 = str.i..
우리나라는 1990년대 후반부터 아주 빠르게 인터넷이 보급되기 시작했다. 필자도 이때쯤 모뎀을 통해 접속하던 인터넷을 두루넷이라는 인터넷 전용회선으로 바꾸고 초고속 인터넷이라는 것을 경험한 것 같다. 인터넷으로 이용할 수 있는 서비스가 많지는 않았지만 그중 인기 있는 서비스는 온라인 커뮤니티 사이트였다. 아주 빠른 인터넷 보급과 더불어 온라인 커뮤니티 사이트의 인기 또한 급성장하기 시작했으며, 온라인 커뮤니티의 창업자들은 돈방 석위에 앉게 되었다. 그러나 창업자들의 성공은 오래가지 못하고 대부분 역사 속으로 사라지고 말았다. 아이러브스쿨 아이러브스쿨은 온라인 동창회 서비스로 우리나라 SNS를 논하면 절대 빠질 수 없는 서비스이다. 김영삼 창업자가 1999년 카이스트 박사과정 중 단돈 150만으로 설립해서..