유닉스(UNIX) 사용자라면 대부분 명령행 사용에 익숙하겠죠. 하지만 익숙하다고 느낀 유닉스 명령행 사용이 잘 못된 습관이라면 빨리 고치는게 좋을겁니다. 물론 습관이란게 하루 아침에 고쳐질 건 아니겠지만요.

 이번에 소개하려는 문서는 "열가지 유닉스 사용습관"이라는 문서에 이어서 유닉스 명령행 전문가가 되는데 도움이 되는 열가지 기법을 소개하는 문서입니다.

John Fronckowiak이 쓴 글을 박재호, 이해영씨가 한글로 옮기셨습니다.

원문 : 유닉스 팁: 열 가지 더 좋은 유닉스 습관(유닉스 명령행 전문가가 되자)

솔직히 말해, 나쁜 습관은 고치기 어렵다. 이제 편안함까지 느끼는 버릇은 더욱 고치기 어렵다. 종종 사물을 새롭게 보면 "아하, 당신이 이렇게 하는 이유를 모르겠네?"라는 순간이 찾아온다. Michael Stutz가 작성한 "열 가지 유닉스 사용 습관"이라는 훌륭한 기사에 이어 이 기사에서는 여러분을 유닉스 명령행 전문가로서 좀 더 높은 생산성을 발휘하도록 열 가지 더 좋은 유닉스 명령행, 도구, 기법을 제시한다.

익혀야 하는 열 가지 더 좋은 습관은 다음과 같다.
- 파일 이름 완성 기능을 활용하자.
- 히스토리 확장 기능을 활용하자.
- 직전에 사용한 인수를 재사용하자.
- pushd와 popd로 디렉터리를 탐색하자.
- 대용량 파일을 탐색하자.
- 편집기 없이 임시 파일을 생성하자.
- curl 명령행 유틸리티를 활용하자.
- 정규 표현식을 적극 활용하자.
- 현재 사용자가 누구인지 알아내자.
- awk로 자료를 처리하자.

 상용 소프트웨어를 대신해서 사용할 수 있는 공개 소프트웨어를 소개하고자 합니다. 물론 상용 소프트웨어에 비해서 기능에 제약이 있을 수 도 있고 UI(User Interface)[각주:1]가 좀 불편하기도 하지만 라이센스 걱정 없이 사용할 수 있는 좋은 프로그램들이 많이 공개되고 있습니다. 제가 사용하고 있는 혹은 쓸만한 공개 소프트웨어를 소개하고자 합니다.

 공개 소프트웨어 소개, 첫번째는 GNU Image Manipulation Program. GIMP입니다.
www.gimp.org에서 다운로드 받을 수 있으며, Linux, Mac OS X, MS Windows, FreeBSD, SUN Open Solaris에서 사용가능합니다. 현재 2.4.6 버전을 다운로드 받을 수 있습니다.

 윈도우에서 이미지를 편집할때 대부분의 사람들이 간단하게는 윈도우에 번들로 설치되는 "그림판"이나 해적판으로 설치한 "포토샵"을 사용하죠. 회사 업무나 작품을 위해서 특정 기능을 사용해야하는 사용자가 아니라면 GIMP만으로도 충분한 효과를 볼 수 있다고 생각합니다.


     
 왼쪽부터 MS Windows, Mac OS, Linux에서의 실행된 모습입니다.

 지원 가능한 이미지 포멧으로는 JPEG, GIF, PNG, TIFF 등이 있으며 플러그인을 통해서 더 많은 이미지 포멧을 지원하는 것이 가능하다고 합니다. 또한 FTP, HTTP, SMB,SFTP/SSH 등을 통한 파일 저장 및 편집도 가능합니다.
