유닉스나 리눅스 환경에서 작업을 많이 하는 분들을 Shell script를 많이 이용하게 됩니다. Shell script는 업무의 자동화에 유용하죠. 최근에는 MS에서도 자사의 윈도우즈 운영체제에 Power shell이라는 제품을 설치하여 Script를 사용할 수 있도록했죠.

 이번에 소개할 문서는 배시 셸 관련 투토리얼입니다.


원문 : 배시 셸로 작업하기



거의 모든 유닉스(UNIX®) 기반 운영체제에서 활용 가능한 배시 셸에 대한 소개 튜토리얼입니다. 배시는 성숙하고, 강력하고, 그럼에도 불구하고 사용하기 쉬운 셸이며, 자유롭게 구할 수 있습니다. 이 튜토리얼은 다른 인기 있는 유닉스 셸과 다른 점을 파악하기 위해 배시에 대한 간략한 역사를 소개하며, 배시 내부에서 제공하는 주요 기능을 살펴봅니다. 다음으로 유닉스 파일 시스템, 디렉터리와 파일 조작 방법, 배시 외양과 동작 방식을 개인화하기 위한 몇 가지 방법을 설명합니다. 마지막으로 이 튜토리얼은 배시가 제공하는 작업 제어 기능을 소개하며 끝을 맺습니다.

이 튜토리얼 내에서

  • 배시 개괄

  • 배시에서 명령 행 프롬프트로 작업하기

  • 배시에서 파일과 디렉터리 다루기

  • 배시 개인화하기

  • 배시 작업 제어

선수조건

필요한 사전 지식은 없다.


시스템 필요조건

이 튜토리얼을 읽기 위한 시스템 요구 사항은 없다. 단지 글을 읽고 배시를 익히면 된다. 하지만 이 튜토리얼을 최대로 활용하려면 튜토리얼이 제공하는 기법을 시도할 필요가 있다. 이렇게 하려면 버전 2.05 이상인 동작하는 배시 셸이 필요하다. 컴퓨터에 설치된 배시 셸 버전을 모른다면, 배시 셸 홈 페이지를 방문해 필요한 정보를 얻기 바란다.


 Open source의 은덕을 입고 살아온지 거의 10년만에 FSF[각주:1]에 회원가입을 하게 되었네요. 그동안 영어에 대한 막연한 두려움으로 인해서 가입을 미루고 있었는데, 오늘 GCC 컴파일러를 다운받으려고 웹서핑하다가 충동적으로 가입을 하게 되었습니다. ^^;

공식적으로는... "영어 공부도 좀 하려고... 그리고 좀더 다양한 정보를 접하려고 가입을 하게 되었습니다."

회원 가입을 하고보니, badvistainfo-gplv3 메일링 리스트도 받아볼 수 있게 되어있네요. 흠... 우리나라의 커뮤니티 웹 사이트들과는 다른 모양의 웹 사이트라서 조심스럽게 가입을 했는데, 기분은 좋네요. 웬지 좀더 큰 물에 발을 담근듯한...

 아래의 이미지는 회원가입을 완료하면 보이는 계정 설정에 관련된 내용입니다. 여기서 메일링 리스트와 관련된 내용을 수정할 수 있더군요.

사용자 삽입 이미지

 그리고 아래 이미지는 흥미로운 이름의 badvista.org의 첫 화면입니다.
사용자 삽입 이미지

  1. Free Software Foundation. 리차드 스톨만이 이끄는 자유소프트웨어재단입니다. GPL 재정, GNU Software개발 등등 수많은 일을 한 곳이죠. 리누스 토발즈와 함께 오픈소스 진영의 유명인사죠. 성격이 좀 별난 분이라고 하더군요. 너무 카리스마 있으시다는 소문이... [본문으로]
 이 문서는 Ajax 개발시 성능 문제를 개선하기위해서 필요한 도구를 소개하고 있습니다. 제가 사용중인 Firebug도 소개하고 있구요. Yslow라는 도구도 소개하네요.
 갈수록 사용하는 곳이 많아지는 Ajax와 이에따른 성능 문제에 고민하는 개발자라면 한번 읽어볼만한 내용이라고 생각합니다.


