일단 씻고 나가자

23.05.03 본문

Study/닥치는 대로 주워 담기

23.05.03

일단 씻고 나가자 2023. 5. 4. 05:00

2023. 05. 03 수요일

 

- [Regex] 정규식의 긍,부정형 전,후방 탐색의 기호?

 

 

- [Java] 문자열의 뒤에서부터 찾아 인덱스를 찾는 함수? n 번째 인덱스부터 찾는 방법?

: 기본적으로 string.indexOf, string.lastIndexOf 함수를 활용한다.

lastIndexOf는 문자열의 뒤에서부터 탐색하며,

두 함수 모두 두 개의 매개변수를 받을 수 있는데, 첫 번째는 해당 문자열 (혹은 char)

두 번째는 n번째 인덱스부터 탐색을 실행하도록 설정할 수 있다.

이때 주의할 점은 lastIndexOf의 두 번째 매개변수는 뒤에서부터 n번째 인덱스가 아니라 앞에서부터라는 점이다.

 

 

- 네트워크의 접속 형태 2가지?

1. peer-to-peer 일대일 네트워크

// 2대의 컴퓨터를 서로 물리, 논리적으로 연결. 파일, 혹은 프린터 같은 자원을 공유하긴 쉽지만, 서버 역할의 기기가 없어 하나의 컴퓨터를 끄면 해당 관련 파일이나 연결 자원을 사용할 수 없다.

 

2. primary-secondary 주종 네트워크

// 설치 비용이 저렴하며 유지보수, 확장이 용이하고 하나의 컴퓨터가 이상이 있어도 전체 네트워크에는 영향을 미치진 않지만, 중앙 전송 제어장치 장애 시 네트워크 전체가 망가지며 통신량이 많아지면 전송이 지연된다.

 

 

- 네트워크의 구조 6가지와 각각의 접속 형태 및 설명?

1. 스타형 (Star, 성형) - 주종

// 중앙의 허브를 중심으로 모든 장치가 일대일 방식으로 연결.

각 장치가 직접 연결되어 있진 않으며, 중앙 제어장치가 교환 역할을 담당.

(ex 전화 통신망, 사설교환 통신망)

 

2. 메시형 (Mesh, 망형) - 일대일

// 모든 장치가 연관성 없이 서로 연결.

통신량 문제를 해결할 수 있지만, 모든 장치가 서로 연결되어야 하여 설치, 구성이 어렵다.

 

3. 링형 (Ring) - 일대일

// 모든 컴퓨터를 하나의 링으로 묶으며, 각 노드는 인접한 노드 두 개에만 연결된다.

송신 데이터를 이웃 컴퓨터가 받아서 넘기는 단방향 싱글링 방식과

단방향 전송 중 장애 발생 시 반대 방향으로 데이터를 전송하는 더블링 방식이 있다.

구조가 단순하며 설치가 쉽고 복구가 빠르지만, 제어 절차가 복잡하다.

 

4. 버스형 (Bus) - 일대일, 주종

// Multi-to-Point 방식으로 하나의 케이블에 각 노드를 탭, 유도선으로 연결하며

케이블의 시작과 끝엔 터미네이터로 신호가 되돌아오는 것을 막는다.

설치 간단, 장비 추가가 쉽지만 중앙 장치 이상 이슈와 장비 수에 따라 네트워크 성능 문제.

 

5. 트리형 (Tree) - 주종

// 트리처럼 최상단과 부모 노드에 허브를 설치하고 밑단에 더 많은 장치를 연결할 수 있다.

네트워크 확장이 쉽고 제어 간단, 전송거리를 늘릴 수 있으나 병목현상 발생과 중앙 전송제어장치 고장 시 전체 네트워크가 망가진다.

 

6. 혼합형

// 성형의 모습에 여러 형태를 혼합하여 구성한다.

https://devgomi.tistory.com/37

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=yosi3world&logNo=50077828565

https://velog.io/@archivvonjang/%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-01-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%A2%85%EB%A5%98

 

 

- OSI 7계층의 주요 5층에 대한 설명과 TCP/IP의 차이?

1. Physical