사용자 삽입 이미지
위의 이미지는 제 PC에 설치된 2.4.2 버전의 GIMP가 실행될때의 첫 화면입니다. 각종 플러그인을 로딩하고 실행을 하기 직전이네요.
제가 아주 간단한 수준의 이미지 편집만 할 뿐이라서 플러그인에 대해서는 다음에 소개하도록 하겠습니다. 그럼 행복한 금요일 하루 보내시길...
  1. 사용환경이라고 할까요? 사용자가 해당 프로그램에 명령을 내려서 어떤 작업을 수행 할 수 있는 방법이라고 하면 어려운 설명일까요? 예를 들면 GUI라고 하면 MS Windows나 Apple의 Mac OS, UNIX환경의 X-Window 같이 그래픽으로 표시되는 사용자 환경이죠. [본문으로]
 오랫만에 PHP에 관한 글을 소개하려합니다. PHP의 다음 버전인 버전 6에 대한 얘기네요. 제가 PHP를 한창 사용할때만해도 4.x대의 PHP를 사용했었습니다. 5.0이 주로 사용될때는 PHP보다 JSP로 개발을 하던때구요. 몇년되지 않았는데 6 버전이 나왔네요.
 저는 PHP를 이용해서 웹 사이트 개발과 메일 서버의 계정관리, MySQL DBMS 관리 등을 했으며, 리눅스 서버의 파일 관리(메일 서비스 관리 할때입니다.)에도 일부 사용했었습니다. PHP가 참 다양한 일에 쓰인다는걸 알게 되었죠. 이제 새 버전이 나온다고 하니 어떤 기능이 추가 되었는지 한번 관심을 가져보려합니다.
흠... 이번에는 유니코드 지원이 강화되었다고 하네요.


원문 : PHP의 미래(PHP V6에서 등장할 새로운 기능과 PHP 스크립트에서 달라질 부분을 살펴보자)

원문은 컨설턴트인 Nathan A. Good이 작성했으며, 박재호, 이해영님께서 한글로 옮기셨습니다.


PHP 다음 버전인 V6는 객체 지향 관점에서 사용하기 쉽도록 새로운 기능을 제공하고 문법을 개선합니다. 또한 핵심 함수에서 유니코드를 지원하는 등 다국어 지원과 안정성이 한층 높아졌습니다.

PHP는 이미 인기가 높다. (Netcfaft에 따르면) 수백만 도메인이 PHP를 사용하며, 대다수 ISP가 PHP를 지원하며, 야후!와 같이 대표적인 웹 회사에서도 PHP를 사용한다. 이에 PHP V6는 유용성과 안정성을 더욱 높여주는 새로운 기능을 제공하여 현재 성공에 박차를 가하리라 보인다. 여러분은 PHP V6를 맞이할 준비가 되었는가? 내일 당장 PHP V6로 판올림한다면 지금 스크립트가 그대로 돌아갈까? 아니면 여기저기 손봐야 할까? 이 기사에서는 PHP V6에서 달라진 내용 중에서도 현재 스크립트에 영향을 미치는 부분에 초점을 맞춘다(일부 새 기능은 PHP V5.x로 역이식되었다).

아직 PHP를 사용하지 않고 고려 중이라면 최신 기능을 살펴보기 바란다. 코어 함수 유니코드 지원에서 XML 기능에 이르기까지, 복잡한 프로그램 구현을 수월하게 만들어주는 기능이 많다.



 DB Server migration 작업의 네번째 이야기입니다.
이번에 할 얘기는 장비 설치입니다. 설치는 S/W가 아니라 H/W의 설치를 뜻합니다. 제 경우처럼 대형 장비가 들어올 경우에 여러 업체에서 다양한 엔지니어들이 들어와서 설치를 하게됩니다. 일정 조정은 지난번에 말씀드렸으니 이번엔 설치하던 날에 대해서 얘기해보죠.

 우선 토요일 오후에 시작해서 일요일 오전에 끝나도록 일정이 잡혔고, 시간대별로 각 업체의 엔지니어분들이 들어왔습니다. 이번 작업을 하면서 서비스를 내리게되자 다른 서버의 펌웨어 업그레이드와 패치 등의 작업도 함께하게 되었습니다. 서비스를 자주 중지할 수 없는, 그리고 중지하더라도 넉넉하게 작업 시간을 확보할 수 없는 환경에서 이런 대형 공사가 있게되면 다른 작업도 함께 하게 되죠. 저희의 경우엔 기존 IBM P-595의 펌웨어 및 관리콘솔의 펌웨어 업그레이드도 함께 하게 되었습니다.

 1. 스토리지 증설
 스토리지에 새로 들어온 장비를 위한 디스크를 장착하고 포멧을 했죠.