원문 : Ajax 성능분석 (최신 도구를 사용하여 작업을 마무리하기)


비동기 자바스크립트 + XML(Asynchronous JavaScript + XML; Ajax) 덕분에 상호작용과 성능에 대한 사용자들의 기대치가 계속 높아지고 있고, Ajax를 웹 응용 프로그램의 필수 요소로 취급하는 개발자들도 점점 늘고 있습니다. 더 많은 코드가 클라이언트 측으로 이동하고 네트워크 모델이 바뀜에 따라, 커뮤니티는 Ajax 고유의 성능 문제들을 다루기 위해 더 많은 도구를 만들어내고 있습니다. Ajax-강화 응용 프로그램에서 성능 문제를 찾아내고 바로잡아주는 도구들에 대해 알아보겠습니다.

성능은 응용 프로그램에 Ajax를 도입해서 개선하려는 일차적인 이유 중 하나다. Ajax는 서버와 통신할 때 전체 페이지를 요청하지 않으므로 응답 시간을 개선할 수 있다. 응답 시간을 줄이면, Ajax는 훨씬 더 나은 사용자 경험을 제공할 수 있다. 그러나 Ajax 응용 프로그램의 성능을 분석하고 향상시키려면 전통적인 웹 응용 프로그램과는 다른 도구가 필요하다. 이 기사에서는 이러한 도구들에 대해 알아보고, 성능 문제를 찾고 고치기 위해 그 도구들을 사용하는 방법을 보여준다.

자주 쓰이는 약어
  • CSS: Cascading Style Sheets
  • HTML: Hypertext Markup Language
  • XML: Extensible Markup Language
  • HTTP: Hypertext Transfer Protocol

Ajax 응용 프로그램 성능은 웹 응용 프로그램의 몇 가지 측면에 근거한다.

  • 서버 응답 시간
  • 네트워크 전송 시간
  • 클라이언트 자바스크립트 처리 시간

전 통적인 웹 응용 프로그램 개발에서는, 서버 응답 시간이 성능 분석의 일차적인 관심사다. 성능 분석은 대부분 신속하게 요청을 처리하고, 필요한 응용 프로그램 로직을 수행하고, 응답을 생성하는 애플리케이션 서버의 능력을 측정한다. 일반적으로 잘 알려진 것처럼, Ajax 응용 프로그램 개발에서도 이러한 능력이 응용 프로그램 성능의 결정적인 측면이지만, 이 기사는 성능의 다른 부분에 초점을 맞출 것이다.




  지난번에 소개한 "PHP 프레임워크, Part 1 많이 사용하는 프레임워크"에 이어서 "Part 2: 간단한 응용 프로그램 만들기"를 소개합니다. 실제로 간단한 응용 프로그램을 만드는 내용이구요. 그다지 자세하진 않습니다.
예전에 소개한 "PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 처럼 자세하다면 좋을텐데... 조금 아쉽긴해도 어느정도 삽질을 해야 자기것으로 만들수 있겠죠. ^^; 이런말하면서도 뭔가 만들어보진 못하고 있습니다. ^^;

 PHP로 만든 웹 메일 서버 관리를 하면서 PHP로 리눅스  메일 서버의 계정 및 조직도 정보를 관리하면서 느낀 거지만, PHP라는게 참 쓸만하다는 겁니다. 쓸만한 프레임워크가 많아져서 더욱더 광범위하게 사용되면 좋겠다는 생각을 해봅니다. 그런 의미에서 이 문서가 많은 분들에게 읽혀지길 바랍니다. ^^


원본 : PHP 프레임워크, Part 2: 간단한 응용 프로그램 만들기(Zend, symfony, CakePHP로 Blahg 구현하기)



이번 "PHP 프레임워크" 연재 기사에서는 널리 쓰이는 PHP 프레임워크 세 개(Zend, symfony, CakePHP)를 살펴봅니다. 각 프레임워크에서 간단한 응용 프로그램을 구현하고 확장하면서 유사성과 차이점을 비교합니다. Part 1에서는 전반적인 기사 범위를 정하고 앞으로 필요한 환경을 설정했습니다. 이번 Part 2에서는 각 프레임워크에서 간단한 응용 프로그램을 작성합니다.

