Oracle DBMS를 사용하면서 수 많은 개발자들이 한번쯤은 접하게되는 문제가 "지금 운영중인 DB의 캐릭터셋 설정때문에 한자, 혹은 특정 한글 문자의 입력이 안되는게 당연합니다. 지금 캐릭터셋을 바꾸면 Data가 깨질수도 있어요."라는 DBA의 답변...이다.
 이런말 하기는 참 싫지만 내가 설치한 DB도 아니고... 새로 구축하는 DB면 이렇게 설치 안 하겠는데... 암튼...
(사실 이렇게 말해놓고는 지난번에 설치한 DB는 이 회사 왕고참 과장님의 의견(기존에 사용하던 DB와 캐릭터셋이 같아야 한다는...)에 따라서 KSC5601로 설치했다. 아~ 소신대로 살기 참 힘들죠~잉~)

OTN에 NLS관련 내용을 정리한 문서가 있어서 소개합니다. 언젠간 저도 이런 곳에 문서를 올릴 수 있는 능력자가 될 수 있기를...

보러가기
오라클과 NLS의 찰떡궁합 들여다보기(1)
오라클과 NLS의 찰떡궁합 들여다보기(2)
 OTN 홈페이지에 [고성능 Oracle JDBC 프로그래밍]이라는 문서가 올라왔네요.
원문보러가기 : 고성능 Oracle JDBC 프로그래밍

고성능 Oracle JDBC 프로그래밍

연결 및 명령문 풀링 기능을 이용하여 Oracle 기반의 JDBC 프로그램 성능을 개선하는 방법을 학습합니다.

By Yuli Vasiliev

2009년 4월 게시

연결 풀링 및 명령문 풀링과 같은 풀링 기능을 사용하면 데이터베이스 집약적인 애플리케이션의 성능을 크게 개선할 수 있습니다. 풀링 기능을 사용하지 않을 경우, 처음부터 객체를 새로 만들어야 하므로 시간과 리소스가 많이 소모되지만 풀링을 사용하면 객체를 다시 사용할 수 있기 때문입니다.

애플리케이션에서 사용한 물리적 데이터베이스 연결을 나타내는 데이터베이스 연결 객체를 다시 사용할 경우, 성능을 크게 개선시킬 수 있습니다. 단, 해당 애플리케이션은 동일한 매개 변수를 사용하여 연결을 수시로 재설정하면서 데이터베이스와 끊임없이 상호 작용해야 합니다. 반면, 애플리케이션이 기본 데이터베이스에 연결하는 경우가 거의 없다면 연결 풀을 사용하는 이점이 별로 없을 것입니다. 그러나 실제로는 허용되는 최대/최소 연결 수에 대한 한도 설정 같은 풀 설정이 특정 애플리케이션에 맞게 최적화되어 있다면 많은 데이터베이스 집약적인 애플리케이션이 연결 풀을 사용함으로써 이점을 누릴 수 있습니다.

연결 풀처럼 명령문 풀도 애플리케이션 성능을 개선할 수 있는 방법을 제공합니다. 프로그램을 실행하는 중에 여러 번 실행되는 명령문을 풀링함으로써 추가적인 성능 개선을 얻을 수 있습니다. 그러나 명령문 풀링이 성능 문제를 해결할 수 있는 특효약은 아니라는 점을 기억하십시오. 만약 프로그램에서 명령문이 실행되는 횟수를 구분하지 않고 모든 단일 명령문을 캐시 한다면 성능 개선을 이루지 못할 수 있습니다. 프로그램 실행 중에 한 번만 실행되는 명령문을 캐시할 경우, 해당 명령문을 캐시에 넣고 보관하는 작업과 관련된 오버헤드로 인해 실제로는 성능이 저하될 수 있습니다.

이 문서에서는 Oracle JDBC 씬 드라이버를 통해 Oracle Database와 상호 작용하는 데이터 집약적인 JDBC(Java DataBase Connectivity) 프로그램의 성능을 개선하기 위해 연결 및 명령문의 풀링을 이용하는 방법을 설명합니다. 특히 JDBC 연결을 캐시하기 위해 모든 기능을 갖춘 연결 풀 구현을 제공하는 JDBC용 Oracle Universal Connection Pool(UCP)을 살펴보겠습니다. 마지막으로 Oracle의 JDBC 드라이버뿐 아니라 명령문 인터페이스에 추가되고 JDK(Java Development Kit) 1.6 이상 버전을 지원하는 Oracle JDBC 드라이버에서 사용할 수 있는 새로운 JDBC 4.0 메소드에 관련된 기능을 사용함으로써 명령문 풀링에서 이점을 얻을 수 있는 방법을 설명하겠습니다.


 OTN에 올라온 Oracle RAC 구축 관련 문서입니다. Oracle VM과 Oracle Enterprise Linux 환경에 구축하는 내용을 담고 있으며, 개인이나 회사에서 개발용, 테스트 혹은 교육용으로만 사용할 것을 권장하고 있네요.