2. 펌웨어 업그레이드
 이건 새로 들어온 장비와 상관없이 기존 장비 유지보수를 위한 작업이었죠. 이렇게 10시간 이상 다운타임이 생기면 정말 감사할 따름이죠. ^^


3. 서버 설치
 서버가 꽤 무거운 관계로 서버 납품 업체에서 네분 정도가 지원을 나오셨더군요.
너는 뭘 했냐고 물어보시면... 음... 저는 "갑"은 아니지만 작업 진행 상황을 체크하는 입장이라서 바쁘게 돌아다니기만 했습니다. ^^; 그리고 대형 서버 장비의 경우에는 납품 업체에서 모든걸 처리합니다. 혹시나 도와준다고 했다가 문제 생기면 그쪽에서 책임을 지지 않죠. IBM, HP, SUN 등등 대부분의 대형 서버 밴더들은 그렇습니다.
 서버 장착하는데도 커다란 공구가 필요하더군요. 저는 공구만 옮겨드렸었습니다.


4. SAN 및 기타 넷트웍 케이블 연결
 스토리지, 인터넷 서비스 등을 위한 SAN 케이블을 연결하고 잘 인식하는지 확인합니다. 3번과 4번 사이에는 아주 많은 시간 차이가 있습니다. 엔지니어분들이 고생하셨죠. 수고하셨습니다.~~


 그후.
설치후에 기본적인 설정을 하게됩니다. 그 이야기는 다음에 하도록 하겠습니다. 점심시간이 끝나가네요.

 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를 개발할때 편리하더군요.


사용자 삽입 이미지

과거 시점으로 되돌릴때나 작업한 내역을 쉽게 파악할 수 있어서 잠깐 자리를 비운 뒤에도 작업을 속행할 수 있어서 좋더군요.
 아~ 이번엔 리눅스 사용자를 위한 문서입니다. 리눅스 파일 시스템으로 많이 쓰고있는 ext3의 최신 버전인 ext4가 나왔네요. 까마득하게 모르고 있었는데, 이번에 IBM DeveloperWorks의 문서를 보고야 알았습니다. ^^;

 초 보 리눅서라면 거의 누구나 설치해보는 RedHat 계열의 리눅스 배포판을 설치하면 ext3라는 파일 시스템을 주로 사용하죠. 다양한 파일 시스템이 존재하는 가운데 가장 대중적으로 많이 사용하는 ext3 파일 시스템의 최신 버전인 ext4에 대한 내용을 다루고 있는 문서입니다.

물론 아직은 불안정한 상태이기에 사용에는 주의를 기울여야 합니다. 커널 컴파일 등의 추가 작업이 필요할 수도 있기에 ext4의 도입은 아직은 주의해야할 문제라고 하네요. 그리고 혹시 테라바이트 단위의 큰 파일을 다뤄야하는 시스템이라면 아직은 ext4보다는 xfs, jfs 등의 파일시스템을 고려하는게 좋을것 같습니다.

원문 : ext4로 이주하기(최신 리눅스 파일 시스템을 위한 준비)


ext4는 오랫동안 자리를 지켜온 리눅스(Linux®) 파일 시스템의 최신 버전이며, 직전 버전 만큼이나 중요하고 인기가 높으리라는 예상을 합니다. 리눅스 시스템 관리자로서, 여러분은 ext4의 장단점과 이주하기 위한 기본 절차를 숙지하고 있어야 합니다. 이 기사는 ext4를 채택할 시기, ext4를 위한 전통적인 파일 시스템 유지 관리 도구 활용법, 파일 시스템 성능을 최대로 이끌어내는 방법을 설명합니다.
 보통 새 장비가 들어오면 - 그 장비가 몇백만원 단위의 저가가 아니라 대형 장비라면 - 그 장비를 설치하는 일은 납품 업체에서하고, OS 설치까지도 알아서 해주죠. 저희는 서버, 스토리지, SAN Switch까지 들어오기때문에 여러 업체가 작업을 하게 되었습니다. 그래서 중간에 조정자가 필요합니다. 저희도 "을"의 입장이지만, 납품 업체들의 일정을 모아서 "갑"에게 알려주고 "갑"의 의사결정에 따라서 일정을 확정하는거죠.