Part 1에 서는 전반적인 기사 범위를 정하고 앞으로 필요한 환경을 설정했다. 이번 Part 2에서는 세 가지 프레임워크에서 각각 간단한 프로그램을 작성한다. 이어질 기사에서는 이번에 작성한 프로그램을 확장하고, 예외 상황을 살펴보고, Ajax를 추가하고, 외부 프로그램과 통합하는 등 다양한 모험이 기다린다.

이번 기사에서는 Blahg라는 예제 응용 프로그램을 세 가지 프레임워크에서 작성한다. 젠드 프레임워크(Zend Framework), 심포니(symfony), CakePHP에서 간단한 응용 프로그램을 구현하는 방식을 처음부터 단계적으로 살펴본다.

Part 1에서 각 프레임워크를 설치하고 기본 환경을 설정했다. 아직 하지 않았다면 지금 끝내기 바란다.

이 연재 기사에서는 독자들이 PHP와 응용 프로그램 설계, 데이터베이스 사용법에 어느 정도 익숙하다고 가정한다. 프레임워크를 사용한 경험은 없어도 좋으나, 배우겠다는 의욕은 필수다.



 UNIX 혹은 Linux 환경에서 작업을 하시는 분들이라면 VI라는 에디터를 자주 접하실 겁니다. 명령행 환경에서 이만큼 다양한 기능을 제공하는 에디터도 없을거라고 생각합니다.
 물론 FSF의 어떤분은 "VI는 짐승들의 에디터이아"라고 할 정도로 싫어하시는 분들도 있죠. VI파, 이맥스파가 나뉘어있기도 한데, 일단 제가 자주 사용하는 VI...가 아니라 VI와 거의 동일한 기능을 제공하는 VIM이라는 프로그램을 소개하려합니다.

 VIM은 향상된 VI라는 뜻의 "Vi IMproved"의 약자입니다. 저는 이 프로그램을 윈도우 XP에 설치해서 일반적인 개발/관리 업무에도 사용하곤 합니다. 이렇게 하지 않으면 VI 사용법을 잊어버릴것 같다는 두려움도 한 몫했구요. 정규식을 이용한 문자열 치환이라는 강력한 기능도 윈도우에서 VIM을 사용하는 이유중 하나입니다.

www.vim.org에 가시면 윈도우용 VIM을 다운받으실 수 있습니다.



윈도우에 설치하시면 일반적으로 유닉스 명령행 환경에서 사용하던 VIM과 X-Window에서 사용하시던 GUI 버전의 VIM까지 사용하 실 수 있습니다.

C:\> gvim  <= GUI 버전이 실행됩니다.

C:\> vim   <= 명령행 버전이 실행됩니다.

사용자 삽입 이미지

VIM의 GUI버전


사용자 삽입 이미지

VIM의 명령행 버전


 상용 소프트웨어를 대신해서 사용할 수 있는 공개 소프트웨어를 소개하고자 합니다. 물론 상용 소프트웨어에 비해서 기능에 제약이 있을 수 도 있고 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 기능에 이르기까지, 복잡한 프로그램 구현을 수월하게 만들어주는 기능이 많다.



 아~ 이번엔 리눅스 사용자를 위한 문서입니다. 리눅스 파일 시스템으로 많이 쓰고있는 ext3의 최신 버전인 ext4가 나왔네요. 까마득하게 모르고 있었는데, 이번에 IBM DeveloperWorks의 문서를 보고야 알았습니다. ^^;

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

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

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


ext4는 오랫동안 자리를 지켜온 리눅스(Linux®) 파일 시스템의 최신 버전이며, 직전 버전 만큼이나 중요하고 인기가 높으리라는 예상을 합니다. 리눅스 시스템 관리자로서, 여러분은 ext4의 장단점과 이주하기 위한 기본 절차를 숙지하고 있어야 합니다. 이 기사는 ext4를 채택할 시기, ext4를 위한 전통적인 파일 시스템 유지 관리 도구 활용법, 파일 시스템 성능을 최대로 이끌어내는 방법을 설명합니다.
 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) 기능을 제공합니다.

+ Recent posts