2016-04-17

[번역] 루멘의 등장, 테일러와 인터뷰

원문: https://laravel-news.com/2015/04/lumen/

지난 2015년 4월 라라벨에서 루멘(lumen)이라는 경량 프레임워크 (micro-framework) 를 발표했다.
루멘은 경량 프레임워크 중에서도 후발 주자에 속하는 편이다. 대표적인 경량 프레임워크에는 2011년에 출시한 사일렉스(Silex)나 슬림(slim) 등이 있었다. 아무래도 루멘 제작자가 슬림이나 사일렉스를 사용해보고서 만든 프레임워크라서 비슷한 점이 많다. 그래서 가장 최근에 출시한 루멘에 대해서 알아봤다. 여타 프레임워크와 마찬가지로 단점보다는 장점이 더 많이 보이는 프레임워크다. 많은 장점 중 하나는 라라벨 계열이기 때문에 사용하다가 라라벨로 바로 업그레이드 할 수 있다는 점이다. 또한 루멘 측 발표에 따르면 slim3이나 silex보다 속도 면에서 우수하다고 한다. 과연 사실인지는 더 파헤져 봐야할 내용인 것 같다. 일단 루멘은 라라벨이라는 브랜드를 내세운 것은 확실하다. 2016년 2월 현재, 5.2.0 버전까지 릴리즈 되어 있다.

사실은 경량 프레임워크가 나온 전반적인 배경을 알고 싶었지만 생각보다 찾기가 어려웠다. 대신 발표문이나 인터뷰를 번역해보는 것이 더 이해하기가 쉬울 것 같아서 작성해보았다. 언제나 그렇듯 좋은 번역글은 아니다.



루멘(Lumen)은 빛처럼 빠른 마이크로 서비스와 API를 위해 테일러 오트웰이 구축한 새로운 PHP 프레임워크 브랜드이다. 속도가 중요하다면 루멘은 아주 좋은 선택일 것이다.

이 프레임워크의 뛰어난 점 중 하나는 여러분이 사랑하는 엘로퀀트, 캐싱, 큐, 검증, 라우팅, 미들웨어, 강력한 라라벨 서비스 컨데이너인 라라벨의 기능을 계속 사용할 수 있다는 것이다. 또한 여러분이 루멘으로 프로젝트를 시작한 후에 더 많은 기능이 필요하다면 완전한 기능을 갖춘 라라벨로 변경하는 것은 간단하다.

비하인드 스토리를 더 알기 위해 테일러와 프로젝트에 대해 짧은 인터뷰를 했다. 

루멘을 만들기로 한 계기가 무엇인가?

Envoyer를 구축할 때 나는 이를 지원하는 2개의 작은 "마이크로 서비스"를 썼다. 그 중 하나는 배포 후에 상태를 제크하는 것이다. 그것은 디지털오션* 쪽 3군데에 있는 작은 애플리케이션이다. 애플리케이션을 위해 Silex를 사용했지만 PDO 데이터베이스 연결을 어떻게 설정 하는지 다시 조사 했다. 나는 그저 뛰어난 기능인 DB::update를 사용할 수 있는 아주 작은 라라벨이 설치 되었으면 좋겠다고 생각했다.

* 역주: 디지털 오션은 클라우드 호스팅 서비스 업체 이름이다.

다른 Envoyer 서비스는 "heartbeat" 크론 모니터링이다. 여러 URL이 매 수백분의 1초마다 호출될 수 있기 때문에 수많은 크론 일정이 아니라 하더라도 나는 매우 빠른 것이 필요했다. 그래서 나는 Slim 서비스를 사용했다. 그러나 또 다시 나는 데이터 베이스 연결 뿐 아니라 좀 더 강력한 에러 핸들링을 설치했다. 나는 이번에도 작은 라라벨 "빛" 설치를 원했다.

이 부분이 루멘의 아이디어가 탄생한 부분이다. 충분하게 빠른 방법을 찾기 위해 프레임 워크 구축을 서너번 반복했다. 나는 좋은 평가를 받고 있는 Silex와 Slim보다 빠르다고 할 수 있을 때까지 루멘을 릴리즈 하지 않으려 했다. 나는 대체할 수 있는 선택보다 느린 것을 발표하고 싶지 않았다.

루멘이라는 이름은 어디서 왔는가?

루멘은 라라벨 사용 컴포넌트 "비추다(Illuminate, 이하 일루미네이트)"에서 따왔다. 일루미네이트 컴포넌트는 데이터 베이스, 캐시, 큐 등과 같은 라라벨 프레임워크의 한 부분이다. 그래서 나는 처음에 이름으로써 루멘이 듣기 좋다고 생각했다. 라라벨 같이 세개 대신 두개의 음절 뿐이다. 미친 소리 처럼 들리겠지만 나는 단어를 말할 때 떠오르는 그런 종류와 정신적 이미지에 대해 생각한다. 물론 "빛"을 기반으로한 계보는 잇는다.

라라벨로 바로 업그레이드 할 수 있다는 것은 엄청나다. 이 부분은 처음부터 계획되었나?

그렇다, 그리고 실제로 전체 라라벨 프레임워크를 구성하는 일루미네이터 컴포넌트를 사용한 자연적인 결과이다. 우리가 그 컴포넌트를 사용함으로써 정말 멋진 업그레이드 이야기를 제공하는 것이 쉬웠고 다른 경량 프레임워크 솔루션에는 없는 느낌이었다. 이제 라라벨 생태계에 "공식적"으로 풀스택 프레임워크와 경량 프레임워크 둘 다 포함함으로써 우리는 정말 멋진 업그레이드 이야기를 제공할 수 있다.