0. 상면, 전력 등을 미리 신청하여 확보하였는가?
1. 기존의 서버스와 상관없이 미리 할 수 있는 작업은 무엇인가?
2. 여러 업체가 동시간대에 할 수 있는 작업은 무엇인가?
3. 다른 작업보다 먼저 해야할 작업은 무엇인가?
4. 기존의 서비스를 중지해야한다면 최소, 최대 몇시간이 걸리는가?
5. Migration하게 될 장비의 사양에 맞게 소프트웨어 라이센스도 확보되었는가?



음... 이 정도가 중요하게 고려되어야할 문제인것 같습니다. 마지막에 라이센스 문제가 적혀있는데, 이번에 저희 프로젝트에서 문제가 되었던 점입니다. 이건 초기에 계약이 어떻게 되었는지와도 상관이 있는 문제라서 좀... 난감한 문제이죠.
 IBM DW의 문서중에서 PHP 프레임워크에 대한 문서를 소개합니다. PHP에서 MVC아키텍처를 지원하고, 손쉬운 개발/유지보수를 가능하게해주는 프레임워크 세가지에 대한 내용입니다. Part1에서 Part5까지로 기획된 문서로 이중에서 첫번째 문서를 소개합니다.

 PHP에서 손뗀지가 몇년되긴하지만, PHP에 대한 다양한 기술들이 소개되는걸 보니 반갑네요. 이 문서가 많은 분들에게 도움이 되길 바랍니다.


원문 : PHP 프레임워크, Part 1: 많이 사용하는 프레임워크 세 개


몇 해 전까지만 해도 PHP를 둘러싸고 자주 터져나온 비평 중 하나가 MVC 아키텍처를 지원하지 않는다는 사실이었습니다. 하지만 상황은 변했습니다. 지금은 선택할 만한 PHP 프레임워크가 상당히 많아졌습니다. 이 연재 기사에서는 많이 사용하는 PHP 프레임워크 세 가지인 젠드(Zend), 심포니(symfony), CakePHP를 소개합니다. 각 프레임워크에서 간단한 프로그램을 구현하고 확장하면서 세 프레임워크의 유사점과 차이점을 설명합니다.

이 기사에 대해

이번 기사는 다루는 내용이 상당히 많다. 그래서 정신을 바짝 차리고 따라오기 바란다. 여기서는 PHP 프레임워크 세 가지를 살펴본다. 그 세 가지가 무엇일까? 왜 하필이면 세 가지일까? 다른 프레임워크는 없는가? 다른 프레임워크가 있다면 그건 왜 살펴보지 않는가? 의문스러운 점이 아주 많으리라. 하지만 대다수 궁금증은 각 프레임워크를 설치하기 전에 해결되리라 믿는다. 프레임워크를 모두 설치한 다음에는 이 연재 기사에서 사용할 테스트 프로그램을 살펴본다. 테스트 프로그램만 봐도 각 프레임워크가 어떤 점이 다른지 혹은 어떤 점이 같은지 감이 오리라.

시스템 요구사항

