본문 바로가기

프로그래밍

(10)
Netflix OSS 및 Spring Boot Netflix의 Backend 및 Mid-tier 어플리케이션의 대부분은 Java를 사용하여 구축되었고, Micro Service를 위해 필요한 Ribbon, Eureka, Hystrix등 클라우드 인프라 라이브러리 및 시스템을 구축했다. 2015년도에 Spring Cloud Netflix는 1.0 버전이 나왔고, Spring Boot를 사용하여 Netflix OSS 구성 요소를 결합하기 위한 커뮤니티 노력의 일환이었다. Netflix는 2018년 부터 Spring Cloud Netflix를 통한 커뮤니티의 산출물을 이용하여 Java 프레임워크로 Spring Boot로 전환하였다. Netflix가 내부 구성 요소 구축에 많은 투자를 했음에도 불구하고 Spring Boot를 채택하는 이유는 무엇일까? 20..
Project Euler 1 Solution: Multiples of 3 and 5 문제 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. 10 이하의 모든 자연수를 3, 5의 배수로 나열하면 3,5,6,9가 되고, 배수의 합은 23이다. 1000 미만의 3,5의 모든 배수의 합을 찾아라. 분석 3과 5로 나뉘어지는 1000미만의 자연수의 합을 원한다. 루프문을 사용하여 1에서 999까지의 3,5로 나뉘는 자연수를 합을 구한다. 해결 sum=0 for i in range(3,1000): if i%3==0 or..
Java class를 Python에서 사용하기 프로젝트내에서 만든 Java Util class를 Python에서 사용해야 하는 케이스가 발생했다. py4j, jnius, subprocess .., 등등의 방법이 있었다. py4j GatewayConnection 방식으로 진행하기에 내부적으로 socket을 사용함. Fault 발생 여지가 있어서 부적절하다고 판단 jnius Java class를 수행전에 JVM을 start 해야하고 종료시 shutdown 해야 함. Fault 발생 여지가 있어서 부적절하다고 판단 subprocess os command를 수행하는 방법, 별도의 package를 설치하지 않아도 되고, 위의 package에 비해 fault 발생 여지가 작다고 판단 아래는 샘플 코드 jar파일은 executable jar여야 한다. #pyth..
Spring-boot에 Swagger2 설정 RESTful API를 만들 경우에는 문서화가 중요하고, API문서와 코드와의 변경 사항을 반영하는 것은 지루한 일입니다. 일반적으로 Swagger를 사용할 경우에는 @Api, @ApiOperation과 같은 Annotation을 사용하여Swagger에 보여질 내용을 설정하게 됩니다. Swagger2의 구현체인 Springfox를 사용할 경우에는 이런 부분들이 자동화되게 됩니다. 타겟 프로젝트 REST 서비스는 아래의 URL을 참조하여 Swagger2를 적용할 수 있도록 생성해야 합니다. (본 문서의 범주가 아니므로 링크로 대체합니다.) Build a REST API with Spring 4 and Java Config article Building a RESTful Web Service. 메이븐 의존성..
Redis Java client -lettuce 소개 Lettuce는 synchronous, asynchronous, reactive usage를 지원하는 scalable thread-safe한 Redis Java client 입니다. lettuce — IntroductionLettuce is a scalable thread-safe Redis client for synchronous, asynchronous and reactive usage. Multiple threads may… redis.paluch.biz Micro Service Architecture(MSA)를 적용하면서, 앞단의 Gateway의 Discovery영역에 redis로부터 active instance를 read하는 부분에서 Jedis를 사용하였지만 Jedis는 Multiple thre..
Websocket Proxy Websocket proxy가 필요한 케이스가 생겼다. 일반적으로는 독립된 proxy server를 통해 지원하면 되지만, Servlet단에서 지원을 해야 하는 상황이다. 아래의 그림처럼 제공되는 것이 중간의 Gateway를 통해 Communication이 되어야 하는 상황이다. 아래의 그림처럼 중간에 다른 서버를 거쳐야 한다. 가장 편하게 할 수 있는 방법은 jetty-proxy library를 이용하는 방법이다. 이미 구현체가 존재하기 때문에, 필요한 부분만 customizing하여 Servlet으로 등록하면 된다.
P-Value (유의확률) P-value에 대해서 알기전에 귀무가설(Null Hypothesis: H0)과 대립가설(Alternative Hypothesis: H1)에 대해서 이해를 해야 합니다. 우리가 어떤 가설을 만들었을 때, 가설 검정 절차에서 선행되어야 할 부분이 귀무가설과 대립가설의 설정이고, 두 개의 가설이 정반대로 설정되어야 합니다. 귀무가설은 기존에 일반적으로 받아들여지고 있는 내용이며,아래와 같이 세 가지 유형이 있습니다. ~와 같다. (=), ~ 이상이다. (>=), ~ 이하이다. (= 0.05 로 설정합니다. 귀무가설은 대립가설과 정반대이므로 아래처럼 설정합니다. H0: p
CORS server flow chart