// 전자 신호를 전선을 통해 전달한다. 이때 데이터를 디지털 신호로 보내면 전선의 최대, 최소 hz의 차이 때문에 데이터가 제대로 전송이 되지 않을 수 있으므로 아날로그 신호로 바꾸어(encoding) 전달하면 수신 측에서 디지털 신호로 바꾸어(decoding) 해석한다.

 

2. Data Link

// 데이터가 연속적인 비트로 올 때 어디서부터 어디까지가 하나의 데이터인지 나눌 수 없으므로 이를 분기하는 비트를 넣는 역할.

 

3. Network

// 현재의 데이터가 어디로 송신 받을 것인지 상대방의 ip 주소를 붙여주는 역할.

 

4. Transport

// 어느 어플리케이션에서 사용할 것인지 port 번호를 붙여주는 역할.

 

5. Application

// 서버와 클라이언트의 status code를 붙여주는 역할.

 

TCP/IP가 현재 주력 아키텍쳐이며, 시장 점유율 싸움에서 OSI에게 승리.

https://www.youtube.com/watch?v=1pfTxp25MA8

 

 

- 파일 시스템의 구조? 블록 종류? inode 블록과 파일 관리 방법?

: 기본적으로 블록 단위로 이루어져 있다.

 

1. 슈퍼 블록 // 파일 시스템 및 파티션(물리적 디스크를 논리적 디스크로 분할) 정보 포함.

2. 아이노드 블록 // 각 파일의 상세 정보

3. 데이터 블록 // 실제 데이터 블록

 

각 파일은 유일한 값인 inode를 하나씩 가지며, inode 기반의 정보를 기록하는 메타 데이터로 파일을 관리한다. (inode 블록에 존재) 메타 데이터에는 파일 권한, 소유자 정보, 파일 사이즈, 생성 시간 등의 시간 관련 정보, 데이터 저장 위치 등이 있다.

 

 

- inode 블록이 파일 내의 블록 주소 정보를 관리하는 방법?

: 블록의 모든 주소를 직접 가지고 있다면 블록의 크기를 넘어버릴 수 있으므로, 직접 주소를 저장하는 공간은 12개만 두고 그 이상이 필요하다면 주소를 담은 또 다른 블록(4byte = 1024)을 가리키게 하여 나머지 주소를 저장. 이를 direct/single/double indirect (pointer)라 한다. (single -> 1024direct..같이 점점 크기를 키운다) 하지만 무한정으로 지원해주진 않기 때문에 파일 시스템마다 최대 파일 크기를 설정한다.

 

 

- 디렉토리 엔트리란?

: 디렉토리 내부에서 현재 디렉토리 및 하부 폴더의 정보를 갖는 구조체. 각 폴더는 디렉토리 엔트리를 가지며 보통 inode와 파일명을 갖는다.

 

 

- 가상 파일 시스템이란? (드라이버)

: Virtual File System. 유닉스 계열 운영체제는 모든 것을 파일로 다루므로, 저장매체 혹은 네트워크, I/O 등을 모두 파일을 읽고 쓰는 것처럼 다룬다.

이때 기기와 기능마다 저마다 다른 readwrite의 인터페이스를 각 요구사항에 맞게 구현하는 것이 드라이버이다.

(ex. 네트워크 read 수신, write 송신)

 

 

- 특수 파일이란? 두 종류?

: 디바이스를 파일처럼 다루는 것.

 

1. 블록 디바이스 (Block Device) // 블록 단위 파일 (저장 매체)

2. 캐릭터 디바이스 (Character Device) // byte 단위 데이터 전송 (키보드, 마우스 등)

 

 

- OS의 역할을 크게 5가지로 나누면?

1. Process Management (CPU) // 스케쥴링

2. Memory Management (RAM) // 가상 메모리

3. File System (Disk) // 파일 시스템 (block device)

4. Device Drivers // 디바이스 (character device)

5. Network // protocols, network drivers

 

이 역할을 응용 프로그램과 system call로 소통하며, 하드웨어를 관리한다.

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

23.05.09  (0) 2023.05.10
23.05.04  (0) 2023.05.05
23.05.02  (0) 2023.05.03
23.05.01  (0) 2023.05.02
23.04.28  (0) 2023.04.29