본문 바로가기

전체 글217

segmentation fault - core dump 파일이 생성되지 않아요? 리눅스에서 프로그램을 실행하다 보면 "sementation fault 어쩌구저쩌구" 하는 메시지를 출력하고 프로그램이 종료되는 경우가 있습니다. 대부분 메모리 문제로 다음 원인때문에 발생할수있습니다. 보호된 메모리에 접근을 시도하는 경우 읽기 권한이 없는 프로세스가 읽기나 쓰기를 시도하는 경우 할당된 메모리 영역을 벗어나서 접근할 경우 - 할당된 메모리보다 더 많은 데이터를 쓰려고 하는 경우 하지만 이런 문제가 발생할 경우 친절하게도 덤프파일(core)을 생성해 줘서 디버깅을 할 수 있도록 정보를 제공합니다. 그런데, 간혹 덤프 파일이 생성되지 않고 프로그램이 종료되는 경우가 있습니다. 다른 원인이 있을 수 있겠습니다만, 현재 시스템 설정을 확인할 필요가 있습니다. 여기서는 "ulimit" 명령어를 사용.. 2023. 7. 11.
GNU_LIBC_VERSION 확인방법 Ubuntu 버전에 따라 GLIBC 버전이 달라 프로그램이 정상적으로 실행되지 않은 경우가 있습니다. 실행되지 않을 경우 아래와 같은 에러가 발생합니다. $ ./client localhost 3333 ./client: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./client) 실행하려는 프로그램이 버전 2.34인 GLIBC를 찾는데 실패한 케이스입니다. 그럼, 현재 설치된 버전은 뭘까요? $ getconf -a | grep glibc GNU_LIBC_VERSION glibc 2.31 # 아래 명령어로도 확인이 가능합니다. $ ldd --version ldd (Ubuntu GLIBC 2.31-0ubuntu9.9.. 2023. 6. 28.
Jetty - Java Servlet Container 본 글은 "호춘쿠키의 개발 블로그"를 발췌했습니다. [Java] Jetty 란? Jetty는 자바 HTTP 웹 서버이자 자바 서블릿 컨테이너다. 웹 서버가 보통 문서를 사람들에게 제공하는 것과 관련된 반면, 제티는 대규모 소프트웨어 프레임워크에서 기계와 기계의 커뮤니테이션에 사용된다. - 위키백과 (ko.wikipedia.org/wiki/제티_(웹_서버)) 서블릿 컨테이너(servlet container)는 뭔데? 서블릿(servlet)이란 SUN 사에서 제안한 웹서비스를 위한 인터페이스로, 원칙적으로는 javax.servlet.Servlet 인터페이스의 구현체다. 일반적인 자바 독립 실행 프로그램과 달리 main 메소드가 없으며, 서블릿 컨테이너에 등록된 후 서블릿 컨테이너에 의해 생성, 호출, 소멸이.. 2023. 6. 22.
Wireshark 설치 Wireshark(www.wireshark.org)는 네트워크 패킷을 감시 및 분석하는 소프트웨어입니다. 네트워크 장비뿐만 아니라 머신 비전 카메라를 사용하는 경우에도 어떠한 문제가 있다면 Wireshark로 패킷을 분석하고 문제점을 찾는데 도움이 됩니다. 뿐만 아니라 TCP 통신으로 장치와 명령어를 주고 받으면서 패킷을 분석하는데 유용하게 사용할 수 있습니다. 특징 GNU GPLv2 라이선스 크로스 플랫폼 지원 (Windows, Linux, Mac 등) 패킷 분석을 위한 GUI 제공 Promiscuous 모드 지원 루프백(Loopback) 뿐만 아니라 시스템의 네트워크 어뎁터도 분석 가능 파일 형태로 기록 가능 설치하기 여기서는 우분투(Ubuntu)에서 설치하는 방법을 설명합니다. $ sudo upda.. 2023. 6. 21.
용어 (Term: Technical, Legal, Scientific) CI Continuous Integration 즉, 지속적인 통합이라는 의미 합니다. 지속적인 통합이란, 어플리케이션의 소스 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레파지토리에 통합하는 것을 의미합니다 CD Continuous Delivery / Continuous Depolyment 두 용어의 약자입니다. Continuous Delivery는 공유 레파지토리로 자동으로 Release 하는 것을 의미하며, 지속적인 서비스 제공을 말합니다. Continuous Depolyment는 Production 레벨까지 자동으로 deploy 하는 것을 의미하며, 고객에게 배포하는 것을 말합니다. Jenkins 레파지토리를 대상으로 소스를 가지고 와서 빌드 및 테스트를 한 후 배포까지의 일련의 작업들을 자동화.. 2023. 6. 21.
GeoServer - 설치하기 현재(2023.06.21) 기준으로 GeoServer 2.23.1을 우분투에 설치해 보겠습니다. 설치 파일은 웹 아카이브(Web ARchive) 버전과 플랫폼 독립적인 바이너리(Platform Independent Binary) 버전으로 제공합니다. 웹 아카이브 버전 - 톰켓(Tomcat)과 같은 어플리케이션 서버가 있는 시스템에 설치할 때 유리 플랫폼 독립적인 바이너리 버전 - 가볍고 휴대 가능한 어플리케이션 서버인 Jetty 내부에 번들로 제공되는 GeoServer 웹 어플리케이션(webapp) - 모든 운영 체제에서 매우 유사하게 동작하며 설치가 간단하다는 장점을 가짐 GeoServer는 Java로 개발된 지리공간 데이터를 공유 및 편집할 수 있는 오픈 소스이기 때문에 두 버전 모두 JRE가 설치되.. 2023. 6. 21.