일단 씻고 나가자

23.05.19 본문

Study/닥치는 대로 주워 담기

23.05.19

일단 씻고 나가자 2023. 5. 20. 03:57

2023. 05. 19 금요일

 

- [Effective Java] 컴포지트 패턴이란? 3가지 구성 요소와 각각의 설명?

: Composite Pattern. 구조 패턴 중 하나.

 

컴포지트 패턴은 크게 Component, Leaf, Composite 3가지로 구성된다.

Component

// interface. LeafComposite 객체가 implements 할 때 공통이 되는 메소드를 abstarct 하게 정의해야 한다.

 

2. Leaf

// Component를 구현한 class.

 

3. Composite

// Component를 구현한 class. Leaf 객체를 담을 수 있는 List를 내부로 가지고 있다.

당연히 이 Listaddremove 할 수 있는 메서드도 구현해야 하며,

사용자가 LeafComposite 객체를 동일하게 취급하고 활용할 수 있기 위해 Component를 마찬가지로 구현하여야 한다.

https://velog.io/@newtownboy/%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%EC%BB%B4%ED%8D%BC%EC%A7%80%ED%8A%B8%ED%8C%A8%ED%84%B4Composite-Pattern

 

 

- 리눅스 명령어와 설명? (실행 중인 프로세스 목록, 종료, 파일 복사)

1. ps [options]

Process Status. 실행 중인 프로세스 목록.

ps만 치게 되면 작성 중인 shell 프로그램(bash)ps 명령어 실행으로 생성된 ps 프로세스만 뜬다. daemon 프로세스(x)와 모든 사용자의 프로세스(a), 그리고 각 프로세스의 소유자가 누구인지(u) 한 번에 보기 위해 보통 ps aux처럼 세 가지를 조합하여 옵션으로 사용한다. (순서는 상관없음)

 

2. kill [options] [pid/job number]

해당하는 프로세스를 종료시킴.

ps를 통하여 알아낸 종료시킬 프로세스의 pid를 직접 적어 종료시키는 방법이 있고,

jobs를 통하여 알아낸 job number(순번) %job number을 통해 종료시킬 수 있다.

option 9는 강제 종료 명령이다. 특정 프로세스의 순서나 꼬임 때문에 종료 명령이 실행이 안 될 수 있는데, 이때 사용하면 강제 종료된다.

 

3. cp [options] [원본 파일/디렉토리명] [새로 만들 파일/디렉토리명]

해당 파일/디렉토리를 복사하여 설정한 이름으로 만듦.

option cp rf [directoryA] [directoryB] 하면 A의 하부 파일, 폴더를 전부 B로 복사함.

 

 

- 하드 링크와 소프트 링크란? 명령어?

: 하드 링크란 원본 파일을 가리키는 바로가기 파일로, 원본 파일이 삭제되어도 데이터가 삭제되지 않음.

이는 디렉토리 엔트리로 원리를 찾을 수 있는데, 하드 링크를 걸게 되면 디렉토리 엔트리에만 새로 만든 하드 링크 파일이 생기고, 그 파일은 역시 원본 파일의 inode를 가리킨다.

이때 원본 파일이 삭제되면 inode는 내부적으로 하드 링크의 개수를 판별하여 하드 링크가 하나라도 남아 있다면 내용을 삭제하지 않는다.

(디렉토리 엔트리 -> inode 블록 -> 데이터 블록(실제 데이터))

명령어는 ln [원본 파일명] [하드 링크를 걸 새로운 파일명]으로 적는다.

 

소프트(심볼릭) 링크란 역시 바로가기 파일이지만 하드 링크와 다르게 원본 파일이 삭제되면 원본 데이터에 접근할 수 없다. (아무 데이터도 없는 빈 파일이 된다.)

소프트 링크의 생성 시에는 자신만의 inode 블록을 만들게 되고, inode는 데이터 블록을 가리키는데 이때의 데이터는 원본 파일의 디렉토리 엔트리 주소를 가리키는 포인터가 된다.

명령어는 ln s [원본 파일명] [소프트 링크를 걸 새로운 파일명]으로 적는다.

 

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.06.21  (0) 2023.06.22
23.06.02  (0) 2023.06.02
23.05.18  (0) 2023.05.19
23.05.17  (0) 2023.05.18
23.05.16  (1) 2023.05.17