nginx conf에서 location 설정

nginx conf에서 location 설정

  • location = [PATH] (Exact matching)

[PATH]에 해당하는 경로만 적용. location이 이 경로와 매치가 되면 곧바로 검색을 중단하고 이 이하의 설정을 적용한다. 다른 경로 검색을 줄일 수 있기에 조금은 더 빨리 처리할 수 있다.

  • location [PATH] (Prefix matching)

[PATH]로 시작하는 경로들에 적용. 하지만 다른 경로를 검색하여 regex 매치가 발생하는 경로가 있다면 그 경로의 설정을 우선적으로 적용한다.

  • location ~ [PATH regex] (Regular express matching)

[PATH regex]의 규칙에 해당하는 경로들에 적용.

  • location ^~ [PATH regex] (Regular express matching)

[PATH regex]로 시작하고 regex 에 걸리는 경로들에 적용. 이 규칙에 해당되면 바로 탐색을 중단한다.

  • location ~* [PATH regex] (Regular express matching)

location이 [regex] 로 끝나는 것들에 적용. 다만 ^~가 더 높은 우선순위를 가진다.

우선선위 정리

  • Exact matching
  • Regular express matching

  • Prefix matching

 

제6차 Kodeveloper 고군분투기

jsoup을 이용한 파일 다운로드 (@msna)

지난 시간서 이어서 자동 동영상 다운로드에 대한 발표를 진행하셨다.
RSS피드를 이용한 자동 다운로드를 Transmission + FLEXGET를 통해 진행하셨고,
jsoup을 이용한 크롤링에 대해서 발표하셨다. 이 과정에서는 우선 사이트의 구조를 확인하고 크롤링을 하였고, 큰 구조를 확인한 뒤 세부구조를 확인하여,
대상을 타겟팅하여 크롤링을 진행하셨다.
몇 단계의 실패가 있었는데, 첫번째는 User Agent를 설정하지 않았던 부분, 그 다음은 본문화면에 대한 쿠키 설정의 누락, 그리고 마지막은 컨텐츠타입에 대한 설정 에러였다.
이것들을 해결하고 무사히 크롤링을 마칠 수 있었다고 한다.

그러나 결론은.. 위의 기능을 제공하는 기존 라이브러리가 있었기에, 그냥 기존의 라이브러리를 이용하자. 로 이어졌다.

키보드 (@fish)

각 종 키보드 종류에 대한 발표와, 키보드가 돌아가는 간단한 원리 그리고 소재 등에 대한 발표였다.

키보드 종류:

  • Rubber dome
    제일 흔하고 싼 키보드로 보통 회사에서 지급하는 키보드들이다. 노트북들도 대부분 이 종류다.
    키감은 그렇게 뛰어나지 않다. 보통은 키캡 밑에 플라스탁이 X자로 교차되면서 그 가운데 고무(안에 있는 스프링)을 누르는 방식으로 작동이 된다.
    최근 맥북은 이것이 X자가 아니라 V자로 교차되는 방식이라 키감에 불만을 표하는 유저도 상당수 있다고 한다.
    X자 형태로 제작하면 라이센스비가 들어서 이 부분의 지출을 줄이고자 하는 것이 이렇게 만든 이유라고 한다.
  • 기계식 스위치 (mechanical switch)
    금속끼리 부딪혀서 작동하는 원리의 키보드. 몇 가지 스위치 방식이 있는데 체리 스위치가 제일 많이 사용된다고 한다.
    한국 개발팀서는 이 방식의 키보드를 많이 사용하지만 일본에서는 그렇게 눈에 띄지 않는다고 한다.

키캡(keycaps)

  • ABS: 제일 흔한 플라스틱 저가형 소재. 시간 지나면 누래지는 키보드들이 이 키캡이다. 방염방지 약품이 자외선 쐬면 나타나는 현상이라고 한다.
  • PVS: ABS와 비슷한 흔한 저가형 소재.
  • PBT: 좋은소재. 다만 가격이 위 소재들의 1.5~2배라고 한다.
  • POM: 체리에서 쓰이는듯?

사이즈

  • 풀: 비개발자들이 가장 많이 사용하는 오른쪽에 숫자판까지 다 달려있는 흔한 키보드.
  • tenkeyless : 오른쪽 숫자판이 없는 형태의 키보드.
  • ISO VS ANSI: ISO는 엔터가 ㄱ자, ANSI는 일자
  • 그외에 75% 60% qwerty 사이즈가 있다고 한다.

DIY

키보드 DIY를 위해서 가장 필요한 부분은 인내, 용기, 돈, 돈, 그리고 돈! 이라고 한다.
3D 프린터로 키보드 튜닝은 추천하지 않으셨는데 이유로는 키캡이 거칠고 3D 프린터로 뽑기에는 크기가 너무 크다는 것이었다..
흔히 하는 방식중 하나로는 레이저커터로 아크릴잘라서 쌓는식이라고 한다.
부품은 cherry MX가 alps보다 구하기가 좀 더 쉽다고 한다.
키보드 펌웨어는 새로 짜기에는 재미없고 단순작업이라 그리 보람있는 일은 아니기에 그냥 기존에 있는거 쓰는게 낫다고 하신다.

Bingo

Azure를 이용하여, 그 중에서도 메시지 Queue를 이용하여 빙고게임을 구현하고자 하셨지만,
구현이 미완성이었다.

Incidents Management

