분류 전체보기: 2105개의 글
RESTful API RESTful API - Roy. T. Fielding 이 만듬 WEB(1991) 어떻게 인터넷에서 정보를 공유할 것인가? 정보들을 하이퍼텍스트로 연결한다. 표현 형식 : HTML 식별자 : URI 전송방법 : HTTP Microsoft REST API Guidelines(2016) uri는 https://{serviceRoot}/{collection}/{id} 형식이어야 한다. GET, PUT, DELETE, POST, HEAD, PATCH, OPTIONS를 지원해야 한다. API 버저닝은 Major.minor로 하고, URI에 버전 정보를 포함시킨다… 등 –> Roy. T. Fielding said… “이것도 REST API 아님. 그냥 HTTP API 임.” “REST APIs..
Java9 ~ 12 디폴트 GC https://johngrib.github.io/wiki/java-g1gc/ G1GC G1GC: Garbage First Garbage Collector G1은 이름을 보면 짐작할 수 있듯, 쓰레기로 가득찬 heap 영역을 집중적으로 수집한다. G1은 큰 메모리를 가진 멀티 프로세서 시스템에서 사용하기 위해 개발된 GC이다. GC 일시 정지 시간을 최소화하면서, 따로 설정을 하지 않아도 가능한 한 처리량(throughput)도 확보하는 것이 G1GC의 목표이다. G1은 Java 9부터 디폴트 GC이다. G1은 실시간(real time) GC가 아니다. 일시 정지 시간을 최소화하긴 하지만 완전히 없애지는 못한다. G1은 통계를 계산해가면서 GC 작업량을 조절한다. 다음 상황..
1. 5WHY 문제에 대한 근본적인 원인을 찾기 위한 5번의 질문 '5Why' 문제에 대한 근본적인 원인과 핵심에 대해 구체적으로 파고드는 것이 5Why기법입니다. 5번의 Why를 통하여 표면으로 나타나는 이유가 아닌 진정한 원인을 찾아내어 각 관점의 명확한 원인을 발견하는 것입니다. '왜'라는 질문을 통해 좀 더 깊이 파고드는 것이지요. 문제해결을 염두하고 '왜'를 반복하는 것입니다. 2. Process (1) Domain : 문제, 관심사 또는 이슈를 관찰하라. 그리고 문제 기술서를 작성하라. (2) Session : - 문제 기술서를 활용해서 '왜~'라고 질문하라 (Why 1) - 그 질문에 대답하고 다시 그 대답에 대한 이유를 질문하라 (Why 2) - Why 3, 4, 5... 더 이상 필요가 ..
마음가짐 사람마다 관심분야도 다르고 잘하는 것도 다름 (서로에게 좋은 점을 배운다는 자세) 동료를 무시하지 않고 비난하지도 않는 배움에 자세 관심을 갖고 서로에 부족한 부분이 채워지고 보완될 수 있도록 함 아이디어 다른 시각이 존재할 수 있고 말이 안 되는 아이디어는 없음 (열린마음) 본인 지식을 기준으로 말도 안 되는 이야기라도 끝까지 들어줄 수 있는 인내 학습 꾸준히 신기술에 대한 관심과 자기 계발 + 성찰 오픈소스나 사내 개발된 코드를 보며 배우고 고민하기 학습한 건 공유하고, 빠르게 적용해 보기 코드에 주인이 없다. 누가 코드를 작성했는지 중요하지 않음 다 함께 리뷰 했고, 계속 상황에 맞게 개선 및 수정될 코드 코드는 팀 전체의 책임 (코드리뷰 꼼꼼히) 보이 스카우트 규칙 캠프장은 처음 왔을 때..
# ThreadPoolExecutor java 에서 멀티스레드 프로그램을 구현시 자바 1.5 에 추가된 concurrent 패키지를 많이 이용하게 된다. concurrent 패키지에 있는 ThreadPoolExecutor 는 Thread 를 직접 생성하고, 관리하는 부분을 추상화하여 작업(task)과 실행(execute)을 분리시켜준다. ThreadPoolExecutor 는 Executors 에 있는 팩토리 메서드를 이용해 간편하게 생성할 수도 있고, 직접 생성자를 호출해서 객체를 생성할 수도 있다. Executors.newCachedThreadPool(); Executors.newFixedThreadPool(10); Executors.newSingleThreadExecutor(); Executors.n..
ThreadPoolExecutor에 대한 오해와 진실 회사에서 팀원 분이 코드 리뷰를 해주셨는데, ThreadPoolExecutor을 잘못 사용하고 있다는 내용이었다. 내가 작성한 원본 코드는 대략 아래와 같다. int numTasks = 60; CountDownLatch countDownLatch = new CountDownLatch(numTasks); ThreadPoolExecutor threadPoolExecutor= new ThreadPoolExecutor(10, 50, 10, TimeUnit.SECONDS, new LinkedBlockingQueue()); for(int i = 0; i { //Do some..
지도차트 그리기 Apache Echarts 를 이용하여 여러가지 차트를 생성 할 수 있습니다. 이번에는 Echarts 를 이용하여 지도차트를 생성하는 방법을 정리해보았습니다. Apache Echarts 설치 및 정보는 다음 포스트 참고 [Echarts]_1.Apache ECharts 설치,사용준비 1. 지도 생성을 위한 JSON 파일 추출 우선 Echarts 의 examples 에서 제공하는 USA.json 을 사용해 보았습니다. json 파일만 있다면, 어디던지 지도차트 생성이 가능합니다. https://echarts.apache.org/examples/en/editor.html?c=map-usa F12 를 통해 개발자 도구에서 USA.json 을 찾습니다 마우스 우클릭 -> 새창열기 -> 다른이름으로..
Echart 설치 및 준비는 다음 포스트 참고 https://yn971106.tistory.com/119 이번에는 Echarts 의 series 의 type 속성과 상관없이 통상적으로 사용되는 옵션 몇가지를 공부해 보았습니다. 1.legend : 범례 구성 요소. 범례 구성 요소는 다른 시리즈의 기호, 색상 및 이름을 보여줍니다. 범례를 클릭하여 차트에 시리즈 표시를 토글할 수 있습니다. 기본 설정 방법 화면 data1 , data2 를 상단에 표시해 줍니다. 별도의 설정 없이 legend 박스 클릭시 해당 차트를 지워주는 기능을 가지고 있습니다. 또한 마우스 오버시 기본적으로 해당 차트의 데이터가 반짝거리는 효과가 있습니다. legendHoverLink: false 이는 series 에서 legendH..
프론트를 개발하면서 차트는 굉장히 많이 사용됩니다. 그 중 프로젝트를 진행하면서 사용한 Apache Echarts 를 간단하게 다뤄보겠습니다. 공식 사이트 : https://echarts.apache.org/en/index.html 다운로드 https://www.jsdelivr.com/package/npm/echarts 저희는 JS 의 script 로 사용할 것이기 때문에 echarts.min.js 가 필요합니다. 위 사이트에서 아래의 목록 클릭 그럼 다음과 같은 페이지에서 마우스 우클릭 -> 다른이름으로 저장 echart.min.js 파일을 얻었습니다. 이제 사용하기 위해서 프로젝트로 이동합니다. 적용 jsp 의 head 부분에 위와같은 스크립트 형식으로 적용합니다. 경로는 해당 min파일의 위치가 되..
StringUtils org.apache.commons.lang3.StringUtils 요약 Empty : Null, 공백문자("") Blank : Null, 공백문자(""), whitespace(" ") Empty StringUtils.isEmpty : Null 혹은 공백문자("") 이면 true 값 반환 StringUtils.isNotEmpty : Null 혹은 공백문자("") 이면 false 값 반환 StringUtils.isAnyEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 true 값 반환 StringUtils.isNoneEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 false 값 반환 StringUtils.isAllEmpty : 모든 문자열들이 Null 혹은..