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

 

반응형

+ Recent posts