라쿠텐에서의 장애 대응에 대한 간단한 발표를 하셨다. 언급해도 되는 부분인지 모르겠지만..
오류가 오면 오류알림이 Bot으로 도달하면 자동으로 티켓이 업데이트가 되고, 개발자는 그 티켓을 보고 대응한뒤 Bot에 상태를 업데이트하여 통지를 하면,
티켓이 자동으로 업데이트가 되는 식으로 작동한다고 한다.

2016년 그리고 2017년

2016년의 막이 내리고 2017년이 밝았다.
2017년부터는 주1회씩 블로그 포스팅을 하고자 한다. 일일커밋과 비슷한 느낌으로 개발 관련 포스팅을 하고자 한다. 아주 조금이지만 읽어주는 사람이 있고, 설사 읽어주는 이 없더라도 내 개인적인 개발에도 도움이 되리라 믿기 때문에 다른 것보다도 블로그 포스팅을 열심히 해보고자 한다.

2016년 회사일

FreakOut에 입사한지 일년이 조금 더 지났다.

아직도 광고에 관해서 모르는 것이 많고 많이 배워나가는 단계다.

~ 6월: LINE Ad Platform

상반기에는 우리 FreakOut의 자회사 MTBurn에 파견되어 LINE에 광고를 배포하기 위한 플랫폼 개발에 시간을 보냈다. MTBurn에서 개발된 SSP(Supply Side Platform) Hike에 LINE에 필요한 프로토콜을 추가하여 개발하고 이를 위해 Go언어를 배우고 써보는 좋은 기회가 되었다.

애초에 SSP를 개발할때는 OpenRTB에 충실한 프로토콜을 구현하고자 하였으나, LINE에 광고를 내보내게 되면서 변형된 프로토콜을 많이 구현하게 되었다.

FreakOut에서의 업무도 같이 처리하였는데, 우리의 DSP를 Hike와 연결하는 부분을 구현하였다.

~ 10월 Video Ad for LINE

Hike를 통해 LINE Ad Platform과 성공적으로 연결하고, 그 다음 업무는 LINE에 동영상 포멧의 광고를 배포하는 것이었다.

상당히 어려운 부분이 있었는데, 라인의 광고를 사진, 동영상에 상관없이 같은 spot id로 오게 되어 있는데, 사진과 동영상의 광고가격 책정이 다르기 때문에, 내부 경매를 할 시에 참조해야되는 인덱스를 따로 써야되는 문제가 있었다.

이는 인덱스를 두 번 읽어야하기 때문에 시간적으로 퍼포먼스가 상당히 안좋아지는 문제가 생겼다. 이 부분의 해결을 위해서 단순히 연결하는 부분 이외에 우리의 DSP가 갖고 있던 여러가지 문제점들을 최적화하는데 많은 시간을 할애하였다.

다행히 시간을 줄이는데 성공하였고, 완전 만족스럽지는 않지만 실제로 배포를 하기에는 문제가 없는 수준까지는 만들었다. 앞으로 이 부분은 인프라 증설로 해결하지 않을까 생각된다.

~ 12월 Demographic targeting

LINE에 광고를 배포하게 되면서, LINE의 Demographic 정보(연령대, 성별)를 로그에 축적할수 있게 되었다. 이를 LINE면뿐만 아니라 다른 면에도 활용해보기 위한 프로젝트가 다음 업무였다.

우리 회사의 DMP에 audience_id를 기반으로 설정해놓은 segment로 Demographic정보를 추측하는 것이 주요 내용이었다. 단순히 Naive bayes를 사용하여 예측해봤는데 생각보다는 나쁘지 않았다. 예측 결과를 성별과 연령대를 따로 내는 것보다 [성별-연령대]를 묶어서 예측하는 것이 결과가 더 좋았다.

그리 복잡하고 어려운 프로젝트는 아니었지만, 그래도 하둡쪽의 소스코드도 많이 보게 되고, 회사에 들어와서 간단하지만 처음으로 해본 머신러닝 관련 프로젝트여서 상당히 뿌듯하게 한 프로젝트다.

업부면에서 느낀점

손으로 움직이기 전에 설계와 문서 정리부터..

내가 성격이 상당히 급한 편이라 개발자로서는 치명적인 약점인데, 이것을 여실히 느낀 한 해였다. 가장 많이 느꼈던 점은 코드리뷰를 내고 나서 다른 사람들에 비해서 상당히 많은 코멘트들과 리뷰를 받게 되는데, 한두번이 아니었기 때문에 이에 대해 생각을 해봤다.

나의 역량이 모자란 측면도 있었겠지만, 내가 할 수 있는 우선적인 일은 코딩을 시작하기 전에 설계부분에 좀 더 신경을 쓰고 문서 정리를 확실히 해놓는 습관을 들이는 것이다. 문서 정리는 이번 년도에 가장 신경 쓴 부분이고 매니저도 요구한 부분이었고, 매니저의 평가는 괜찮은 편이었다. 하지만 내 스스로 만족스러운 코드를 작성하기 위해서는 더욱 이부분에 충실해야하고, 더 많은 부분 세세한 부분들에 대해서 생각해야겠다고 느꼈다.

그 외 활동

외부 발표

큰 컨퍼런스는 아니고 매월하는 스터디긴하지만 외부에서 해본 첫 발표라 서툴기는 하고 어찌보면 아무것도 아닐수도 있지만 참 뜻깊게 생각한 발표다.

Cousera – Introduction to Natural Language Processing