Markdown(마크다운)을 웹페이지로 만들어주는 Markserv

Jekyll을 사용해서 글을 작성하는데, Generating 하는 시간이 너무 오래 걸려서 글 작성에 집중 하기 어려웠다. 그래서 레이아웃이나 플러그인에 의해 Generating 하는 것 없이 순수하게 Markdown 변환만 하고 싶었다.

요구조건:

  • Markdown 파일을 웹 서비스에서 html 파일 제공
  • 디렉토리 탐색 용이. 여러 파일 추가하고, 찾기 쉬워야 함.
  • Live reload
  • npm으로 설치 가능

npm에서 markserv라는 적당한 모듈 찾았다.

사용방법은 간단하다.

이렇게 하면 자동으로 브라우저가 열린다. 그리고 수정할 때 Live reload가 된다.

이제 Jekyll은 사이트에 배포할 때만 빌드하면 될 것 같다.

브라우저는 내가 직접 띄우고, 포트도 8484번으로 사용할 것이라서 최종 커맨드를 다음과 같이 했다.

Postgresql 기본 사용 방법과 자주사용하는 쿼리 모음

Postgresql을 사용하면서 자주 사용하거나 알면 좋을만한 내용을 정리했다.

CLI 도구 psql

내 PC에서 연결 가능한 서버는 pgAdmin을 쓰겠지만, 그렇지 않다면 서버에서 psql을 사용해야한다.

접속은 다음과 같은 식으로 할 수 있다.

데이터베이스 조회

스키마 조회

테이블 조회

기타

모르는 영어 단어, Idiom 정리

영어로 된 글을 보다가 모르고, 헤깔리는 단어나 idiom을 기록했다.

단어

Ramp-Up

명사.

jMeter를 사용하다가 본 Phrase다.

Meririam-Webster에서는 Buildup, Increase라고 정의되어 있다. 네이버 어학사전에서는 “상승”으로 수집한 내용도 있다.

creation

역시 jMeter에서 본 Phrase다.

이게 자연스러울 것 같다.

기타

  • ultimate : 최후의, 최고의
  • labour : (육체적인) 노동
  • intuit : (격식) 직감[직관]하다
  • Subsequently : 그 뒤에, 나중에
  • Gamification : 게임과 연관된 개념을 활용하는 것
  • tease : 집적거리다. 놀리다.
  • exploit : 이용하다, 활용하다
  • gracefully : 기품있게, 우아하게, 정중하게, 적절하게
  • pants-on-head : 강렬하게, 격하게, 열정적으로, 열심히, 몹시
  • cohort : 지지자
  • abundantly : 아주 분명하게
  • marooned : 남겨진, 고립된
  • integral : 필수적인
  • forge : 구축하다
  • veritable : 진정한
  • on the fly : 즉시
  • ongoing : 계속 진행중인(명사 앞에 씀)
  • extraneous : (특정 상황이나 주제와) 관련 없는
  • shower thought : cool
  • overkill : 과잉

약어

  • IMO : in my opinion
  • PFA : Please find attached ~ 첨부된(동봉된) ~을 확인해 주십시오.

Idiom

작성 예정

JMETER를 사용하면서 알게 된 내용과 옵션의 의미 정리

JMeter를 사용해서 사이트를 테스트하면서 작성한 내용이다.

Redirect Limit 변경하기

Jmeter는 기본적으로 1회에 리다이렉트가 다섯 번 이상 발생하면, 다음과 같은 에러를 출력하면서 종료가 된다.

이것은 설정파일을 변경해서 해결할 수 있다. 5회에서 100회로 바꿨다.

jmeter가 실행파일과 같은 디렉토리에서 httpclient.parameters:

HTTP 쿠키 사용하기

스레드의 한 주기에 Redirect가 여러번 발생할 수 있는 테스트를 진행해야 했다. 여러 요청을 해야하는 상황인데, 서버에서 쿠키를 생성해도 각 요청마다 새로운 세션으로 인식해서 테스트에 문제가 있었다. 즉, 이런 상태였다.

  • Thread1-1
    • Req 1 (Session 1)
    • (302) Req 2 (Session 2)
    • (302) Req 3 (Session 3)
    • (302) Req 4 (Session 4)
  • Thread2-1
    • Req 1 (Session 5)
    • (302) Req 2 (Session 6)