어떻게 멋진 기능들을 유지하면서 빠른 프레임워크를 얻을 수 있었나?

또 일루미네이트 컴포넌트의 엄청난 편의성 때문이다. 기본적으로 내가 필요한 모든 것은 풀스택 프레임워크가 결합한 것과 다른 방법으로 "결합 했다". 이는 시스템 로딩 과정에서 최고의 유연성 대신에 루멘의 최고의 속도를 선택 한다는 것을 의미한다. 실제 루멘 프레임워크 저장소는 아마 열 댓개의 파일일 것이다. 나머지는 일루미네이트의 컴포넌트로 대신한다. 이 사실은 정말로 해결 방법을 찾기 위해 서너번 반복했다고 하더라도 여전히 매우 강력한 기능을 제공하면서 매우 빠르게 프레임워크의 기능을 구체화 할 수 있도록 해주었다.

루멘은 큰 성공임에 틀림 없고 나는 여러분이 라라벨로 쉽게 변경할 수 있는 방법은 루멘 뿐 아니라 모든 라라벨 생태계를 위한 거대한 장기적인 이익이라고 생각한다. 루멘에 대한 모든 최신 소식을 보고 싶으면 주간 뉴스 레터에 가입하라. 
continue reading [번역] 루멘의 등장, 테일러와 인터뷰
Share This:    Facebook Twitter

리눅스 압축의 의미와 명령어/옵션, 업로드/다운로드 하기

멀리 여행을 간다고 생각해보자.
여행 가기 때문에 필요한 물품들이 많을 것이다. 옷가지는 압축 팩에 담아서 가방에 차곡차곡 쌓고 세면도구도 파우치에 넣어서 담고 기타 필요한 물품을 캐리어에 담는다. 여러 물품들을 하나의 캐리어에 담는 행위를 바로 '압축'이라고 한다. 윈도우즈에서는 압축이라는 한 단어로 정의할 수 있지만 리눅스에서는 크게 2가지 종류의 압축이 있다. 하나는 우리가 흔히 아는 용량을 줄여주는 '실제 압축', 또 하나는 여러 파일들을 한데 모아주는 '모음 압축'이다. '실제 압축' 같은 경우에는 옷가지를 압축팩에 담고 세면도구는 파우치에 담아서 캐리어에 차곡 차곡 넣는 행위이고 '모음 압축' 같은 경우에는 원하는 물품을 캐리어에 담기만 하는 것이다.

참고: '실제 압축'이나 '모음 압축'은 이해를 돕기 위해 임의로 만들어낸 단어이다.

리눅스 압축/해제

TAR, GZIP, BZIP2 프로그램을 통해서 압축할 수 있다. 가장 많이 사용하는 tar 방식은 파일을 하나로 관리하기 위해서 모으는 기술이다. 문자 그대로 용량을 줄이는 '압축'과는 조금 다르다. 그래서 tar로 진행했을 때 오히려 용량이 늘어나기도 한다. 하지만 압축 시간과 푸는 시간이 짧으므로 여러 파일을 한꺼번에 관리할 때 많이 쓰인다. gzip 단독으로도 쓰이기도 하고 bzip2 단독으로도 쓰이기도 하는데, 여기에서는 가장 많이 사용하는 tar 방식에 대해서 소개 하려고 한다.

명령어

압축 해제

]$ tar [옵션] {파일명}
  • -x: 압축 해제

압축

]$ tar [옵션] {파일명} {압축 대상 파일명}
  • -c: 압축 - 파일을 묶어서 새로운 파일 생성

공통 옵션

  • -z: gzip으로 압축/해제
  • -j: bzip2로 압축/해제
  • -v: 압축 진행과정을 보여줌
  • -p: 퍼미션(Permission) 유지
  • -f: 파일 이름을 지정

옵션 사용 예시

tar만 사용할 때는 오히려 압축 용량이 늘어날 수도 있기 때문에 gzip이나 bzip2 프로그램을 이용해서 이중으로 진행하기도 한다. 파일 결과는 사용한 프로그램에 따라서 .tgz.tar.gz 또는 .tar.bz2 로 나타난다. 압축 또는 해제 할 때 옵션들을 보통 섞어서 쓰는데 프로그램에 따른 옵션 사용은 다음과 같다.

tar + gzip(.gz.tgz)으로 압축/해제 할 경우 -z 옵션을 추가하여 진행한다.
  • -cvzf: 압축 해제
  • -xvzf: 압축
tar -cvzf test.tar.gz

tar + bzip2(.bz2)으로 압축/해제 할 경우 -j 옵션을 추가하여 진행한다.
  • -cvjf: 압축 해제
  • -xvjf: 압축
tar -cvjf test.tar.bz2

위의 옵션에서 -p를 더해서 쓰기도 한다.

업로드 & 다운로드

winscp나 SecureCRT, XShell같은 윈도우 상에서 리눅스 시스템을 이용할 경우 명령어를 통해서 업/다운로드를 실행할 수 있다.

다운로드: 리눅스 시스템 => 내 PC
sz {파일명}

업로드: 내 PC => 리눅스 시스템
rz {파일명}



리눅스 압축에 대해 더 많은 내용을 알고 싶다면, 아래 URL을 참고 하면 더 많은 정보를 얻을 수 있다.

참고:

continue reading 리눅스 압축의 의미와 명령어/옵션, 업로드/다운로드 하기
Share This:    Facebook Twitter