일반적인 서버 프로그래밍을 구현할 때 REST API 구축을 많이 한다. Stateless Protocol로 구현한다는 말을 자주 쓰는데 의미를 찾아보니 다음과 같다 무상태 프로토콜, 즉 이전 요청과 각각 무관한 요청을 독립적으로 처리한다는 의미이다. 즉 서버가 복수의 요청 시간대에 각각의 통신 파트너에 대한 세션 정보나 상태 보관을 요구하지 않는다. 반대의 개념은 서버 내부 상태를 유지하는 Stateful protocol이 그 예가 될 수 있다. 장/단점은 서버 구현상의 로직이 단순해 지기 때문에.. Client의 요청 이후, Client가 dead될 경우 요청의 Response를 굳이 저장할 곳이 없어 유실된다는 것이다.
IaC는 코드를 이용하여 대규모의 서버 인프라를 관리하는 기술을 의미한다. 기본적으로 MSA / 대규모 클러스터링 / HA 등의 상황에서 여러가지 설정을 엔지니어가 진행한다면.. 여러가지 Human error등을 유발수도 있으며, 관리상의 동기화 등등의 여러가지 문제점을 낳을 수 있다 특히 장애 관리 / 초기 구성/ Config Modify 등 여러가지 차원에서 문제를 발생 시킬 수 있다. 일반적으로 많이 쓴다고 확인한 것은 Puppet / Chef 등은 많이 들어보았고.. 회사 차장님이 소개해 주신 Tool은 Ansible을 추천해 주셨다. 아래는 IaC에 대한 wiki상의 정의이다 Infrastructure as Code (IaC) is the process of managing and provisi..
뜻 : Exploratory Data Analysis 정의 : 기 수집된 data로부터 데이터의 형태, 관계 파악 명백하게 공식화된 이전의 가설을 검증하기 보다는 자료를 탐구함으로써 시작하는 통계적 분석의 형태를 의미 분석 모형은 EDA를 통해 도출된 특징을 기반으로 수행 --> regression을 도입하는지.. 등을 선택하는 전처리 과정에 속함 주요 분석내용 1) 데이터의 요약 ( 중앙값, 사분위 등 )과 그래프 ( 산포도 등 ) 2) 데이터를 재표현 ( re-expression, Transformation ) 3) 데이터가 어떤 분포에 적합한지 알아보는 방법 4) 통계적 가설 설정 과정 없음 활용 1) 기술통계량과 경험 ( Biz 노하우)에 따른 결론 유추 2)분석의 첫 단계 - 데이터 본포의 적합..
Test Junit를 쓰다보니.. 다음과 같은 에러가 난다 java.lang.NoClassDefFoundError: org/junit/runners/model/MultipleFailureException 아무리 살펴봐도.. 문제 될게 없어보였는데.. 찾아보니 dependency version이 문제였다. version을 4.9 이상 올리니.. 문제가 없이 깔끔히 넘어간다
일반 windows나 리눅스 ( Centos )와 비슷하게 Mac에서도 package 관리 tool이 있다. homeBrew ( 집에서 먹는 맥주라는 뜻인가.. 아무튼;; ) 간단하게 Package를 관리하고 설정해주는 고마운 존재이다. https://brew.sh/index_ko.html 한국어 page도 제공해주고 설정 원리또한 Linux에서 많이 사용하는 yum / apt-get과 비슷한 원리이다. 설치 이후에 경로를 확인해보아도 쉽게 알수 있다. ( package가 /usr/local이하에 옹기종기 모여 있다.. ) 요즘 많이 사용하는 파이썬 / anaconda / tensorflow등 다양한 패키지를 쉽게 설치할 수 있으니... 용도 정도는 잘 알아두는 것이 좋다 ( 아래는 vert.x )
올해 새로운 프로젝트를 시작하게 되어서 Vert.x를 사용하게 되었다.개념적으로는 자료를 찾아보니.. 이해는 되는 편이지만 부분부분 기존의 프레임워크와는 다른점이 눈에 띈다. 일단 태생(?)과 개념적인 원리 정리를 해보도록하자 다른 프레임워크도 마찬가지지만 프레임워크는 사실 태생이 빠른 개발 생산성 / 변경관리 / Protocol 지원 등 저마다의 가치를 가지고 있다. Node.js도 많은 부분 환영을 받은 이유는 사실 쉽고 간단하게 비동기 서버프로그램을 구현할 수 있기 때문이다. Philosophy of Vert.x PolyglotSuper Simple Concurrency modelSupport Event Bus Module System & Public Module Repository 아래는 Node..
package인식을 위한 __init__은 확인했지만 코드보면 아래와 같은 코드가 자주 보인다 if __name__ == "__main__": 뭐하는 코드인지 살펴보기위해 Document를 살펴보면 다음과 같다 ( https://docs.python.org/3/library/__main__.html ) 결국 script로 호출 , 즉 top-level로 호출될때 사용되는 내부 모듈이라 할 수 있다. 파이썬은 다른 함수와 달리 Main함수가 없기 때문에.. 종종 사용되는 구문인듯 싶다 다음의 코드를 보면 이해에 도움이 된다 file A.pydef func(): print("function A.py") print("top-level A.py") if __name__ == "__main__": print("A..
version : HDP 2.3 / ambari 2.1.2 ambari metric collector Not running ambari를 통한 운영을 하다면 Metric Collect가 눈에 띄인다. Metric데이터를 보여주는 tool인데.. 은근히 상태 모니터링에 사용하기에 괜찮다 문제는 Collector가 가끔 오동작 or Running되지 않는 경우가 종종있다 관련 document를 살펴보자 http://docs.hortonworks.com/HDPDocuments/Ambari-2.1.2.0/bk_ambari_reference_guide/content/ams_collector_modes.html The Metrics Collector is built using Hadoop technologies s..
머신러닝 강의를 좀 듣다보면 Cost Function에 대한 이야기가 많이 나온다 Supervised Leaning에서 가장 중요한 개념은 train set을 통한 공식 도출이 아닐까 싶다 일반적으로 많은 부분( 분석 방법) 에 이 부분에 해당하는 것 같다. 일반적인 Gradient Decent ( 경사하강법 )을 활용할 때, W (weight)를 찾아가는 법 중에 가장 중요한 것은 기울기가 0되는 곳 까지 찾아가는 것이다. 전 구간에 대해서 연속 , 즉 미분가능한 구간이 나와야하지만, 그렇지 않은 경우에는 미분이 되지 않으므로 다른 공식이 필요하다 즉 미분이 되지 않는 구간에 대해 부드럽게 미분이 가능해 지도록 표현해 준다. 많이 쓰이는 것은 Logistic Regression을 활용하여, X값에 상관..
Regression과 관련한 내용을 살펴보면 눈에 띄는 부분이다. Sung Kim님의 강의를 듣다보니.. 1) hypothesis 2) Cost Function 3) Gradient descent algorithm 위의 3가지를 강조 하시지만, 3)번에 대한 내용을 다시 뜯어보기로 했다 ( 정확히 이야기하지만 잘 설명해주셨지만.. 휘발성 기억력이라;; ) 원문대로 찾아보면 저 내용은 경사하강법으로 알 수 있다.( https://ko.wikipedia.org/wiki/%EA%B2%BD%EC%82%AC_%ED%95%98%EA%B0%95%EB%B2%95 ) 이름 그대로 기울기를 낮은 쪽으로 이동 시켜서 최적의 값을 찾는 알고리즘이다. 1차/다중 선형 회귀분석 등 다양하게 사용할 수 있는 기본적인 개념이라 할 ..