내가 원하는 것은:

  • Thread1-1
    • Req 1 (Session 1)
    • Req 2 (Session 1)
    • Req 3 (Session 1)
    • Req 4 (Session 1)
  • Thread2-1
    • Req 1 (Session 2)
    • Req 2 (Session 2)

다음과 같은 구조로 테스트 플랜을 구성해서 해결했다.

  • Thread Group
    • HTTP Request
      • HTTP Cookie Manager (Clear cookies each iteration?옵션 체크)

주요 설정의 의미

Thread Group

설정 의미
Number of Threads (users) 동시 요청하는 스레드 수
Ramp-Up Period (in seconds) 상승 시간 (초 단위로). 한 주기가 어느 정도 간격을 두고 실행될지를 정하는 옵션.
Loop Count 얼마나 반복할지
Delay Thread creation until needed 필요할 때까지 지연 스레드
Scheduler 시작 시간, 종료시간, 기간과 시작시 지연을 설정할 수 있다.

HTTP Request

설정 의미
Redirect Automatically Redirect가 http 프로토콜스택에 의해 처리됨.
Follow Redirects Redirect가 JMeter에 의해 처리됨.

서브라임텍스트 특정 확장자에 Syntax 지정하기(PlantUML)

다이어그램을 그리기 위해 PlantUML을 사용하고 있다. PlantUML 파일을 수정할 때, 실시간으로 그려진 다이어그램을 볼 수 있다는 장점 때문에 평소에 Atom 에디터를 사용했었다. Atom을 사용하는 이유는 이것밖에 없었다. 그래서 가능하면 이 작업도 서브라임텍스트로 할 수 있었으면 좋겠다고 생각했다.

Atom을 사용하기 전에 서브라임에서 PlantUML 문법 지원을 위해 플러그인을 하나 사용한 적이 있다. 문법 하이라이트는 잘 지원하지만 내부적으로 plantuml java 프로세스가 실행하고, 저장할 때마다 새로운 이미지 파일을 계속 생성하는 방식이었다. 이런 점 때문에, Atom 에디터로 넘어가게 됐었다.

“Node.js 서버가 PlantUML 파일을 이미지 파일로 제공하는 건 어떨까?”란 생각을 했고, 그렇다면 에디터에서 파일을 수정하고, 브라우저로 확인하면 되므로, 파일이 생성되지 않아도 됐다.

그런데 기본 확장자가 wsd로 되어 있다. Atom에서는 puml을 사용해서 서브라임에서 이 파일들을 열면 Plain text로 나타난다. 확장자를 바꾸면 되지만, wsd보다는 puml이 plantuml이라는 것을 더 잘 표현하는 것 같아서 puml을 그대로 사용하고 싶었다.

방법은 플러그인의 설정파일만 변경하면 된다. 경로는 다음과 같다. 다른 플러그인도 비슷한 형태일 것으로 보인다.

puml이라고 되어 있는 부분을 추가하면 된다.

diagram.tmLanguage.xml:

그리고 에디터를 더 빠르게 사용하기 위해서 서브라임텍스트에서 기본적이고, 필수적인 기능(Lint, Syntax highlight)을 제외하고 플러그인 사용하는 부분을 최대한 안 쓰려 노력하고 있다.

[보라매 맛집] 돈까스 참 잘하는 집 – 참잘하는 돈가스, 동경 정식

저녁을 먹으러 돈까스 참 잘하는 집에 왔다.

참잘하는돈가스_입구.JPG

토요일 8시가 다 된 시간이라 영업 끝났는지 확인하고 들어갔다.

참잘하는돈가스_실내-0001.JPG

우리 다음에 온 사람들은 주문이 마감돼서 그냥 돌아갔다.

참잘하는돈가스_실내-0002.JPG

항상 시키던대로 참 잘하는 돈가스와 동경 정식을 시켰다.

참잘하는돈가스_메뉴판-0001.JPG

날씨가 쌀쌀해서 정식에는 우동을 시켰다.

참잘하는돈가스_메뉴판-0002.JPG

우동 또는 모밀이 따라나오는 정식.

참잘하는돈가스_메뉴판-0003.JPG

돈까스 메뉴.

참잘하는돈가스_메뉴판-0004.JPG

돈까스가 느끼하니까 콜라는 셀프로 가져왔다.

참잘하는돈가스_소스,콜라,기타-0001.JPG

샐러드 소스.

참잘하는돈가스_소스,콜라,기타-0002.JPG 참잘하는돈가스_소스,콜라,기타-0003.JPG

