전체 글
[Linux] top
[Linux] top
2023.07.30top 명령어란? 각 프로세스들의 상태, CPU와 메모리의 사용률을 확인하고 싶을 때 사용할 수 있는 명령어입니다. top 명령어를 입력했을 때 출력값은 아래와 같습니다. 출력값 중에서 눈여겨볼 곳은 어딘데..? 위에서 언급했듯이 top 명령어를 통해서 각 프로세스들의 상태, CPU/메모리 사용률을 알 수 있습니다. 여기서는 각 프로세스들의 CPU 사용률과 상태값을 어떻게 확인할 수 있는지 보겠습니다. CPU Usage top 명령어 출력값의 상단에 위치한 영역입니다. 초기값은 Cpu(s), 즉 멀티코어 CPU 의 경우 각 코어 사용률의 Average 값을 산출합니다. 전체적인 상황을 보기에 이러한 평균 값도 나쁘지 않지만, 하나의 CPU 만 빡세게 사용되고 있다면 이를 평균값으로 통해서 알아내기는 어렵..
[Linux] free
[Linux] free
2023.07.28free 명령어는? free 는 시스템의 메모리 정보를 출력하는 리눅스 명령어입니다. 단위를 megabyte 로 설정하여 출력하라는 -m 옵션을 추가하면 아래와 같은 출력값이 나옵니다. 출력값을 살펴보면 total, used, free, shared, buff/cache, available 와 같은 컬럼이 존재합니다. total 과 used 는 각각 메모리 총량과 사용 중인 메모리를 나타내는 것입니다. 그렇다면 free와 available 의 차이는? 우선 free 는 어느 프로세스도 사용하고 있지 않은 메모리를 의미합니다. 메모리를 필요로 하는 프로세스에게 바로 할당해줄 수 있는 메모리입니다. 이에 반해 available 은 프로세스에게 실질적으로 할당이 가능한 메모리입니다. 다른 프로세스가 사용중일 ..
[Linux] Syn Flooding
[Linux] Syn Flooding
2023.07.27Syn Flooding 이란? TCP 의 3-Way Handshake 과정에서 클라이언트와 서버는 위 그림과 같이 3번의 패킷 전달을 수행합니다. 클라이언트가 연결하고자 하는 서버에게 SYN 을 보내면, 서버는 그에 대한 응답으로 SYN+ACK 을 보냅니다. 서버로부터 SYN+ACK 패킷을 수신한 클라이언트는 마지막으로 ACK 패킷을 보내며 연결이 성립됩니다. 서버는 클라이언트로부터 SYN 을 받기 전에 listen() 상태를 유지하고 있습니다. 클라이언트로부터 SYN 패킷이 들어오면, 서버는 SYN Backlog 라는 "길이가 제한되어 있는 큐" 에 "Client x가 나와 연결을 하고 싶어한다!" 라고 저장합니다. 그리고 클라이언트에게 SYN+ACK 패킷을 전송하게 됩니다. 클라이언트로부터 ACK 패..
[Linux] OOME (Out-Of-Memory Error)
[Linux] OOME (Out-Of-Memory Error)
2023.07.27OOME란? 사용 가능한 메모리가 부족해서, 더이상 프로세스에게 할당할 수 있는 메모리가 없는 상황을 의미합니다. 이런 상황에서 새로운 프로세스에게 메모리를 할당하기 위해서, 종료할 프로세스를 선택하고 이를 종료함으로써 메모리를 확보합니다. 종료할 프로세스를 선택하는 기준은 무엇인가? OOM Killer 가 종료시킬 프로세스를 선택하는 기준은 oom_score 라는 값입니다. 이 값이 높은 프로세스가 다른 프로세스들보다 더 먼저 종료됩니다. 아래와 같이 oom_score를 가진 프로세스들이 있다고 가정해보겠습니다. 프로세스 1 : 4 프로세스 2 : -2 프로세스 3 : 0 프로세스 4 : 6 종료할 프로세스들은 위 4개만 존재한다고 가정했을 때, 프로세스 4 -> 프로세스 1 -> 프로세스 3 -> 프..
컨테이너에 대한 강의 추천
컨테이너에 대한 강의 추천
2023.07.20컨테이너라고 하면, 흔히들 도커+쿠버네티스 환경을 떠올립니다. 하지만 도커는 컨테이너를 다루는 도구, 쿠버네티스는 도커와 같은 컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 자동화 도구에 불과합니다. 이들을 제대로 사용하려면 컨테이너에 대해서도 잘 알아야합니다. 저 또한 도커와 쿠버네티스를 공부하면서 컨테이너에 대한 지식이 부족함을 느꼈고, 이를 보완하기 위한 여러 자료들을 찾아보다가 좋은 강의가 있어서 글을 작성합니다. HandsOn 형식의 강의입니다. https://www.youtube.com/watch?v=mSD88FuST80
[VMware] Turn on VM with Windows cmd
[VMware] Turn on VM with Windows cmd
2023.07.13m1 맥북을 사용하기 때문에, 가상머신을 로컬 환경에서 실행할 수 없는 분들이 주위에도 여럿 계셨습니다. 저도 그들 중 한 명이구요.. 그렇기에 연구실 윈도우 데스크탑에서 가상머신을 돌리고, 윈도우 데스크탑에 ssh 로 접속하여 공부를 하고 있습니다. 어느 날, 호스트(윈도우 데스크탑)까지는 ssh 연결이 가능하나 가상머신에 ssh 접속이 되지 않는 현상이 발생했습니다. 여러 번의 시도 끝에, VMware(혹은 가상머신만) 가 원인 불명의 사고로 꺼졌음을 알 수 있었습니다. 호스트에도 ssh 로 접속한 저는 cmd 로 VMware 의 가상 머신의 전원을 킬 수 있을지에 대한 의문이 들었고, 찾아냈습니다. 우선 VMware 자체가 셧다운 됐을 가능성이 있어서 VMware 부터 아래의 명령어로 실행시켜주었습..
[Ubuntu] Static IP 주소 변경
[Ubuntu] Static IP 주소 변경
2023.07.04가상 환경에서 여러 대의 Ubuntu 와 통신하기 위해서 설정할 때, IP 주소의 전체적인 틀이 짜여져있으면 더욱 편합니다. 예를 들어, 아래와 같이 3대의 Ubuntu 를 비슷한 IP 주소로 할당할 수 있습니다. Ubuntu20-1 : 172.17.29.61 Ubuntu20-2 : 172.17.29.62 Ubuntu20-3 : 172.17.29.63 이와 같은 (눈, 정신 등의)편안함을 위해, 각각의 Ubuntu IP 주소를 변경해보도록 하겠습니다. ip addr 우선, 이 명령어를 통해 Ubuntu 현재 자신에게 할당된 IP 주소를 확인할 수 있습니다. net-tools 를 설치하고 ifconfig 명령어를 사용하는 방법도 있습니다. 여기서, 빨간색 네모에 적힌 정보를 확인합니다. 고정 IP를 할당할..
[Computing System] 불 논리(Boolean Logic)
[Computing System] 불 논리(Boolean Logic)
2023.06.24모든 디지털 기기는 모두 정보를 저장하고 처리하도록 설계된 칩들은 탑재하는데, 이 칩들은 동일한 구성 요소인 기초 논리 게이트로 만들어집니다. 이번 글에서는 가장 기초적인 논리 게이트인 Nand 를 이용하여 불 게이트(Boolean Gate)를 만들 것입니다. 불 게이트란 불 함수(Boolean Function)를 물리적으로 구현한 것입니다. 불 대수 참/거짓, 1/0, 예/아니오, 켜짐/꺼짐 같은 이진수 값을 다루는 대수학입니다. 불 함수는 이진수를 입력받아 이진수를 출력하는 함수입니다. 컴퓨터는 이진수를 표현하고 처리하는 하드웨어이므로, 불 함수는 하드웨어 아키텍처의 중심적인 역할을 수행합니다. 그러므로, 불 함수를 정의하고 분석하는 것이 컴퓨터 아키텍처를 구축하는 첫 단계가 됩니다. 불 함수를 정의..
[Docker] Windows Bind Mount Path
[Docker] Windows Bind Mount Path
2023.06.21Binding Mount 를 위해서 아래와 같이 명령어를 작성합니다. docker run -d --rm -p 3000:80 --name feedback-app -v feedback:/app/feedback -v "C:\Users\User\Desktop\dock8s\dc\datapractice:/app" -v /app/node_modules feedback-node:volumes 이때, vscode 와 같은 애플리케이션에서 copy path를 하게 되면 위 명령어에 포함된 경로와 같이 백슬래시(\) 로 경로가 구성됩니다. 이러한 경로로 작성 시에, Binding Mount 가 정상적으로 되지 않는 경우가 종종 발생합니다. 경로 상의 백슬래시를 모두 일반 슬래시(/)로 변경해주면 해결됩니다. docker r..
[Algorithms] String(Pattern) Matching
[Algorithms] String(Pattern) Matching
2023.06.01String 이란 길이가 0 이상인 Character 들의 나열을 의미합니다. 길이가 0 인 String 은 "" 와 같이 표현할 수 있으며, Empty String 이라고 부릅니다. 그와 반대로, 길이가 1 이상인 String 은 Non-empty String 이라고 부릅니다. String 의 예시 - C++ Program : C++ 로 작성한 .cpp 파일도 하나의 문자열이라고 할 수 있습니다. - HTML Document : 호호잇!! 과 같이 우리가 브라우저를 통해서 웹페이지를 이용할 때, 사용되는 HTML 파일도 하나의 문자열입니다. - DNA Sequence : {A, C, G, T} 로 구성된 염기서열의 나열도 문자열입니다. - Digitized Image : 디지털 이미지는 {0, 1} 로..
[Algorithms] Dynamic Programming
[Algorithms] Dynamic Programming
2023.05.26/* 강의 정리 */ Dynamic Programming(동적계획법) 이란? 처음에 주어진 큰 문제를 여러개의 작은 문제로 나누어 푸는 방법을 말합니다. 어랏? Divide&Conquer(분할정복기법)랑 같은거 아닌가? 할 수도 있지만, 큰 차이점 하나가 있습니다. Dynamic Programming 은 중복 계산을 하지 않는다는 점입니다. Divide&Conquer 에서는 큰 문제를 여러개의 작은 문제로 나눈 후에, 작은 문제를 계산하고 그 결과를 결합해 윗 단계의 문제를 해결하는 방식이였습니다. Dynamic Programming 에서는 이와 거의 유사하지만, 나눠진 작은 문제들 중 이미 앞에 계산한 적이 있는 연산이라면 이를 중복해서 계산하지 않고 이전의 결과값을 불러와 사용합니다. 이러한 이전 연..
[Networks] Networks Under Attack
[Networks] Networks Under Attack
2023.05.24이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.