세개의 웹 페이지로 나뉘어져있으며, 각 페이지에는 인쇄용 화면을 볼 수 있는 링크가 있습니다.

소개

일반적인 Oracle RAC(Real Application Cluster) 구현은 하나 또는 여러 노드의 장애를 신속하게 복구하는 아키텍처입니다. 그러나 일반적인 시나리오에서 Oracle RAC의 모든 노드는 한 곳의 데이터 센터에 있으므로 치명적인 데이터 센터 장애로 이어지기 쉽습니다. 이 시나리오에서 재난 복구를 위한 솔루션은 로컬 데이터 센터와 일부 백업 데이터 센터 간에 Oracle DataGuard를 설치하여 대기 시스템(일반적으로 하나의 Oracle Database 또는 다른 RAC 클러스터)을 실행하는 것입니다.

DataGuard는 이 역할을 물론 잘 수행하지만 전체 대기 시스템과 어레이를 패시브 노드로 전환하므로 트랜잭션에 전산 능력을 사용할 수 없게 되며 이로 인해 솔루션 비용이 매우 높아집니다. (대기 Oracle DataGuard 시스템은 읽기 전용 쿼리를 수행하기 위해 열 수 있고 Active DataGuard in Oracle Database 11g를 사용할 경우 항상 읽기 전용 모드로 실행할 수도 있지만, 이 구성의 경우 애플리케이션이 일부 노드의 읽기 전용 특성을 알고 있어야 합니다.)

다행히도 부분적인 재난 복구를 위한 다른 솔루션이 있으며 그것이 바로 확장 RAC입니다. 이 아키텍처에서 일부 RAC 노드는 "알파 사이트"에서 작동하며 나머지 노드는 "베타 사이트"에서 작동합니다. 두 사이트의 노드는 액티브 모드이므로 모든 전산 리소스를 충분히 사용합니다. 그림 1에서 볼 수 있는 것처럼 각 사이트에는 전용 SAN(Storage Area Network)이 있고, 양쪽 데이터 센터(dcA와 dcB)에 있는 시스템은 동일한 RAC의 구성원이므로 데이터를 신속하게 상호 교환할 수 있고 다른 사이트의 스토리지에 액세스할 수 있습니다. 즉, dcA에 있는 RAC1 노드는 dcB에 있는 SAN 어레이에 데이터를 쓰고 dcB에 있는 RAC2 노드와도 통신합니다.



원문 : Oracle VM 및 Oracle Enterprise Linux에 Oracle 확장 RAC 클러스터 직접 구축하기



 Oracle에서 BEA를 인수한 뒤에 Oracle은 BEA의 WAS와 개발 Tool들을 Oracle이라는 브랜드를 붙여서 내놓고 있습니다. 물론 거기에 Oracle DBMS와 연동하기위한 장치들을 기본으로 내장해서요.
 BEA WebLogic, BEA WebLogic Workshop 등의 대표적인 BEA 제품에 이제는 Oracle WebLogic, Oracle Workshop이라는 이름으로 시장에 나왔습니다. Oracle DBMS라는 걸출한 제품과 WebLogic이라는 유명 WAS, 그리고 이제는 Oracle Workshop for WebLogic이라는 이름으로 나온 WebLogic workshop이라는 WebLogic상에서 개발할때 편리한 개발 Tool까지 한 덩이가 되어서... ^^;; 나왔습니다.

사용자 삽입 이미지
위의 이미지를 보시면 알수있듯이 왼쪽위에 있는 빨간색 아이콘... 대문자 O(오)죠. 음... 그러고보니 원래 BEA제품들을 실행시키면 아이콘 모양이 어땠는지 기억이 나질 않네요. ^^;

음... 서론이 길었네요.
사실 이 글의 목적은 OTN에 올라온 문서를 소개하는겁니다.

원문 : Oracle Workshop의 Java EE 5 웹 표준 지원(Oracle Workshop for WebLogic을 이용한 Java EE Web 애플리케이션 개발 방법을 배워 보십시오)


