전체 글
덤프파일 생성방법
덤프파일 생성방법 Heap dump jmap은 JVM 프로세스의 heap 덤프를 생성하는 명령어이다. jmap -dump:format=b,file=`hostname`_dump.hprof $pid Thread dump jstack은 JVM 프로세스의 thread 덤프를 생성하는 명령어이다. jstack -l $pid >> `hostname`_thread_dump.txt CPU 사용량 (top) top은 실시간 리눅스 CPU, 메모리 사용량을 체크할 수 있는 도구이다. top -H -n 1 -p $pid >> `hostname`_cpu.txt 프로세스 스택 정보 (pstack) pstack은 프로세스의 스택 정보를 보여주는 명령어지만, 멀티 쓰레드 프로그램의 경우 쓰레드 별 스택 정보를 확인할 수 있어 쓰레..
리눅스 sudo 패스워드 없이 사용
sudo 패스워드없이 사용 리눅스에서 sudo를 패스워드없이 사용하는 방법입니다. root 계정으로 /etc/sudoers.d/[사용자명] 파일에 아래 내용을 추가합니다. 아래 예제에서 NOPASSWD: 를 빼면 sudo 권한만 부여됩니다. (sudo 실행시 패스워드 입력필요) 모든 명령어에 대한 sudo 권한 부여 vi 에디터로 추가 # vi /etc/sudoers.d/[사용자명] # 아래 내용 입력 후 저장 [사용자명] ALL=NOPASSWD: ALL echo 명령어로 추가 # echo 명령어로 추가 echo '[사용자명] ALL=NOPASSWD: ALL' > /etc/sudoers.d/[사용자명] 특정 명령어만 sudo 권한 부여 vi 에디터로 추가 # vi /etc/sudoers.d/[사용자명] ..
리눅스 scp 명령어
SCP 명령어 scp(secure copy)는 ssh 통신을 이용한 파일 전송 명령어입니다. 사용법 scp file user@host:/path/to/file # 리모트 서버로 파일 전송 scp user@host:/path/to/file /local/path/to/file # 리모트 서버에서 파일 가져오기 scp file1 file2 user@host:/path/to/directory # 여러 파일 전송 scp -r /path/to/directory user@host:/path/to/directory # 디렉토리 전체 전송 # (옵션) # -r : 디렉토리 전송 # -v : 전송 상세내용 보기 # -C : 압축하여 전송 # -l 800 : bandwith를 800으로 제한 # -p : 전송하는 파일의 원..
리눅스 du 명령어
du 명령어 du는 디렉토리별 디스크 사용량을 알 수 있는 명령어입니다. 사용법 du [OPTION] [FILE] # -a : 디렉토리 + 모든 파일들의 사용량 표시 # -s : 용량의 합계를 보여줌 # -h : 사람이 보기 편한 포멧으로 보여줌 (e.g., 1K 234M 2G) # -d : 출력할 디렉토리 depth를 설정 # -x : 다른 파일 시스템의 디렉토리는 스킵 사용 예 du -sh * # 현재 경로의 모든 파일/디렉토리 용량 보기 du -sh * | sort -rh | head -10 # 현재 경로의 용량 큰 10개 파일/디렉토리 추출
Docker 명령어
Docker 명령어 자주 사용하는 도커 명령어 정리 docker ps # 컨테이너 확인 docker images # 도커 이미지 확인 docker top $CONTAINER_ID # 컨테이너 내 running process 확인 docker build -t $IMAGE_NAME:$TAG . # 빌드하기 docker tag $IMAGE_NAME:$TAG $IMAGE_NAME:latest # latest 버전 설정 docker run -d --name $NAME $IMAGE_NAME:$TAG # docker 실행 docker run -d -p 8000:8000 --name $NAME $IMAGE_NAME:$TAG # docker 포트 매핑 docker run -d -v $CONTAINER_PATH:$LOCA..
Heap Sort (힙정렬)
Heap Sort (힙정렬) 힙 정렬은 비교기반 정렬 알고리즘으로 선택정렬의 향상된 버전으로 볼 수 있습니다. 선택정렬과 유사하게 정렬된 영역과 정렬되지 않은 영역으로 나누고 정렬되지 않은 영역의 가장 큰 요소를 추출한 후 정렬된 영역에 삽입합니다. 선택정렬과 다른 점은 힙 정렬은 정렬되지 않은 영역의 선형탐색에 시간을 낭비하지 않습니다. 잘 구현된 퀵 정렬보다는 실행속도가 다소 느리며 O(nlogn)의 시간복잡도를 가집니다. Heap Sort 정렬과정 정렬해야 할 요소들로 최대 힙 트리 를 구성합니다. (내림차순으로 정렬은 최소 힙 트리) 최대 힙: 완전 트리이면서 모든 노드가 자식들보다 큰 트리 최소 힙: 완전 트리이면서 모든 노드가 자식들보다 작은 트리 가장 큰 수(루트에 위치)를 힙에서 꺼내 배열..
Insertion Sort (삽입정렬)
Insertion Sort (삽입정렬) 삽입정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입함으로써 정렬하는 알고리즘입니다. O(n^2)의 시간복잡도를 가지지만 선택정렬, 버블정렬 알고리즘에 비해 빠릅니다. 삽입을 할 때 데이터를 하나씩 밀어야 하기 때문에 배열이 길어질수록 효율이 떨어집니다. Insertion Sort 정렬과정 초기상태: (5 3 4 2 1 7 6) (5 3 4 2 1 7 6) (5 3 4 2 1 7 6) (3 5 4 2 1 7 6) (3 4 5 2 1 7 6) (2 3 4 5 1 7 6) (1 2 3 4 5 7 6) (1 2 3 4 5 7 6) (1 2 3 4 5 6 7) Insertion Sort 코드 (Python) de..
Selection Sort (선택정렬)
Selection Sort (선택정렬) 선택정렬은 정렬되지 않은 부분에서 가장 최소의 값을 찾아 시작부분에 배치하여 정렬하는 알고리즘입니다. O(n^2)의 시간복잡도를 가지며 알고리즘이 단순하여 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있습니다. Selection Sort 정렬과정 주어진 배열에 최소 값을 찾습니다. 그 값을 맨 처음에 위치한 값과 교체합니다. 맨 처음 위치를 제외한 나머지 배열을 같은 방법으로 정렬합니다. 초기상태: (5 3 4 2 1 7 6) Array 최솟값 (5 3 4 2 1 7 6) 1 (1 3 4 2 5 7 6) 2 (1 2 4 3 5 7 6) 3 (1 2 3 4 5 7 6) 4 (1 2 3 4 5 7 6) 5 (1 2 3 4 5 7 6) 6 (1 2 3 4 5 6 7..
Bubble Sort (버블정렬)
Bubble Sort (버블정렬) 버블소트는 인접한 요소들을 비교하여 정렬하는 알고리즘입니다. 인접한 두개의 요소들을 비교하여 크기가 순서대로 되어있지 않으면 서로 변경합니다. O(n^2)의 시간복잡도를 가지지만 코드가 단순하여 자주 사용됩니다. Bubble Sort 정렬과정 초기상태: (5 3 4 2 1) 1회전(3 5 4 2 1) -> (3 4 5 2 1) : 5 > 4, 교환(3 4 2 5 1) -> (3 4 2 1 5) : 5 > 1, 교환 결과: (3 4 2 1 5) (3 4 5 2 1) -> (3 4 2 5 1) : 5 > 2, 교환 (5 3 4 2 1) -> (3 5 4 2 1) : 5 > 3, 교환 2회전(3 4 2 1 5) -> (3 2 4 1 5) : 4 > 2, 교환결과: (3 2 1..