본문 바로가기

MedianofTwoSortedArrays https://leetcode.com/problems/median-of-two-sorted-arrays/ Median은 중앙값이라고 표현한다 Average(or mean) 평균값과는 다르다 평균값은 극단적인 값에 영향을 받는다 예를 들어 100가구인 한 마을의 1가구당 연간 소득이 5천만원이라고 하자. 단 1가구가 연간 30억원의 소득을 올린다면 나머지 99가구는 2천만원 정도의 소득밖에 되지 않는다. 즉, 평균이라는 것은 표본들이 균일한 경우가 아니라면 원하는 결과를 얻기 어렵다. 따라서 이런 성질이 다른 표본들(=outlier)을 제거한 후 다시 계산하는 방법들이 많이 사용된다. 중앙값은 홀수 일때 가운데 값을, 짝수 일때는 가운데 두 값의 산순평균 값을 가진다. public double findMe..
Zuul , could not acquire a semaphore.. 어떤 이벤트로 인해 순간 트래픽이 치솟음. 원인은 여러가지가 있는데 아래 해결책(의견)에 대해 비교해보고 싶어 작성함. max Semaphore를 늘려? semaphore 디폴트 max는 100임 maxmax-concurrent-requests는 10임 https://github.com/Netflix/Hystrix/wiki/Configuration For example, 5000rps on a single instance for in-memory lookups with metrics being gathered has been seen to work with a semaphore of only 2. 예를 들어, 메트릭이 수집되는 메모리 내 검색을위한 단일 인스턴스에서 5000rps는 2의 세마포어로만 작동..
Kotlin 기초 kotlin-practice 빅 너드 랜치의 코틀린 프로그래밍 책을 보며 실습함. https://github.com/Jpub/BNR_Kotlin # Hello world fun main(args: Array) { println("Hello world"); }# REPL 파일을 생성하지 않고 코드를 빨리 테스트하는 도구 IntelliJ -> Tools -> Kotlin -> Kotlin REPL 선택 # JVM에서 실행하기 코틀린 소스 -> (컴파일러) -> 바이트 코드 = 90) { if (isBlessed) { println(name + " good enough and better soon") } else { println(name + "good enough anyway") } } else { prin..
Java trouble shooting scouter를 활용한 시스템 장애 진단 및 해결 노하우 자바 트러블 슈팅 책을 보고 대충 작성함. 장애 case 시스템이 느림 전체 특정 화면 특정 시간대 전체 특정 시간대 특정 화면 특정 화면, 점점 느려짐 특정 사용자 응답 없음 전체 특정 예외 발생 모든 사용자, 특정 기능 특정 사용자, 특정 기능 특정 시간대, 전체 특정 시간대, 특정 기능 시스템 뻗음 병목 지점들 웹 서버 WAS 각종 API 서버들 DB Daemon Legacy system Etc Thread 진단 Thread에서 발생하는 대표적인 문제점은? Dead Lock 데이터를 안전하게 처리하기 위한 Lock 서로 풀리기만을 기다리는 상황 … Lock 경합을 피하자 코드가 아닌 데이터를 보호할 것(synchronized) Atomic 작..
에어컨 구매? 에어컨 멀티형 에어컨(2in1)을 사야한다 거실, 안방 OO풍은 모드에 따라 쓸 수 있어서 우선순위로 정할 필요가 없다 무풍형은 관리가 어렵단다. (곰팡이..) 패스하자 평수에 맞는 모델을 선택해야 한다 공급면적 71A 거실은 공급면적의 1/2면 된다고 한다 에어컨 선택장애 10분만에 완벽 해결! | 1boon 딱 맞는걸 산다해도 이사갈때 팔고 가면 되지 않을까? 1평을 냉방하는데 필요한 냉방능력은 400W x2 = 72/2, x = 약 6평 22평, 확장 ->13평형이면 되는 듯 공기청정 기능이 포함되어있다면 CAC인지 확인하자 AI는 딱히 필요 없다 자동건조기능은 편리하다 스마트폰연결 기능은 잘 쓰면 좋다 순서 원하는 모델을 선택한다 온라인 최저가를 알아본다 LG베스트샾, 하이마트 등 오프라인 매장에..
String(date foramt) in Json to LocalDateTime JSON안에 아래와 같은 값이 들어있다. { "date-time": "2019-09-27T20:30:00+09:00"} 아래의 Pojo에 자동으로 Converted 될거라고 기대하고 쭉 돌려본다. public class MyParameter { @JsonProperty(value = "date-time") ZonedDateTime dateTime; } 두둥... 아래와 같이 에러 메시지가 발생했다 . Cannot construct instance of `java.time.ZonedDateTime` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from Strin..
분산서버 처리를 위한 기술들 Load Balancing부하 분산을 위해서 가상 IP를 통해서 각 노드에 분배하는 기능이다.오픈 소스 로드 밸런스 중에서는 HA Proxy가 많이 사용된다고 한다. 로드 밸런서 사용 시 이슈 중 하나가 세션 데이터이다. 로드 벨런서에 의해 이전 요청과 현 요청에 분배되는 노드가 다르면 세션 관리 일관성에 문제가 있다. 이 문제를 해결하기 위해 sticky session을 이용하기도 한다. 다만 해당 노드에 장애가 발생하게 되면 다른 노드에는 해당 세션이 없으므로 이 또한 문제다. 따라서 세션 클러스터링이 필요하다. 로드 밸런서에 문제가 발생하면 어떻게 할 것인가?로드 밸런서를 이중화를 기본으로 한다. 서로 Health check를 한다.Master - Standby로 구성한다. (Fail-over) 특..
APM Scouter 출처: https://team-platform.tistory.com/14https://team-platform.tistory.com/19https://team-platform.tistory.com/25 APM? Application Performance Management Scouter는 APM의 한 제품이다. 한국 개발자들 주축의 오픈 소스이다. 모니터링할 수 있는 것들JVM GC 횟수, 시간Heap memory 사용률Java Process의 CPU 사용률API Call 기록 (Xlog)TPSSQL 처리 시간OS - CPU, Memory, Disk, Network Traffic, Socket count Alert를 Customizing 할수도 있다. 아래 링크를 참조하면 텔레그램으로 alert를 받을 ..