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

IT기술/CS(ComputerScience)31

[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.
개발에서 빌드도구(Build tool) maven, gradle 살펴보기 빌드도구 살펴보기 빌드도구를 접하기 전 솔로로 여러 개발을 해오던 나는 이런 개념을 접할 방법이 없어 모르던 내용이었다. 개발 툴을 세팅하는 방법이나 빌드를 편하게 하는 방법들은 속되게 말하면 돈버는 기술과 노하우다. 넷에서 쉽게 찾을 수 없으며 간혹 글이 있더라도 반복 숙달로 연습되지 않으면 이해하기 힘들다. 이런 개념을 모르고 일했던 내가 신기하기만 하고 미쳤나 싶기도 하다. 홈페이지 하나를 메모장만 가지고 웹 디자인까지 해가며 백앤드 세팅까지 다 끝내고 오류 다잡아낸 나다.... 요즘은 개발툴, 빌드툴로 다한다매? 세상 존나편하네 사수없이 초보시절을 지내다보니 이런 오차가 있는 것 같다만, 스스로 알아낼 수 밖에 없는 거 같다. 새로운 프로젝트를 시작하는 단계에서 어떤 프로그래밍 언어를 사용할까? .. 2023. 4. 18.
온디맨드(On-Demand) 서비스 배달의 민족, 우버, 쿠팡 배달, 카카오 택시 같은 온디맨드 서비스가 종종 보입니다. 여기서 온디맨드 서비스란 무엇을 이야기 하는 거고 대화의 화제가 된 것일까요? 온라인에서 결제하고 오프라인에서 이용하는 O2O(Onlie to Offline)는 쉽게 이해되는데 온디맨드(On-Demand)는 뭘까요? 간단히 이야기하자면 온디맨드 서비스는 주문 서비스 입니다. 내가 무언가 필요한데 대가를 지불하는 것과 별개로 주체적으로 행위를 하느냐 마느냐의 차이로 보입니다. 편하게 이야기하자면 귀찮거나 게으르거나 뭔가 할 수 없는 상황에서 주체적인 행동 없이 결과가 나를 찾아오게 만드는 것이 목표입니다. 참고로 돈 쓰는게 주체적인 행위라고 할 수는 없는게, 행동 대신 돈을 지불하는 남의 행동을 사는 부분이기 때문입니다... 2023. 4. 17.
yaml 문법 yaml을 사용하려면 yaml만의 문법을 이해할 필요가 있습니다. 기본문법 - 들여쓰기 (indent) - 데이터 정의 (map) - 배열 정의 (array) - 주석 (comment) - 참/거짓 - 숫자표현 - 줄바꿈 (newline) 주의사항 - 띄어쓰기 - 문자열 따옴표 - 들여쓰기 (indent) 들여쓰기는 기본적으로 2칸 또는 4칸을 지원합니다. 1 2 3 4 5 6 person: name: Chungsub Kim job: Developer skills: - docker - kubernetes 1 2 3 4 5 6 person: name: Chungsub Kim job: Developer skills: - docker - kubernetes - 데이터 정의 (map) 데이터는 [key]: [v.. 2023. 4. 17.
yaml 이건 무슨형식? YAML은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다. 2001년에 클라크 에반스가 고안했고, Ingy dot Net 및 Oren Ben-Kiki와 함께 디자인했다. YAML이라는 이름은 "YAML은 마크업 언어가 아니다 (YAML Ain't Markup Language)” 라는 재귀적인 이름에서 유래되었다. 원래 YAML의 뜻은 “또 다른 마크업 언어 (Yet Another Markup Language)”였으나, YAML의 핵심은 문서 마크업이 아닌 데이터 중심에 있다는 것을 보여주기 위해 이름을 바꾸었다. 오늘날 XML과 JSON이 데이터 직렬화에 주로 쓰이기 시작하면서, 많은 사람들이 YAML.. 2023. 4. 17.
[DNS] 퓨니코드(Punycode) 란? - 한글 도메인 최근, 코로나19 사태로 인해 긴급재난지원금을 국가에서 지급했었습니다. 그런데, 긴급재난지원금을 확인하는 사이트가 www.naver.com 과 달리 인터넷 주소에 한글이 들어간 것을 확인할 수 있습니다. 이와 더불어, 카카오톡에 공유할 경우 아래와 같이 xn-- 으로 시작하는 인터넷 주소가 보입니다. 링크 썸네일에 표시되는 xn-- 도메인명 이는 퓨니코드(Punycode) 라고 합니다. 퓨니코드(Punycode)란? 한글과 한자는 유니코드를 사용하는데, 이를 ascii 로 변환하는 것을 말합니다. 이렇게 변환된 주소를 바탕으로 사이트에 접속하게 됩니다. (예시, www.긴급재난지원금.kr -> www.xn--jj0bb2kr6h965bxcbp8g.kr) 참고로, 도메인명 (예를 들어, www.naver.c.. 2023. 3. 27.
[용어] AS-IS, TO-BE 프로젝트를 하다가 AS-IS, TO-BE 라는 용어를 접했는데, 처음 본다면 뜻이 어느정도 유추만 될 뿐, 무엇인지 제대로 잘 모르는 경우가 있다. 이 때문에 정리해본다. [AS-IS] 지금 현재, 현재 프로젝트, 현재 업무 프로세스를 통틀어 나타내는 말이다. [TO-BE] 이후 바뀔 프로젝트, 바뀔 프로세스를 통틀어 나타내는 말이다. AS-IS 분석, 프로세스 목록, 인터페이스 리스트 등 다양하게 붙여 사용한다. 2023. 3. 22.
SOA, EAI, ESB 개념 정리 SOA (Service Oriented Architecture, 서비스 지향 아키텍처) 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다. 업무 처리 변화를 시스템에 빠르게 반영하고자 하기 위해 기업의 전반적인 정보 시스템을 서비스 단위로 구축해 다른 서비스와 연동 · 통합될 수 있도록 하는 시스템 구조를 말한다. 1996년에 가트너가 처음 소개한 개념으로, 기업의 IT 시스템을 비즈니스에 맞춰 유연하게 사용할 수 있다. 소프트웨어 인프라를 구축하는 방법론 가운데 하나로, 정보 시스템 구축 방식에 일정한 규칙을 두고 공유하거나 다시 사용할 수 있는 서비스를 만드는 플랫폼 기술.. 2023. 3. 21.
미들웨어란 무엇일까? 소프트웨어/시스템 - 소프트웨어/시스템 사이에 있으면 미들웨어라고 생각하면 된다. 즉 시스템 간의 통신, 데이터 관리를 위한 중간 장치라고 보면 된다. 미들웨어의 기능은 다음과 같다. - 표준화된 인터페이스 제공 - 다양한 환경 지원, 체계가 다른 업무와 연동 가능 - 분산된 시스템의 업무를 동시에 처리 가능 - 부하의 분산 가능 통신 방식에 따른 분류 ◼︎ RPC(Remote Procedure Call: 원격 프로시저 호출) 클라이언트가 원격에서 동작하는 프로시저를 호출하는 시스템으로 동기 또는 비동기 지원하는 미들웨어 별도의 원격 제어를 위한 코딩 없이 원격지에 있는 함수나 프로시저를 실행 할 수 있게 하는 프로세스간의 통신 기술 호출하는 프로그램과 호출되어지는 프로그램간 통신시에 2개 이상의 트랜잭.. 2023. 3. 21.
GTK (Xwindow 프레임워크) 리눅스에서는 CLI 환경 뿐만 아니라 GUI 환경도 지원한다. 여기서 GUI 환경은 GTK(김프 툴킷, Gimp ToolKit) 프레임워크 기반으로 만들어 진 것이 대표적이다. 리눅스에서 GUI를 다루기 위한 가장 대표적인 라이브러리 중 하나이며. 대표적으로 최근 우분투에서 기본으로 채택한 Gnome 데스크탑 환경이 GTK로 만들어졌다. 그 외에도 텍스트 에디터 Gedit, IDE builder, 웹 브라우저 Web(구 epiphany), midori 등 수많은 프로그램이 GTK에 기반하고 있다. GTK는 수많은 GUI 라이브러리 중에서도 다음과 같은 굉장히 독특한 특징들을 가지고 있다. - GTK는 C로 구현된 객체지향 GUI 라이브러리이다. GUI 프로그래밍은 윈도우, 버튼, 메뉴바 등 수많은 객체들.. 2022. 11. 27.
메타 OS란? 운영체제, OS는 많이 들어봤는데, 메타OS에 대한 내용은 거의 못들어 봤다. 일반적으로는 필요하지 않으나 오픈스택이나 RearTimeOS 에서 사용된다고 한다. META OS란? OS위에서 별도의 시스템으로써 별도의 동작을 위해 실행되는 것이다. 윈도우에 VMware설치해서 가상머신 돌리는 것도 메타 OS이다. 예시 RTOS, threadX 등 2022. 11. 27.
파일시스템 이란? 데이터를 디스크에 할당하는 단위 2022. 11. 27.