NginX(원글: NGINX as a web server)

  • C10K 이슈를 아파치로 해결하기 보다는 이벤트 드리븐, 비동기 구조로 해결해 보고자 하는 시도
  • 러시아 개발자 Igor Sysoev에 의해 시작 2004년
  • 다양한 기능: 리버스 프록시, 로드 밸런스, HTTP 캐시, 메일 프록시
  • 설계시 방점
    • 고성능: 빠른 속도
    • 낮은 리소스 사용량: 메모리 효율
    • 동시성(concurrency) 높게
  • 아파치는 prefork 모드로 설정: 설정에 프로세스 생성갯수를 두고 미리 프로세스를 생성한 다음, 특정 시점에 단일 요청을 프로세스 하나가 전담하는 구조. 
  • NginX는 비동기로 요청을 처리. 단일 프로세스가 동시에 여러개의 요청을 처리. 프로세스가 사용할 수 있는 시스템 리소스에 의존. 이런 구조를 만들면서 PHP류의 서버사이드 프로그래밍 언어를 프로세스에 넣을 수 없게 됨. 동적 콘텐츠를 생성하는 요청을 다루기 위해서는 PHJP-FPM(FastCGI 프로세스 관리자) 같은 별도 프로세스를 반드시 관리해야 하고, NginX는 클라이언트에게 다시 리버스 프록시 역할을 수행하게 하는 구조로 짤 수 밖에 없음. 반대로 아파치는 리소스를 더 많이 사용하기는 하지만 스크립트 언어를 더 빨리 실행할 수 있는 구조를 가지고 있음.
  • NginX는 인입 요청을 URI 위치로 해석하고, 아파치는 파일시스템 위치로 해석. URI로 해석하다 보니 웹서버 기능 뿐만 아니라 로드 밸런서 역할이나 메일 서버, HTTP 캐시로 활용이 가능해 졌다.
  • 글쓴이는 정적파일을 서빙하는 용로도 NGinxX를 사용하고(리버스 프록시 모드로) 아파치는 동적 콘텐츠 용도로 서비스 하는 구조를 제안. 개인적으로는 반대 구성을 사용해 왔었는데, 위 내용을 기반으로 보면 이 제안이 좀 더 합리적인 구성 같아 보임.

 

HTTP Toolkit

  • https://httptoolkit.tech/      
  • HTTP(S) 통신을 가로채서 볼 수 있고, 엔드포인트 목업을 할 수 있는 툴
  • PostMan이나 피들러 대체할 수 있을 것으로 보임.
  • 무료 버전과 프로버전으로 나뉨.
  • 프로버전은 HTTP 모킹이 좀 더 다양하게 지원, 프록시 8000번으로 동작
  • 관련 오픈소스: https://github.com/httptoolkit/mockttp

 

애자일 안한 이야기

  • 설계 활동으로서의 코딩, 
  • 사업과 개발의 밀착도
  • 팀이 정말 팀인가? 유용한 소프트웨어를 만들어 내기 위한 조직 구조인가? 업무 목표와 KPI  등
  • 자율적 팀: 목적은 알려주고(Why), 해법은 같이 논의하고(How), 구체화 방법(What)은 알아서
  • Incremental < Iterative < evolutionary
  • 매번 의미있는 가치를 고객에게 전달하자. 일을 최소한의 의미있는 단위로 만드는 연습
  • 우선순위가 바뀌어 지금하는 일이 중단되어도 버려지는 작업을 최소화하자
  • 일이 일을 만들게 하지 말자. 딱 필요한 만큼 하자.
  • 소프트웨어 개발의 더 나은 방법을 찾아가는 고민이 중요

프리 사운드

블록체인 학습 자료

  • 우선 링크 공유: 링크
  • 고대 정보보호대학원 김승주 교수 강의 자료. 이건 따로 정리해 보자

디자인 시스템

리얼월드 스튜디오 디자인 시스템 제작기: https://medium.com/uniquegood/%EC%9A%B0%EB%8B%B9%ED%83%95%ED%83%95-%EB%A6%AC%EC%96%BC%EC%9B%94%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%A0%9C%EC%9E%91%EA%B8%B0-1%ED%83%84-ffaac9cd5564

 

반응형

에픽게임즈는 자사 게임 스토어의 공개버전을 트렐로(Trello)로 공개하고 있다.

누구나 접근가능한데, 보면서 몇가지 배울 점들이 있다.

가장 먼저 배울점은 어쨌든 우선순위를 계속 조정하면서도 자신들이 만들고 있는 제품의 로드맵을 공개한다는 점이다. 대부분의 기업들은 어떤 멋진 기능을 기획해서 만들고 있을지라도 실제 완성될 때까지는 이런 기능을 만들고 있어라는 점을 공개하지 않는 것이 일반적이다. 하지만 에픽은 실제 사용자들에게 적극적으로 공개하고 있고, 이에 대한 링크를 자사 런처에 연결해 두었다.

 

https://trello.com/b/GXLc34hk/epic-games-store-roadmap

 

그리고 카테고리의 구분이다.

에픽은 크게 4개의 그룹으로 기능을 구분한다. : 최근 배포된 기능, 다음 배포될 기능, 향후 개발항목, 기존 릴리즈 이력

즉, 기존, 이번, 다음, 나중으로 구분해서 작업 일감을 계속 정리하는 것이다.

이렇게 정리를 하다보면 에픽의 방향성에 대해 개발자나 사용자 모두 공감대가 생성될 수 있을 것이다.

 

 

셋째 레이블 색상의 이용이다.

색상을 통해 다음 배포 수정항목인지, 알려진 문제인지, 코어 플랫폼인지, 사용자의 삶을 증진시키는 (UX 증진) 기능인지, 진행중인 것인지 등을 구분한다. 색상으로 레이블을 달아두다 보니 상세 설명을 클릭하지 않더라도 어떤 카테고리에 속하는 개선 사항인지를 알 수 있다.

계획해서 실천한다는 점... 소통한다는 점이 에픽게임즈의 가장 큰 매력 포인트중 하나가 아닐까 싶다.

반응형

+ Recent posts