오뚜기 스프.

참잘하는돈가스_소스,콜라,기타-0004.JPG

동경 정식 접사.

참잘하는돈가스_동경정식-0001.JPG

동경 정식 항공샷.

참잘하는돈가스_동경정식-0002.JPG

깨는 곱게 빻아서 겨자 넣고, 돈가스 소스와 잘 섞는다.

참잘하는돈가스_동경정식-0003.JPG

소스가 뿌려져 나오는 참잘하는 돈가스.

참잘하는돈가스_참잘하는돈가스-0001.JPG 참잘하는돈가스_참잘하는돈가스-0002.JPG

가격은?

참잘하는돈가스_가격.JPG

Ruby에서 Bundler 사용하기

Bundler

Bundler는 정확히 필요한 gem과 그 gem의 버전을 설치하고, 추적하는 것으로 일관성 있는 Ruby 프로젝트를 제공하는 도구다. 그 기본적인 사용법에 대해 알아보겠다.

설치방법 :

이제 Gemfile을 프로젝트 루트 디렉토리에 만들어야한다.

다음 Bundler 커맨드를 사용할 수 있다.

gem 커맨드

다양한 gem을 여기서 찾을 수 있다.

[보라매 맛집] 백미당 #2 – 밀크 티라미수, 두유 소프트 아이스크림

아웃백 갔다가 집에 오는 길에 백미당에 들렀다.

백미당_실내-0001.JPG 백미당_실내-0002.JPG 백미당_실내-0003.JPG 백미당_실내-0004.JPG

오늘은 지난번과 다른 걸 먹어야겠다. 하나는 1964 수제 밀크 티라미수.

백미당_메뉴-0001.JPG

다른 하나는 직접 짠 두유 소프트 아이스크림.

백미당_메뉴-0002.JPG

두유 아이스크림은 우유 아이스크림보다 더 고소했다. 기본 우유 아이스크림이 더 괜찮은 것 같다.

백미당_아이스크림-0001.JPG

밀크 티라미수는 밑에 커피를 적신 핑거 쿠키 같은 거 위에 우유 아이스크림을 올려놨다. 쿠키가 너무 달아서 아이스크림 맛을 못 느꼈다.

백미당_아이스크림-0002.JPG

역시 백미당은 우유 아이스크림이 제일 괜찮은 것 같다.

[보라매 맛집] 서브웨이 – 이탈리안 비엠티, 로스트 치킨

샐러드를 포장하러 서브웨이에 갔다.

서브웨이_실내-0002.JPG

실내에는 먹을 수 있는 테이블이 2개가 있다.

서브웨이_실내-0001.JPG

왼쪽에서 오른쪽으로 가면서 주문한다.

직원 : “주문하시겠어요?”

나 : “이탈리안 비엠티 샐러드, 로스트 치킨 샐러드요.”

직원 : “야채 빼는거 있으세요?”

나 : “아뇨”

직원 : “소스 뭘로하시겠어요?”

나 : “하나는 렌치, 하나는 싸우스웨스트, 따로 용기에 담아주세요.”

서브웨이_메뉴-0001.JPG 서브웨이_메뉴-0002.JPG 서브웨이_메뉴-0003.JPG

야채(양상추, 올리브, 피클, 할라피뇨, 양파, 오이, 피망)와 치즈는 기본적으로 들어가고, 메뉴에 따라 햄이나 치킨이 들어간다.

서브웨이_샐러드-0001.JPG

로스트 치킨은 약간 짜다.

서브웨이_샐러드-0002.JPG

다이어트를 위해서 베지 샐러드에 소스 없이 먹어야 되는데, 그러면 너무 맛없을거 같다.

[보라매 맛집] 아웃백 런치 – 서로인 스테이크, 투움바 파스타

보라매 공원에 산책을 하고, 점심을 먹으러 아웃백에 갔다.

농심을 지나고,

아웃백_입구-0005.JPG

SK planet 건물을 지나고,

아웃백_입구-0004.JPG

아웃백_입구-0003.JPG

아웃백이 멀찌감치 보인다.

아웃백_입구.JPG

계단 이용이 불편한 분들은 엘리베이터를 이용할 수 있다.

아웃백_입구-0002.JPG 아웃백_입구-0001.JPG

어두운 실내.

아웃백_실내-0001.JPG 아웃백_실내-0002.JPG