시작하기 전에 환경부터 설정하자. 요구사항은 많지 않다.

  1. 세션을 지원하는 HTTP 서버가 필요하다. mod_rewrite 모듈을 지원하면 더 좋다. — 이 연재 기사에서는 아피치 V1.3을 사용한다. mod_rewrite 모듈을 활성화했다.
  2. PHP V5.1.4 이후 버전이 필요하다 — 여기서 살펴보는 모든 프레임워크가 V5.1.4를 요구하지는 않는다. 하지만 편의상 모든 프레임워크에서 같은 PHP 버전을 사용한다. 이 연재 기사는 PHP V5.2.3으로 작성했다.
  3. 어느 정도 최신 MySQL이 필요하다 — 다른 데이터베이스를 사용해도 좋지만, 이 연재 기사와 예제 프로그램은 MySQL V5.0.37을 사용한다.
  4. PHP V5.2.4 이후 버전과 MySQL을 지원하는 운영체제가 필요하다 — 이 연재 기사에서는 리눅스(Linux®)를 사용한다. 윈도우(Windows®) 사용자라면 적절히 대응하기 바란다. 특히 프레임워크를 설치할 때 디렉터리를 만드는 방식에 주의한다.

필요한 사전 지식

이미 독자가 PHP를 알고, 응용 프로그램을 설계할 줄 알고, 데이터베이스를 사용할 줄 안다고 가정한다. 프레임워크를 사용한 경험은 없어도 좋으나, 배우겠다는 의욕은 필요하다.




 "사무실의 아무 자리에나 앉아서 아이디와 비밀번호를 입력하면 내가 사용하던 환경이 뜨면서 업무를 볼 수가 있습니다." 어느 영화에서나 보던, 혹은 어느 외국계 기업에서 사용한다던 얘기이지만, 실제로 구현 가능한 기술들이죠. MS의 액티브디렉토리 기술을 사용해서도 구현이 가능하다고합니다.

 이번에 소개할 문서는 유닉스, 리눅스 환경에서 이런 기능을 할 수 있게 해주는 기술들에 대한 내용입니다.
NIS, NIS+, NFS, Automounter, 시각동기화 등의 기술을 이용해서 구현하는 법을 설명하고 있습니다. NIS, NFS는 모두 SUN Microsystems가 만든 기술들로 AIX, HP-UX, Solaris, Linux에서 모두 사용 가능합니다.

원문 : 유닉스와 리눅스를 함께 어울리게 만들기

 이 글을 쓴 마틴 브라운은 자유기고가로 IT 컨설턴트이면 프리랜서 작가입니다. 번역은 박재호, 이해영씨가 수고하셨습니다.


NIS(Network Information Service)로 리눅스(Linux®)와 유닉스(UNIX®) 사이에 핵심 데이터베이스를 공유하는 방법과 NFS(Network File System)로 직접 연결하거나 automounter로 파일 시스템을 공유하는 방법을 살펴봅니다. 유닉스와 리눅스는 비슷하지만, 두 시스템을 통합하는 과정을 복잡하게 만드는 몇 가지 차이점이 있습니다. 예를 들어, 동일한 인증 시스템을 공유하지만, 대다수 시스템은 또한 단독으로 동작합니다. 이런 인증 정보 공유는 네트워크에 물린 모든 서버에 SSO(Single Sign-On) 기능을 제공합니다.

 DB 서버 이전을 하는 첫 단계로 기본 정보 수집 단계입니다.

 이 단계에서 우선 기본적으로 DB에 Datafile이 몇개나 되는지 용량은 얼마나 되는지 어떤 디렉토리 구조로 나뉘어서 저장되어 있는지 목록을 만듭니다. 그리고 각 계정별로 어떤 테이블이 있는지, 그리고 데이터의 양은 얼마나 되는지를 마찬가지로 목록으로 만듭니다.

 목록으로 만드는 이유는 이전 과정에서 앞으로는 없어도 되는, 현재 사용중이지 않은 테이블 혹은 계정을 가려내어 빼기 위함입니다. 한번쯤은 정리해주는게 필요하죠. ^^ 그래야 새 서버로 옮겼을때에 성능 향상이 눈에 뛰겠죠. ㅋㅋ 음... 그리고 좀더 자세한 내용은 나중에 적어보겠습니다. 사무실에 올라가야 겠네요.

------------------------

내용 추가

1. 데이터 파일 목록

2. 유저별 Object 목록
 : system, sys 및 기타 DBMS 설치시 생성되거나 툴을 설치할때 생성되는 계정의 Object를 제외한 목록 정리

3. 각 유저별 디스크 사용량 정리

+ Recent posts