본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

전체 글485

[CS] OOM의 원인과 아주 간단하게 OOM 발생 시키기 outofmemory가 나는 이유 설정된 메모리 대비 요청되는 메모리가 많기 때문에 나타나는 JVM에서 발생하는 에러 설정의 오류나 사용량 초과로 인해 jdk 5 같은 경우는 jdk hotspot 버그로 인해 oom이 났던 경우도 있었음 oom 예시 Application의 oom(순간적) 과도한 데이터 조회(100만건 200만건씩 조회해서 메모리 들고 있는 경우, 업로드 파일을 후처리 하기로 해서 메모리에 들고 있는 경우) 잘못된 데이터 조작(string) 장시간에 걸쳐서 서서히 메모리가 장식되는 경우(memory leak) Cache(어떤 데이터를 여러 쓰레드가 공유해서 사용하는 경우) leak Pool(배타적으로 사용할 때) leak (oom 가기 이전에 풀 부족으로 2차 장애가 발생하는 경우도 많음.. 2023. 8. 3.
[Kafka] 카프카 - 주키퍼(ZooKeeper)란? 분산 코디네이션 서비스를 제공하는 오픈소스 @분산 코디네이션 서비스 (분산 시스템에서 시스템 간의 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을 처리해주는 서비스) 주키퍼를 알기전에 카프카에 대해 간략하게 이해하기 카프카는 크게 프로듀서, 카프카(브로커), 컨슈머, 주키퍼로 분류할 수 있다. 프로듀서 : 카프카와 통신하면서 메시지를 보내는 역할 컨슈머 : 카프카와 통신하면서 메시지를 가져오는 역할 주키퍼 : 컨슈머와 통신, 카프카의 메타데이터 정보를 저장, 카프카의 상태관리 등 목적으로 이용 카프카 클러스터 : 카프카 본체로 여러 브로커가 모인 것.(브로커는 실행그룹 단위이며, 내부에 여러 작업을 수행하는 인터페이스들이 모여있다.) Topic Broker에서 데이터의 발행/소비 처리를 위한.. 2023. 8. 3.
MQ (Message queue)란 무엇인가? 자료 구조중에 Queue라는 형식이 존재합니다. Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 형태를 가집니다. FIFO 형태는 뜻 그대로 먼저 들어온 데이터가 가장 먼저 나가는 구조를 말합니다. 참고로 Stack은 "쌓다"라는 의미로, 데이터를 쌓아올린 형태의 자료구조입니다. 들어온 순서대로 나가는게 아닌, 가장 최근에 들어온 순부터 나가는 구조입니다. 큐와는 반대되는 게념이지요. 그렇다면, MQ는 무엇일까요? 쓰이다보니 어쩔수 없이 정리해봅니다. MQ(Message Q.. 2023. 8. 3.
VSCode 오류 : 이 시스템에서 스크립트를 실행할 수 없으므로 에러 해결하기 VSCode의 터미널을 통하여 npm혹은 yarn을 사용하여 처음 작업을 수행할 때, 다음과같은 에러가 발생할 수 있습니다. 내용은 "이 시스템에서 스크립트를 실행할 수 없으므로 ~(블라블라)~ 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오." 로, 시스템의 설정에서 스크립트를 실행할 수 있는 권한이 부여되어있지 않은 상태라서 해당 작업 명령을 수행할 수 없어서 발생하는 오류입니다. Window10 기준으로, Windows PowerShell 앱을 통하여 시스템의 스크립트 실행권한을 변경하여 해결할 수 있습니다. 1. Windows PowerShell 앱을 검새하여.. 2023. 8. 1.
[javascript] 배송조회 API 예전에 가지고있던 괜찮은 링크가 있어 공유한다. https://tracker.delivery/guide/ 2023. 7. 31.
[javascript] Uncaught TypeError: Cannot read property of null 해결방법 Uncaught TypeError: Cannot read property of null 보기만해도 정겹고 빡치는 명령어인데, 자바스크립트 개발하다보면 자주 보이는 오류다. 자바스크립트에서 요소의 값을 읽어오는데 읽어와 지지 않은 경우에 볼 수 있는 흔한 오류인데, 왜 못읽어 들여서 이런 에러를 발생시키는지 짜증난다. 1 2 // We want to get the value of an input. var inputVal = document.getElementById("input").value; cs 이처럼 요소의 값을 읽어오도록 선언했지만 실제로 읽어 오지 못했을 경우 발생하는 오류다. 이럴 경우 어떻게 해야 값을 읽어올 수 있도록 적용할 수 있을까? 페이지의 Element의 ID가 input인 것이 있는.. 2023. 7. 31.
[Mysql] LEFT JOIN 이용하는방법. (NOT IN 대체하기) MySQL에서 특정 항목들을 제외시킬 때 주로 사용하는 명령어가 NOT IN 인데, 속도가 만족스럽지 못할때가 있다.. 이때는 LEFT JOIN명령어를 대신 사용할 수 있다. 예를 들어, select * from cdr where calldate not in ( select calldate from cdr where disposition = 'ANSWERED') 의 경우는 다음과 같이 바꿀 수 있다. select t1.calldate from cdr as t1 left join ( select calldate from cdr where disposition = 'ANSWERED') as t2 on t1.calldate=t2.calldate where t2.calldate is null 2023. 7. 31.
[Tomcat] 서버 재시작 없이 catalina.out 초기화 톰캣을 만지다보면 로그파일인 catalina.out의 용량이 한없이 치솟을 때가 있는데, 그냥 건드리다가 로그가 날아가며, 더이상 쌓이지 않는 경우가 생긴다. 결국 tomcat을 정지 시키고 catalina.out의 용량을 정리한 뒤 재시작하면 문제가 해결되나, 다른 방법이 있다. 재시작 없이도 용량을 초기화하는 방법이 있어 정리해본다. catalina.out 파일이 위치한 곳으로 이동하여 #cat /dev/null > catalina.out 이렇게 할 경우 기존 내용이 모두 날아가고 새로 catalina.out 파일에 로그가 증가한다 즉 파일 초기화 가능! 2023. 7. 31.
[Java] 자바로 폴더(디렉토리) 생성하기 자바에서 해당 위치에 원하는 폴더가 없을 경우 자동으로 생성하는 방법이 있다. File클래스안의 mkdir이라는 메서드를 활용하여 간단히 구현 가능. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 import java.io.File; public class MkDir { public static void main(String[] args) { // 1. Path 객체 생성 Path path = Paths.get("d:\\example\\writeFile.txt"); //.. 2023. 7. 31.