이른시간이라서 사람이 별로 없다.

아웃백_실내-0003.JPG 아웃백_실내-0004.JPG 아웃백_실내.JPG

점심이니까 런치세트 2인으로 정했고, 메뉴판을 보면 어떤 메뉴를 할지 고민을 했다.

런치 시간은 11시 ~ 5시

아웃백_메뉴-0001.JPG

스테이크 세트 메뉴도 있다.

아웃백_메뉴-0002.JPG

고기 굽기도 그림으로 보여준다. 나는 미디움을 좋아한다.

아웃백_메뉴-0003.JPG

달링 포인트 스트립 포 원, 퀸즈랜드 립아이 포 투

아웃백_메뉴-0004.JPG

로얄 빅토리아 휠렛

아웃백_메뉴-0005.JPG

하나는 아웃백 스페셜 서로인을 선택했다. 사이드 메뉴는 더운 야채모듬으로.

아웃백_메뉴-0006.JPG

베스트 메뉴 폭립과 카카두 그릴러

아웃백_메뉴-0007.JPG

오지 치즈 후라이즈 감자밖에 없는데, 비싼거 같다. 그런데 맛있어 보인다.

아웃백_메뉴-0008.JPG

레인지랜드 립레츠, 크리스피 쿠카부라 윙. 이름이 어렵다.

아웃백_메뉴-0009.JPG

샐러드.

아웃백_메뉴-0010.JPG

샐러드 드레싱.

아웃백_메뉴-0011.JPG

다른 메뉴로 파스타를 시켜야겠다.

아웃백_메뉴-0012.JPG

디저트

아웃백_메뉴-0013.JPG

와인과 음료

아웃백_메뉴-0014.JPG

어떤 식당이든 키즈 메뉴가 땡긴다.

아웃백_메뉴-0015.JPG

스테이크 & 라이스 콤보 세트와 스마트 초이스 세트.

아웃백_메뉴-0016.JPG

투움바 파스타가 인기 있는 메뉴라고 해서 나머지 메뉴로 정했다. 투움바 안심은 스테이크가 있어서 안심 없는 파스타로 시켰다.

아웃백_메뉴-0017.JPG 아웃백_메뉴-0018.JPG 아웃백_메뉴-0019.JPG

런치세트에 기본으로 나오는 음료로 망고 에이드, 자몽 에이드를 선택했다. 이걸 다 마시면 탄산음료로 리필해준다.

1000원을 추가하면 과일주스로 변경할 수 있다.

아웃백_주스-0001.JPG 아웃백_주스-0002.JPG

런치세트에 기본으로 스프를 선택할 수 있는데, 머시룸 스프를 시켰다.

아웃백_스프.JPG

나머지 스프는 1,400원을 추가해서 샐러드로 변경했다.

그리고 2,900원을 추가하면 치킨텐더 1조각이 추가된 치킨샐러드로 변경할 수 있다.

아웃백_샐러드.JPG

식전빵에는 기본으로 허니버터가 나온다.

아웃백_식전빵-0001.JPG

추가로 블루치즈도 달라고 했다. 초코와 라즈베리도 추가할 수 있다.

아웃백_식전빵-0002.JPG

빵도 포장해달고 했다. 빵 포장하는데 추가요금은 없고, 허니버터도 넣어준다.

아웃백_빵.JPG

투움바 파스타.

아웃백_파스타-0001.JPG

매운 맛이 아주 약하게 난다. 일반 크림 파스타와 미묘하게 다르다.

아웃백_파스타-0002.JPG

오래 절이지 않은 싱싱한 피클.

아웃백_피클.JPG

서로인 스테이크. 옆에 더운 야채와 구운 고구마.

아웃백_스테이크-0001.JPG

소스는 보통 스테이크 소스.

아웃백_스테이크-0002.JPG

고구마에 녹는 버터까지는 좋은데, 계피맛를 좋아하지 않아서 별로였다.

아웃백_스테이크-0003.JPG

스테이크가 질겨서 잘 썰리지 않았다. 먹어보니 뻑뻑했다. 스테이크 선택은 미스였다. 다음에는 안심 종류를 먹어봐야겠다.

아웃백_스테이크-0004.JPG

카톡 플러스 친구하면 이벤트할 때 쿠폰을 받을 수 있다.

아웃백_가격.JPG

총 결제금액 37,483원
12345 할인쿠폰 12,345원
T멤버쉽 1,972원