리눅스에서 자바로 개발된 애플리케이션을 구동할 때 별도 라이브러리를 가져와서 사용하는 경우가 있습니다. 이때 라이브러리 모듈이 C/C++로 개발되었다면 자바 코드로 C/C++ 코드를 호출해서 사용해야 합니다. C/C++ 코드는 네이티브 코드라고도 부릅니다. 자바 코드로 네이티브 코드를 호출하는 것. 이것이 JNI(Java Native Interface)의 개념입니다. 예를 들어 보겠습니다. 두 개의 정수의 합계를 반환하는 C 함수가 있습니다. 함수명은 add()입니다. 자바로 add() 함수를 호출하는 아래와 같은 형식으로 사용할 수 있습니다.public class MyMath { static { System.loadLibrary("mymath"); // 네이티브 코드를 포함한 공유 라이브러리 호출 } ..
리눅스에서 CPU 과부하가 의심될 때 처리 대기 프로세스를 확인할 수 있습니다. vmstat, top이 처리 대기 프로세스를 확인하는 데 사용됩니다. 처리 대기 스레드 확인하기 1. vmstat [root@localhost ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 1506916 1052 577676 0 0 206 13 87 125 1 1 98 0 0 vmstat 명령어를 실행하면 PC 리소스 상태에 대한 여러 값이 출력됩니다. 그중 r 컬럼의 값이 대기 프로세스(또는 스..
컴퓨터가 느리거나 특정 애플리케이션이 죽는 현상이 반복적으로 발생하는 경우 CPU 처리를 대기하고 있는 스레드를 확인해보면 진단에 도움을 줄 수 있습니다. 대기 스레드가 많다면 병목 현상이 일어나고 있다는 의미입니다. 대기 스레드 확인은 윈도우에 기본 설치되어 있는 성능 모니터로 할 수 있습니다. 실시간 대기 스레드를 확인하고 일정 시간 동안의 모니터링 보고서도 생성하는 방법도 알아보겠습니다. 윈도우 대기 스레드 확인하기 1. 윈도우 + R로 실행앱을 켜고 perfmon을 입력 후 엔터를 누릅니다. 2. 왼쪽 메뉴에서 모니터링 도구 > 성능 모니터를 클릭합니다. 오른쪽 녹색으로된 + 모양 아이콘을 클릭합니다. 3. 사용 가능한 카운터 중 System 섹션에서 Processor Queue Length를 선..
맥북에서 터미널을 통해 txt 확장자 파일을 만드는 간단한 방법을 기록합니다. 1. command + space를 누르고 터미널을 검색해서 켭니다. 2. 원하는 경로로 이동해서 txt 파일을 생성합니다. 새 파일을 생성해주는 touch 명령어를 이용합니다. cd desktop touch test.txt 3. txt 파일은 텍스트 편집기로 편집하시면 됩니다.
유닉스 / 리눅스 운영체제에는 I/O 리소스를 관리하고 액세스 하는 파일 디스크립터라는 개념이 있습니다. 파일 디스크립터가 무엇인지, 어떻게 사용되는지 알아보겠습니다. 파일 디스크립터란? 파일 디스크립터(File Descriptor)는 유닉스 계열 운영체제에서 파일, 파이프, 네트워크 소켓 같은 I/O 리소스와 상호작용 하는 프로세스에서 사용할 수 있는 참조 값으로 음이 아닌 정수로 할당됩니다. 이를 테면 프로세스가 시스템 커널에 함수를 콜할 때 연결된 파일에 부여된 숫자로 이야기하는 개념이라고 이해할 수 있습니다. 파일 디스크립터 예시 리눅스에서 example.txt라는 파일을 열고, 읽고, 닫는 작업을 예시로 들어보겠습니다. 1. 파일 열기 파일을 열 때는 시스템 함수인 open()을 이용합니다. 이..
맥북에서 "시스템 확장 프로그램을 활성화하려면 복구 환경에서 보안 설정을 수정해야 합니다"라는 메시지는 애플 실리콘(M1, M2)이 탑재된 맥에서 프로그램이 커널에 로드하려고 시도하는 경우 발생할 수 있습니다. 이를 해결하기 위해서는 시동 디스크 보안 설정을 변경해야 합니다. Mac OS - M1, M2 시동 디스크 보안 설정 변경 1. 애플 아이콘 > 시스템 종료를 클릭해 맥을 종료하세요. 2. 전원 버튼을 길게 누르세요. "시동 옵션 로드 중"이라는 메시지가 화면에 보일 때까지 눌러야 합니다. 대략 5~10초 정도 걸리는 거 같습니다. 3. 옵션을 클릭하고 계속을 클릭하세요. 4. 관리자 계정으로 인증하세요. ※ macOS 복구라고 써있지만 저희가 하려는 건 복구가 아닙니다. 이점 주의하면서 다음 단..
하나의 맥북에서 여러 사용자를 사용하는 경우 공유 폴더를 통해 파일을 주고받을 수 있습니다. 공유 폴더에 파일을 보내는 방법과 주의사항에 대해 알아보겠습니다. 맥북 사용자 계정 간 파일 전송 1. command + space로 파인더를 실행합니다. 2. shfit + command + G로 폴더 이동 경로창을 엽니다. 3. 경로에 /users를 입력하고 진입합니다. 4. 공유 폴더에 들어갑니다. ※ 주의 : 여기서의 공유 폴더는 왼쪽에 보이는 iCloud 공유 폴더와 다릅니다. 5. 공유하려는 파일을 옮겨놓습니다. 6. 다른 계정에서 해당 파일을 편집하려면 권한을 부여해야 합니다. 파일 우클릭 > 정보 가져오기로 진입합니다. 공유 및 사용 권한 섹션에서 해당 파일을 사용할 계정에 읽기 및 쓰기 권한을 부..
윈도우 PC에서 프로그램의 기능, 시스템 변경, 타 프로그램과의 연동 등을 위해 레지스트리를 변경하는 경우가 있습니다. 이때 레지스트리 수정으로 PC에 문제가 생길 가능성을 대비해서 기존 레지스트리를 백업해두는 것을 추천드립니다. 윈도우 레지스트리 백업하기 1. 윈도우 키 + R을 눌러 실행 창을 엽니다. 2. regedit을 입력하고 엔터를 치고 레지스트리 편집기를 실행합니다. 3. 트리 최상위에 있는 컴퓨터를 한 번 클릭해서 강조 표시합니다. 4. 파일 메뉴를 클릭하고 내보내기를 선택합니다. 5. 레지스트리를 백업할 위치와 저장할 파일명을 설정합니다. 6. 내보내기 범위는 모두로 하고 저장을 클릭합니다. 7. reg 확장자로 레지스트리 백업 파일이 생성됩니다. 용량이 생각보다 좀 클 수 있습니다. 레..
메일을 받았는데 winmail.dat이 첨부되어 있던 경험 있으신가요? 그렇다면 아마 당신은 웹을 통해 메일을 확인하셨을 거고 상대방은 아웃룩으로 메일을 보냈을 겁니다. winmail.dat 파일이란? winmail.dat 파일은 마이크로소프트 아웃룩 같은 메일 클라이언트 프로그램에서 서식이 있는(TNEF) 형식의 정보를 담기 위해 사용하는 파일 형식입니다. 메일 수신자가 아웃룩 등의 프로그램을 사용하지 않고 웹 메일로(예를 들어, 그룹웨어) 받았을 때 정상적으로 내용이 확인되지 않고 winmail.dat 파일이 생성될 수 있습니다. 이런 경우 dat 파일을 여는 방법 3가지가 있습니다. 모두 간단하니 상황에 맞게 선택해서 활용해 보세요. winmail.dat 파일 열기 1. winmail.dat 오프너..
nslookup은 네트워크 상태를 트러블 슈팅할 때 종종 사용됩니다. 도메인과 IP의 DNS 서버 매핑 상태를 확인할 수 있습니다. nslookup이란? nslookup은 name server lookup이라는 의미로 도메인 이름 또는 IP 주소에 대한 정보를 질의하는 도구입니다. PC와 연결된 DNS(Domain Name System)을 통해 특정 IP의 도메인이 무엇인지, 또는 특정 도메인의 IP가 무엇인지 확인할 수 있습니다. 윈도우와 리눅스 모두에서 사용 가능합니다. nslookup 사용하는 이유 네트워크 상태에 문제가 있거나 DNS 확인이 필요할 때 자주 사용합니다. 일반 인터넷 망보다는 회사 같은 사내망에서 더 많이 쓰지 않을까 싶네요. 예를 들어, 회사에서 새롭게 구축한 웹 서버가 있고, u..