오랫동안, J2EE는 강력하면서 복잡한 기술로 간주되어 왔습니다. 하지만 이를 완벽하게 이해하는 데 충분한 시간을 기울였다면, 확장성이 뛰어난 컴포넌트 기반의 다중 계층(multi tier) 엔터프라이즈 애플리케이션을 개발하는 데 그다지 효과적인 솔루션이 아니라는 사실을 깨달았을 것입니다.

Java EE 5는 이전 J2EE의 위력을 그대로 가지고 있지만 새로운 버전은 이전 버전들에 비해 훨씬 단순하고 사용하기 쉽습니다. 이 글에서는 몇 가지 새로운 Java EE 5 기능에 대해 검토하고 Oracle Workshop (이전의 BEA Workshop)을 이용하여 간단한 웹 애플리케이션을 개발하는 과정을 살펴보겠습니다. 여러분은 웹 프로젝트를 수립하고, JavaServer Faces (JSF) 기반 폼을 작성하며, 페이지 탐색 규칙을 정의하는 것은 물론, 주석을 추가한 session EJB를 생성하고, JSF-Managed Bean 에서 DI(Dependency Injection)를 사용하며 EAR 파일로 애플리케이션을 패키징한 다음, 이를 로컬 또는 원격 Oracle WebLogic 서버로 배치하는 방법을 배우게 될 것입니다.


 리눅스에서 파일 관리를 할때 종종 사용하는 명령으로 find가 있습니다.
간단하게 파일 이름으로 검색을 하거나, 파일 크기로 검색을 할때 find를 사용하죠. 이 find 명령에 대한 개요 및 사용 예를 제공하는 OTN[각주:1]의 문서를 소개합니다.

원문 : Linux find 명령어 완전 정복 가이드

 아래는 원문의 앞부분을 발췌한 내용입니다.

가장 강력하면서도 한편으로는 혼란스러운 유비쿼터스 명령어인 find 명령어에 대한 개요.

게시일 : 2008년 7월

Linux find 명령어는 모든 Linux 명령어 가운데 가장 유용하면서도 혼란스러운 명령어 가운데 하나입니다. 다른 Linux 명령어의 표준 구문과 다른 구문을 가지고 있다는 점에서 어렵습니다. 하지만, 파일명, 파일 유형, 사용자, 더 나아가 타임 스탬프 별로 파일을 찾을 수 있다는 점에서 강력한 명령어이기도 합니다. find 명령어를 사용하면 이러한 속성을 자유롭게 조합해 파일의 위치를 찾을 수 있을 뿐만 아니라, 찾은 파일에 대해 연산을 수행할 수 있습니다.

본 글의 목적은 find 명령어와 그 잠재적 이점을 개략적으로 설명함으로써 find 명령어를 손쉽게 학습 및 사용할 수 있도록 돕는 것입니다. 동시에, find 명령어의 특성 중 가장 강력하면서도 한편으로는 혼란스러운 측면에 대한 개요 및 참조를 제공할 것입니다.

[주: 여기에서 사용된 find 명령어는 GNU 버전이기 때문에 일부 세부 내용은 다른 버전의 find 명령어와 다를 수 있습니다.]

  1. Oracle Technology Network [본문으로]
 Orcle SQL Developer는 Oracle사에서 배포하는 DB 개발 툴입니다. 기본적으로 Oracle을 지원하며(당연한 일이겠죠. ^^) MS-SQL, MySQL 등의 DB도 지원합니다.

Oracle SQL Developer

Oracle SQL Developer는 생산성을 개선하고 데이터베이스 개발 작업을 단순화하기 위해 오라클이 새로이 제공하는 무료 그래픽 툴입니다. Oracle SQL Developer를 이용하여 데이터베이스 오브젝트의 조회, SQL 구문/스크립트의 실행, PL/SQL 구문의 디버깅과 같은 작업을 수행할 수 있습니다. 또는 기본 제공되는 리포트를 실행하거나 별도의 리포트를 생성하여 저장할 수 있습니다.

SQL Developer는 Oracle Database version 9.2.0.1 및 이후 버전을 지원합니다. 오라클은 Windows, Linux, Mac OS X 환경을 위한 SQL Developer 버전을 제공하고 있습니다.



 가장 최근 버전인 1.5버전의 형상관리 기능. CVS와 SubVersion을 이용해서 소스 관리/변경 관리를 할 수 있습니다. 이점이 1.5버전의 특징중 하나인데, 이걸 사용하는 화면을 스크린샷으로 만들어 봤습니다. 음... PL/SQL로 Stored procedure를 개발할때 편리하더군요.


