이전 글에서 절대 경로와 상대 경로를 주구장창 설명한 이유는 pwd 명령어를 설명하기 위해서입니다. 이 명령어는 현재 내가 작업하고 있는 위치를 절대 경로로 출력하는 함수입니다. 그러면 루트를 기준으로 현재 내가 있는 위치를 화면에다가 프린트 할 거에요. 만약에 루트라면, /만 출력을 할 거에요. 루트에는 여러가지 폴더들이 있는데요. 그 중, 저는 home 디렉토리에 들어가 보겠습니다. 그러면 이 안에 chogahui05라는 폴더가 또 있는데요. 이 안으로 들어가면 터미널이 켜졌을 때, 작업 디렉토리가 나타납니다. 저는 /home/chogahui05라는 디렉토리에서 작업을 할 겁니다. 그리고 몇 개의 디렉토리와, 폴더들을 만들 겁니다. 이것을 디렉토리 구조로 나타내면 다음과 같습니다. chogahui05..
OS 검색 결과
절대 경로와 상대 경로는 이야기를 많이 들어보셨을 거에요. 이는 어디를 기준으로 잡느냐에 따라서 차이가 나는데요. 간단하게 실습을 한 번 해 봅시다. 먼저, C 폴더 밑에 있는 User 밑에 있는 cho 폴더를 보면, gahui와 gahui2가 있어요. 여기에는 어떤 녀석들이 들어가 있는지 봅시다. 먼저 gahui에 들어가 봅시다. 그러면 a.c와 실행파일 a가 있어요. 그리고 폴더 f에 들어가 봅시다. 그러면 왠 1.txt가 있는 것을 볼 수 있는데요. 이 파일을 한 번 열어봅시다. 그러면 "abcde"라는 문자열 1줄이 있는 것을 볼 수 있습니다. 그 다음에, cho 밑에 있는 또 다른 폴더인 gahui2를 열어봅시다. 이 안에도 1.txt가 있는데요. 여기에는 저 이름이 내 개라는 문자열이 쓰여져 ..
오늘은 Java의 Thread 클래스 안에 있는 join 메서드가 어떤 식으로 동작하는지 간단하게 알아봅시다. 아래 예제 프로그램을 실행시켜 봅시다. 어떻게 실행이 될까요? worker a가 실행이 끝난 후에, Main 쓰레드가 종료됩니다. 그러면, join() 함수는 특정한 스레드가 종료될 때 까지 기다릴 때 쓴다는 건데, 어떤 식으로 동작하는지는 천천히 뜯어보도록 하겠습니다. a.run()을 호출하였습니다. 그 순간, worker a가 run() 메소드를 호출하면서 돌아갑니다. 대충 그림과 같은 상황입니다. 그 다음에, Main 스레드에서는 a.join()을 호출하는데요. 여기서 무슨 일이 일어나는지만 간단하게 봅시다. join을 호출할 때, 매개 변수가 없으면 내부적으로 join(0)을 호출합니다...
리눅스에서는 '|'라는 문자와 ''와 같이 명령어를 쓰는 경우가 많아요. 전자는 파이프, 후자는 리다이렉션이라고 이야기를 하는데요. 오늘은 그 중, 파이프 명령어를 알아보도록 하겠습니다. 파이프란, 어떠한 프로세스의 출력이, 그 다음 프로세스의 입력이 되는 것을 말합니다. 여기까지만 봐서는 무슨 말인지 이해가 안 갈 듯 싶네요. 예제를 몇 개 들어보겠습니다. 먼저, 현재 디렉토리에 있는 모든 파일과 디렉토리를 이름 오름차순으로 9개만 자세히 보는 명령을 작성해 봅시다. 아니, 이게 무슨 끔찍한 조합인 거 같지만, 사실 그리 어렵지 않습니다. 먼저, 무엇부터 해야 할까요? 현재 디렉토리에 있는 파일 목록 모두를 자세히 출력해야 합니다. 이것은 ls -al로 할 수 있어요. 다음에, 이 결과값을 이용해서, ..
오늘은 Java에서 쓰레드를 생성하고 실행하는 방법에 대해서만 알아보도록 하겠습니다. Runnable을 매개값으로 하는 Thread 생성자를 호출하거나, 아니면 worker가 Thread를 상속하는 방법 2가지가 있는데요. 이 둘을 먼저 알아보도록 하겠습니다. 코드를 컴파일 하고 실행을 합니다. static void main(String args[]); 이 친구가 있는데요. 이 친구를 실행하고 종료하는 쓰레드를 메인 쓰레드라고 합니다. 그런데, worker를 하나 더 만들 수 있어요. 즉, Main 실행 흐름만 만드는 것이 아니라, 다른 역할을 하는 스레드 또한 만들 수 있는데요. 예를 들어서, Main에서 게임의 전체적인 알고리즘 같은 것을 수행한다면, Worker에서 배경 음악을 재생한다던지. 그런 ..
최근댓글