사용자 삽입 이미지

과거 시점으로 되돌릴때나 작업한 내역을 쉽게 파악할 수 있어서 잠깐 자리를 비운 뒤에도 작업을 속행할 수 있어서 좋더군요.
Oracle사에서 공개하는 DBMS Tool인 SQL Developer의 1.5 버전이 공개되었습니다. 무료라는거!!!
구동하는데 걸리는 시간은 TOAD와 비슷합니다. ㅡ.ㅡ;;

CVS와 SubVersion을 지원하고 마이그레이션 기능이 추가되었네요.
이번 버전에서는 UI가 많이 바뀌었네요.


원문 : Oracle SQL Developer 1.5이란 무엇인가?
2008년 4월 발표된, Oracle SQL Developer 1.5는 오픈 소스 버전 통제 제품인 CVS 및 Subversion과의 통합 기능을 제공하기 때문에 "Version Control" 릴리스라 불립니다. 버전 통제를 지원하는 것은 파일 시스템에 저장된 파일을 검색해 읽는 File Browser입니다. SQL Developer 내부에서 이들 파일을 열어 편집할 수 있습니다. SQL Developer에 대한 이러한 기능을 추가한 것 외에도, 릴리스 1.5는 SQL Formatting, Schema Compare, Copy 및 Export 마법사 및 Sybase 마이그레이션 지원 등의 기능이 추가되었습니다. Times Ten 지원 기능도 이 제품에 통합되었습니다. 주요 기능 * SQL Developer 1.5의 새로운 기능에 대한 자세한 정보는, 신기능 목록에서 확인할 수 있습니다 * 보다 포괄적인 기능 목록은 SQL Developer 1.5 기능 목록을 참조하십시오.
 OTN[각주:1]의 Developer Article 중에서 스크립트 언어 관련 개발 문서중 하나를 소개합니다.

원문 : 오라클 환경에서 Python과 TurboGears 활용하기 [문서의 프린트용 화면보기]

 본 문서는 TurboGears 프레임워크를 이용해서 Python으로 Oracle Database 기반의 웹 어플리케이션을 개발하는 방법을 알려줍니다.

저자 – Daniel Rubio

TurboGears는 Python 사용자들이 오라클 데이터베이스 기반의 웹 기반 애플리케이션을 구현하는데 필요한 강력한 프레임워크를 제공합니다.

게시일: 2007년 11월

Python 은 지난 수 년 동안 매우 각광 받아 온 스크립팅 언어로, 매우 간결한 문법과 미니멀리즘적인 개발 환경을 제공합니다. Python의 열성 추종자들은 그래픽 인터페이스에서 로봇 공학에 이르는 다양한 스크립트 활용 사례를 구현해 왔습니다. 하지만 최근까지도 데이터베이스 기반의 웹 애플리케이션은 Python 커뮤니티의 미개척지로 남아 있었습니다. 하지만 이제 TurboGears가 제공하는 O/R(object-relational) 매퍼, 템플릿 툴킷, 기타 컴포넌트들을 활용하여 오라클 데이터베이스 기반의 웹 애플리케이션을 Python으로 개발할 수 있는 길이 열렸습니다.

Python과 TurboGears: 배경 지식과 아키텍처

지난 수 년 동안 개발된 써드 파티 라이브러리와 모듈들만 보아도 Python의 대중성을 익히 짐작할 수 있습니다. Python을 이용한 웹 애플리케이션의 개발에는 그 한계가 없는 것처럼 보입니다. 관계형 데이터베이스의 접근을 위한 Python 스크립트도 그 수를 헤아리기 힘든 지경입니다. 하지만 데이터베이스를 기반으로 하는 완전한 형태의 웹 애플리케이션은 Python이 지원하지 못하는 가장 큰 공백으로 남아 있었습니다.

Java Platform, Enterprise Edition(Java EE)이 데이터베이스 기반 웹 애플리케이션의 구현에 관련한 문제들을 해결하기 위해 각종 표준과 프레임워크들을 계속적으로 개발해 온 것처럼, 오늘날의 데이터베이스 기반 웹 애플리케이션 요구 사항을 지원하기 위해 Python 커뮤니티가 해답으로 제시한 것이 바로 TurboGears입니다.


  1. Oracle Technology Network의 약자로 오라클 기술 문서와 자료들을 제공합니다.
    http://otn.oracle.com/kr [본문으로]

+ Recent posts