프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 프로세스 = 부모자식 관계 부모 프로세스는 자식 프로세스를 생성하고 자식 프로세스는 또 다른 자식 프로세스 생성 가능 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료 자식 프로세스가 종료 되면 부모 프로세스로 리턴값을 돌려주고 종료된다. 프로세스 종류 데몬 프로세스 백그라운드 에서 특정 서비스 제공하기 위해 존재, 리눅스 커널에 의해 실행 고아 프로세스 자식 프로세스가 아직 실행중인데 부모가 없어지면 발생, (init)1번 프로세스가 고아 프로세스의 새로운 부모가 되도록 지원 좀비 프로세스 자식 프로세스가 실행을 종료했는데도 리턴값이 정상적으로 돌아오지 않았을 때, 프로세스 테이블 목록에 남아 있는 경우 좀비 프로세스가 증가하면,프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행..

  • 특징 추출 ( Feature Extraction ) 서로 다른 부류에 속한 데이터를 구별짓기 위해 필요한 특징을 설계하고 추출하는 과정. 사람의 얼굴에서 안경을 썼냐, 머리 스타일이 어떠냐, 코의 모양은 어떠냐 등의 데이터를 뽑아내서 분류를 가장 잘 할 수 있는지를 결정 하는 특징을 추출하는것. ex) 특징 = 피부색, 눈 크기, 입술 크기 특징 벡터 X = {$x_1,x_2,x_3$} 특징 벡터의 차원 = 3차원 일정 눈, 피부색, 입술크기가 각각 0에 가까울수록 작음 0에 가까울수록 검정색임 0에 가까울수록 작음 으로 한다고 하면, 데이터 값의 학습을 축적 할 수 있다. A라는 사람이 있다고 하면, $X^1 =(x_1,x_2,x_3) = (0.854,0.221,0.134)$ 이런식 으로 추출 할 수 ..

  • 1. 리눅스 운영 및 관리 2. 리눅스 활용 총 80문항 리눅스 파일시스템을 제외한 문제만 다룬다. 리눅스 운영 및 관리 1. 다음과 같이 허가권 값이 변경 되었을 경우 중간에 실행된 명령으로 알맞은 것은? chmod = 허가권 을 변경하는 문제 chmod g+s /project 그룹에 프로젝트에 대한 슈퍼 권한을 준다. 4. 다음 중 디렉터리에 부여되는 w 권한에 대한 설명으로 알맞은 것은? 2 w권한 = rwx중 write 로 쓰기권한을 이야기 함 으로, 해당 디렉터리에 파일을 생성 또는 삭제할 수 있다. 이다 수정권한을 주는것을 이야기 한다. 5. 다음 명령의 실행 결과로 생성되는 lin.txt 파일의 허가권 값으로 알맞은 것은? 4 chmod o=r lin.txt 임으로 ugo 중 유저, 그룹, ..

  • YARN = 33P 의 4자기 노드의 동작 방식 이해하기 (1) client가 RM에게 작업을 요청함 (2) RM은 AM을 구동함 (3) AM은 application 견적 보고 필요한 리소스를 요청함 (4) NM을 통해 application용 컨테이너를 구동함 (map task, reduce task, spark executor 등) (5) 컨테이너 내에서 task를 수행함 Client에서 작업이 들어온다 -> Name노드에서 명령을 받고 스케줄러를 받아와서 데이터를 어찌 분할할지 결정 그 후 지정할 Data Node에 있는 Application Master에 작업명령을 할당. 그 이유는 효율성 때문에 이런 분할방식을 사용함. 그 후 Data Node 의 Application Master 가 더 많은 자..

  • 파일의 접근권한 = 기호모드 -> 권한 기호 표시 = 숫자모드 -> 권한 기호 표시 파일의 접근 권한 보호 리눅스는 파일에 무단으로 접근하는것을 방지하고 보호하는 기능을 제공함. 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근 유무를 구분하여 접근 권한을 제한함 파일의 속성 번호 속성값 의미 1 - 파일의 종류(-: 일반 파일, d : 디렉터리) 2 rw-r--r-- 파일을 읽고 쓰고 실행할 수 있는 접근 권한 표시 3 1 하드 링크의 개수 4 root 파일 소유자의 로그인 ID 5 root 파일 소유자의 그룹 이름 6 223 파일의 크기(바이트 단위) 7 2월 20 21:17 파일이 마지막으로 수정된 날짜 8 /etc/hosts 파일 명 파일의 I node 구조체에 저장되는 데이터 이다. 접..

  • Correlation & Convolution Spatiol filter 임. Correlation = 원래 있던 마스크를 사용하여 데이터의 Special filter를 하는것 Convolution = 원래 있던 마스크를 180 도 회전시킨 뒤 데이터를 Special filter 1 2 3 4 5 6 7 8 9 Correlation 래스터 스캐닝 방향으로 이동시키면서 데이터를 Special Filter를 진행함. 9 8 7 6 5 4 3 2 1 Convolution 원본 마크스를 180도 회전시킨 다음 래스터 스캐닝 방향으로 이동시키면서 데이터를 Special Filter를 진행함 마스크의 데이터값 결정 요건 마스크의 계수값 결정의 목적에 따라 달라진다. 스무딩 필터링 영상을 조금 뿌옇게 만드는 역활 (..

작성일
2022. 10. 26. 20:56
작성자
WDmil
728x90

프로세스 = 부모자식 관계

부모 프로세스는 자식 프로세스를 생성하고 자식 프로세스는 또 다른 자식 프로세스 생성 가능

자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료

 

자식 프로세스가 종료 되면 부모 프로세스로 리턴값을 돌려주고 종료된다.

 


프로세스 종류

 

데몬 프로세스

  • 백그라운드 에서 특정 서비스 제공하기 위해 존재, 리눅스 커널에 의해 실행

 

고아 프로세스

  • 자식 프로세스가 아직 실행중인데 부모가 없어지면 발생,
  • (init)1번 프로세스가 고아 프로세스의 새로운 부모가 되도록 지원

 

좀비 프로세스

  • 자식 프로세스가 실행을 종료했는데도 리턴값이 정상적으로 돌아오지 않았을 때, 프로세스 테이블 목록에 남아 있는 경우
  • 좀비 프로세스가 증가하면,프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행되지 않을 수도 있음.

 

프로세스 목록 보기

현재 실행 중인 프로세스의 목록을 보는 명령 : ps

ps  
기능 현재 실행중인 프로세스 정보 출력
형식 ps 옵션
옵션 < 유닉스 옵션 > -e : 시스템에서 실행중인 모든 프로세스의 정보 출력
-f  : 프로세스에 대한 자세한 정보 출력
-u uid : 특정 사용자에 대한모든 프로세스 정보 출력
-p pid : pid로 지정한 특정 프로세스의 정보를 출력한다.
< BSD 옵션 > a : 터미널에서 실행한 프로세스의 정보를 출력한다.
u : 프로세스 소유자의 이름, CPU 사용량, 메모리 사용량 등
x : 시스템에서 실행중인 모든 프로세스 정보를 출력한다.
<GNU 옵션> --pid PID 목록 : 목록으로 지정한 특정 PID 정보를 출력한다.
사용 예 ps     ps-ef     ps aux

 

ps -f

ps -f의 출력 정보

항목 의미 항목 의미
UID 프로세스를 실행한 사용자 ID STME 프로세스의 시작 날짜나 시간
PID 프로세스 번호 TTY 프로세스가 실행된 터미널의 종류와 번호
PPID 부모 프로세스 번호 TIME 시간정보 출력
C CPU 사용량(%값) CMD 실행되고 있는 프로그램 이름(명령)

 

STAT에 사용되는 문자 의미

문자 의미 비고 문자 의미 비고
R 실행중(running)   STIME 프로세스의 시작 날짜나 시간  
S 인터럽트가 가능한 대기(sleep)상태   s 세션 리더 프로세스 BSD
형식
T 작업 제어에 의해 정지된 (stooped)상태   + 포그라운드 프로세스 그룹
Z 좀비 프로세스(defunct)   l(소문자L) 멀티 스레드

터미널에서 실행한 프로세스 정보 출력하기 : a

ps a

다양한 옵션 : a, u 옵션

a와 u옵션을 함께 사용하면, 터미널에서 실행한 프로세스의 상세정보를 출력, CPU와 메모리 사용량 등

ps au

항목 의미 항목 의미
USER 사용자 계정 이름 VSZ 사용하고 있는 가상 메모리의 크기
$CPU CPU 사용량을 퍼센트로 표시 RSS 사용하고 있는 물리적 메모리의 크기
%MEM 물리적 메모리 사용량을 퍼센트로 표시 START 프로세스 시작 시간

 

전체 프로세스 목록 출력하기 (BSD 옵션) :ax옵션

시스템에서 실행중인 모든 프로세스를 출력

 

-aux 옵션을 -ef처럼 시스템에서 실행 중인 모든 프로세스에 대한 자세한 정보를 출력

 

특정 사용자의 프로세스 목록 출력하기 : -u 옵션

 

- 더 상세한 정보를 보고 싶으면 -f옵션을 함께 사용( 옵션 사용 순서 지켜야 함 )

 

ps-ef 로 데이터를 가져오면 데이터 양이 많기 떄문에 grep 명령을 | 로 연결하여 특정 프로세스 에 대한 정보만 따로 가져와서 검색 하면 된다.

 

pgrep 명령을 이용해 특정 프로세스 정보 검색하기

pgrep  
기능 지정한 패턴과 일치하는 프로세스에 대한 정보를 출력한다
형식 pgrep [옵션] [패턴]
옵션 -x : 패턴과 정확히 일치하는 프로세스 정보를 출력한다.
-n : 패턴을 포함하고 있는 가장 최근의 프로세스 정보를 출력한다
-u 사용자 이름 : 특정 사용자에 대한 모든 프로세스를 출력한다.
-l : PID와 프로세스 이름을 출력한다.
-t term : 특정 단말기와 관련된 프로세스 정보를 출력한다.
사용 예 pgrep bash

 

-bash 패턴을 지정하여 검색한 예

pgrep 명령에 -l ( 소문자 L ) 을 지정하여 PID에 이름만 출력함.

 

ps -fp $(pgrep -x bash)

ps에서 bash라는 이름을 가진 데이터를 추출하여 데이터를 표시한다.

 

옵션으로 사용자 명을 지정하여 검색을 가능함.

ps -fp $(pgrep -u user bash)

 

kill 명령을 이용해 프로세스 종료 가능.

kill  
기능 지정한 시그널을 프로세스에 보낸다
형식 kill [ 시그널 ] PID
시그널 -2 : 이넡럽트 시그널을 보낸다.
-9 : 프로세스를 갖에로 종료한다.
-15: 프로세스가 관련된 파일을 정리하고 프로세스를 종료한다. 종료되지 않는 프로세스
사용 예 kill 1001          kill -15 1001          kill -9 1001

ps -fp $(pgrep -x man) : man 이라는 패턴을 정확하게 인식하고있는 데이터를 ps로 리턴해라.

 

여기서 이 프로세스를 강제 종료 하려면,

kill -9 2688(프로세스 번호) 를 치면 된다.

pkill -x man

이라고 쳐도, 위의 kill 명령과정이 빠르게 진행된다,  그러나 이 명령어는 man이 포함되는 다른 프로세스가 있을 수도 있기 때문에, 다른 모든 man관련 프로그램도 종료가 된다.

 

프로세스 관리 도구

- top 명령 : 현재 실행중인 프로세스에 대한 정보를 주기적으로 출력

항목 의미 항목 의미
PID 프로세스 ID SHR 프로세스가 사용하는 공유 메모리 크기
USER 사용자 계정 %CPU CPU 사용량
PR 우선순위 %MEM 메모리 사용량(%)
NI Nice 값 TIME+ CPU 누적 이용 시간
VIRT 프로세스가 사용하는 가상 메모리 크기 COMMAND 명령 이름
RES 프로세스가 사용하는 메모리 크기    
항목 의미 항목 의미
Enter, Space Bar 화면을즉시 다시 출력한다. u 사용자에 따라 정렬하여 출력한다.
h, ?  도움말 화면을 출력한다. M 사용하는 메모리 크기에 따라 정렬하여 출력한다.
k 프로세스를 종료한다. 종료할 킬 프로세스의 PID를 물어본다. p CPU 사용량에 따라 정렬하여 출력한다.
n 출력한 프로세스의 개수를 바꾼다 q top 명령을 종료한다.

-t 옵션을 이용 하여 CPU 별로 사용량을 확인 가능

GNOME = 윈도우 작업 관리자 같은 형태로 출력할 수 있음

 

포 그라운드 작업

사용자가 입력한 명령이 실행되고 결과가 출력될 때까지 기다려야 하는 방식으로 처리되는 프로세스

sleep 100 ( 100초간 기다림)

 

백그라운드 작업

명령을실행하면 명령의 처리가 끝나는것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있음

sleep 100&

프롬프트가 나와서 작업 진행 가능

 

백그라운드 작업과 출력 방향 전환하기

백그라운드로 처리할 때는 주로 출력과 오류 방향 전환을 하여 실행 결과와 오류 메세지 를 파일로 저장

 

작업 목록 보기 : jobs

jobs  
기능 백그라운드 작업을 모두 보여준다. 특정 작업 번호를 지정하면 해당 작업의 정보만 보여준다.
형식 jobs [ %작업번호 ]
% 작업 번호 % 번호 : 해당 번호의 작업 정보를 출력한다.
%+ 또는 %% : 작업 순서가 +인 작업 정보를 출력한다.
%- : 작업 순서가 -인 작업 정보를 출력한다.
사용 예 jobs %1                         j obs

jobs 명령 출력 항목

항목 출력 예 의미
작업 번호 [1] 작업 번호로서 백그라운드로 실행할 때마다 순차적으로 증가한다([1], [2], [3], ...)
작업 순서 + 작업 순서를 표시한다.
+ : 가장 최근에 접근한 작업
- : +작업보다 바로 전에 접근한 작업
공백 : 그 외의 작업
상태 실행 중 작업의 상태를 표시한다.
실행중(Running) : 현재 실행중
완료된(Done) : 작업이 정상적으로 종료된다
종료됨(Terminated) : 작업이 비정상적으로 종료된다.
정지(Stopped) : 작업이 잠시 중단된다.
명령 sleep 100& 백그라운드로 실행중인 명령

작업전환하기.

명령 의미
Ctrl + z 또는 stop [ % 작업 번호 ] 포그라운드 작업을 중지한다.(종료하는것이 아니라 잠시 중단)
bg[%작업 번호] 작업 번호가 지시하는 작업을 백그라운드 작업으로 전환한다.
fg [%작업 번호] 작업 번호가 지시하는 작업을 포그라운드 작업으로 전환한다.

로그아웃 후에도 백그라운드 작업 계속 실행하기 : nohub

로그아웃 한 다음에도 작업이 완료될 때 까지 백그라우늗 작업 실행해야 할 경우 nohub 명령 사용

nohub  
기능 로그아웃 한 뒤에도 백그라운드 작업을 계속 실행한다.
형식 nohub 명령&

작업 예약

특정한 시간에 작업을 수행하도록 예약할 수 있는 두가지 방법이 있다.

정해진 시간에 한번만 수행

at  
기능 예약한 명령을 정해진 시간에 실행한다.
형식 at [ 옵션 ] 시간
옵션 -l : 현재 실행 대기 중인 명령의 전체 목록을 출력한다.(atq 명령과 동일하다)
-r 작업번호 : 현재 실행 대기 중인 명령에서 해당 작업 번호를 삭제한다(atrm과 동일)
-m : 출력 결과가 없더라도 작업이 완료되면 사용자에게 메일로 알려준다.
-f 파일 : 표준 입력 대신 실행할 명령을 파일로 지정한다.
사용 예 at -m 0730 tomorrow                 at 10:00 pm                       at 8:15 am May 30

at 명령 설치 방법 : sudo apt-get install at, sudo apt-get install mailutils

at명령을 사용하여 정해진 시간에 명령을 실행 예약 하려면, at명령 뒤에 시간을 명시하면 된다.

시간을 지정하는 방식

  • at 4pm + 3 days : 지금부터 3일 후 오후 4시에 작업을 수행한다.
  • at 10am Jul 31 : 7월 31일 오전 10시에 작업을 수행한다.
  • at 1am tomorrow : 내일 오전 1시에 작업을 수행한다.
  • at 10:00am today : 오늘 오전 10시에 작업을 수행한다.

이러한 at로 생성된 파일은 /var/spool/at 디렉터리에 저장된다.

root 사용자만 경로상의 파일을 확인이 가능하다.

 

at 작업 목록 확인하기 : -l 옵션, atq

at 명령으로 설정된 작업의 목록은 -l 옵션으로 확인이 가능하다.

atq 명령으로도 확인이 가능하다.

at 작업 삭제하기 : -d옵션, atrm

at명령으로 설정한 작업이 실행되기 전 삭제하려면 -d 옵션을 사용하고 삭제할 작업 번호를 지정한다.

at 명령 사용 제한하기.

관련 파일 : /etc/at.allow와 /etc/at.deny

정해진 시간에 반복 수행

crontab  
기능 사용자의 crontab 파일을 관리한다.
형식 crontab [-u 사용자 ID] [옵션] [파일 이름]
옵션 -e : 사용자의 crontab 파일을 편집한다.
-l : crontab 파일의 목록을 출력한다.
-r : crontab 파일을 삭제한다.
사용 예 crontab -l          crontab -u user1 -e         crontab -r

crontab 파일 생성하고 편집하기 : crontab -e

crontab 편집기는 기본적으로 VISUAL 또는 EDITOR 환경 변수에 지정된 편집기를 사용한다.

crontab -e 명령으로 편집한 파일을 저장하면 자동적으로 /var/spool/cron/crontabs 디렉터리에 사용자 이름으로 생성

crontab 명령 사용 제한하기.

 /etc/cron.allow, /etc/cron.deny 파일

cron.deny 파일은 기본적으로 있지만 cron.allow 파일은 관리자가 만들어야 함

두 파일이 적용되는 기준

  • /etc/cron.allow 파일이 있으면 이 파일 안에 있는 사용자만 crontab 명령을 사용할 수 있다.
  • /etc/cron.allow 파일이 없고 /etc/cron.deny 파일이 있으면 이 파일에 사용자 계정이 없어야 crontab 명령을 사용할 수 있다.
  • /etc/cron.allow 파일과 /etc/cron.deny 파일이 모두 없다면 시스템 관리자만 crontab 명령을 사용할 수 있다.

두 파일이 모두 없는데 일반 사용자가 crontab 명령을 사용하려고 하면, 다음과 같은 메시지가 출력된다.

 

728x90
작성일
2022. 10. 26. 00:58
작성자
WDmil
728x90

특징 추출 ( Feature Extraction )

서로 다른 부류에 속한 데이터를 구별짓기 위해 필요한 특징을 설계하고 추출하는 과정.

 

사람의 얼굴에서 안경을 썼냐, 머리 스타일이 어떠냐, 코의 모양은 어떠냐 등의 데이터를 뽑아내서 분류를 가장 잘 할 수 있는지를 결정 하는 특징을 추출하는것.

ex) 특징 = 피부색, 눈 크기, 입술 크기

특징 벡터 X = {$x_1,x_2,x_3$}

특징 벡터의 차원 = 3차원

일정 눈, 피부색, 입술크기가 각각 0에 가까울수록 작음 0에 가까울수록 검정색임 0에 가까울수록 작음

으로 한다고 하면, 데이터 값의 학습을 축적 할 수 있다.

 

A라는 사람이 있다고 하면, $X^1 =(x_1,x_2,x_3) = (0.854,0.221,0.134)$

이런식 으로 추출 할 수 있다.

 

Raw data = 가공되지 않은 데이터.

 

이러한 이미지, 정지된 영상을 뽑아와서 데이터를 추출하고 값을 만들어야함

알고리즘 으로 추출함.

 

특징 설계 -> 부류 구분

각각의 데이터 요소를 Component 라고 한다.

 

특징의 구별 능력 ( Discriminative Power )

부류간의 데이터를 잘 구별 할 수 있는게 특징설계의 능력

특징 벡터가 멀리 떨어질 수록 좋음

위와 같은 표가 나오게 되면, 보았을때 판정은,

연수와 기태가 구별 능력이 떨어짐

연수/기태와 희진과의 구별 능력은 좋음

 

실제 데이터는 저렇게 몰려있지 않고 약간 퍼져있음.

 

여기서 바리에이션( 퍼짐정도 ) 에 영향을 주는 것은 각도( 포즈), 촬영상태( 빛 밝기 등 ) 이 영향을 줄 수 있다.

Robust( 강인한 )

환경에 상관 없이 동일한 특징이 나올 수 있는 것.

 

단어 가방 (Bag - of - Words ) 

위 문장을 분류 한다고 하였을 때, 문장의 단어들을 따로 추출하고 묶어서 관련 단어가 얼마나 많은 빈도로 나타나는지를 표현해주고 이를 통해 어떠한 것을 이야기 하는 문서 인지 알아낼 수 있다.

 

이러한 기법을 단어 가방 (Bag - of - Words ) 라고 한다.

728x90
작성일
2022. 10. 25. 20:51
작성자
WDmil
728x90

1. 리눅스 운영 및 관리

2. 리눅스 활용

총 80문항

 

리눅스 파일시스템을 제외한 문제만 다룬다.

리눅스 운영 및 관리

1. 다음과 같이 허가권 값이 변경 되었을 경우 중간에 실행된 명령으로 알맞은 것은?

chmod = 허가권 을 변경하는 문제

chmod g+s /project

그룹에 프로젝트에 대한 슈퍼 권한을 준다.

 

4. 다음 중 디렉터리에 부여되는 w 권한에 대한 설명으로 알맞은 것은? 2 

 

w권한 = rwx중 write 로 쓰기권한을 이야기 함 으로, 해당 디렉터리에 파일을 생성 또는 삭제할 수 있다. 이다

수정권한을 주는것을 이야기 한다.

 

5. 다음 명령의 실행 결과로 생성되는 lin.txt 파일의 허가권 값으로 알맞은 것은? 4

chmod o=r lin.txt 임으로 ugo 중 유저, 그룹, 나머지 의 중 나머지의 권한을 r만 준다. rwx중 read만 준다 하여

읽어오는 권한만 줌 으로

-rwxrwxr-- 이다.

 

9. 다음 결과와 같을 때 umask 명령 실행 시 출력되는 값으로 알맞은 것은? 1

디렉터리는 777로 rwxrwxrwx의 값을 가질 수 있고 파일은 666로 rw-rw-rw의 값을 가질 수 있다.

여기서 umask가 지정이 되려면, 파일의 w값의 마지막만 지우면 됨 으로, 마스크값은 0002만 주면 된다.

여기서 가장 앞의 0은 스티키 비트 이다.

 

10. 현재 디렉터리 안에 있는 data 디렉터리의 소유권을 하위 디렉터리 및 파일을 포함하여 ihduser로 변경하는 과정이다. 다음 ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은? 4

chown = change owner 의 약자로 소유주를 바꾸어라 라는 명령어 이다.

괄호 안에 들어갈 내용은 -R을 사용하게 된다.

 

11. 다음 중 셸에서 선언된 셸 변수 전부를 확인할 때 사용하는 명령으로 알맞은 것은? 1

 

셸 변수를 전부 확인하려면 셸의 전체 전역변수를 확인하기 위해서 set 을 치면 된다.

 

12. 다음 중 시스템 계정에 설정되는 셸로 알맞은 것은?

 

/sbin/nologin

 

13. 다음 명령에 대한 설명으로 알맞은 것은? 1

history = 지금까지 실행 한 실행 명령어 들을 기록해 놓은 것

최근에 실행한 마지막 5개의 명령어 목록을 출력한다.

 

14. 다음 중 가장 최근에 등장한 셸로 알맞은 것은? 4

  1. csh
  2. ksh
  3. tcsh
  4. bash

15. 다음 명령의 결과로 알맞은 것은? 2

user 에  lin이 들어가게 된다.

그리고 echo 로 $USER을 출력하게 되는데, $는 앞 문자를 명령어로 인식한다.

USER의 명령어는 현재 사용자의 이름을 이야기 한다.

즉, 여기서 사용자의 이름을 출력하라는 명령이 됨 으로 $USER는 ihduser을 출력하게 된다.

 

16. 다음 명령에 대한 설명으로 알맞은 것은? 2

히스토리 명령 목록의 번호 중에서 5번에 해당하는 명령을 실행한다.

 

17. 다음 설명에 해당하는 셸로 알맞은 것은? 1

bash 셸에 대한 설명이다.

 

18. 다음 결과에 해당하는 환경 변수로 알맞은 것은? 1

PS1

 

29. 다음에서 설명하는 vi 명령으로 알맞은 것은? 1

vi +/ihd /etc/hosts

이다.

 

30. 다음 중 vi 편집기의 환경 설정을 지속적으로 사용하기 위한 설정 파일로 알맞은 것은? 1

.exrc이다.

 

31. 다음중 vi 편집기의 개발 순서로 알맞은것은? 4

vi -> vim -> gVim

 

32. 다음 중 vi 편집기로 문자열을 치환할 때 사용하는 정규 표현식 종류와 설명으로 알맞은 것은? 1

 $ 이다.

 

33. 다음 중 텍스트 환경 기반의 콘솔 환경에서 사용하지 못하는 에디터로 알맞은 것은? 3

gedit = grapic edit 그래픽이라 텍스트 아니다.

 

34. 다음 중 vi 편집기로 문서를 편집한 후 저장하고 종료하는 명령으로 알맞은 것은? 4

:wq

w = 저장하다

q = 종료하다

wq = 저장하고 -> 종료하다

 

 

728x90
작성일
2022. 10. 13. 15:53
작성자
WDmil
728x90

빅데이터기술_하둡(20221011,4,Gim).pdf
3.58MB

 

 

YARN = 33P 의 4자기 노드의 동작

방식 이해하기

 

(1) client가 RM에게 작업을 요청함

(2) RM은 AM을 구동함

(3) AM은 application 견적 보고 필요한 리소스를 요청함

(4) NM을 통해 application용 컨테이너를 구동함 (map task, reduce task, spark executor 등)

(5) 컨테이너 내에서 task를 수행함

 

Client에서 작업이 들어온다 -> Name노드에서 명령을 받고 스케줄러를 받아와서 데이터를 어찌 분할할지 결정 그 후 지정할 Data Node에 있는 Application Master에 작업명령을 할당. 그 이유는 효율성 때문에 이런 분할방식을 사용함.

 

그 후 Data Node 의 Application Master 가 더 많은 자원을 필요로 하면 Name Node의 Scheduler에게 요청한다.

 

그 이후 Application Master가 Scheduler와 협상이 끝나면 Node Manager에게 작업을 명령하고 Container에 실행를 명령한다.

 

Application 마스터에게 나머지 node가 데이터완료 작업결과를 보내고 Application가 각 Node Manager에게 작업 완료및 추가사항을 전달하고 Node의 상태를 name Node에게 말하고 사용이 완료된 자원을 반납한다.

 

삼각 피라미드 형태로 작업방식이 구상된다.

Name Node = 작업 명령을 시키는곳

Data Node = 작업 데이터가 물리적으로 존재하는 곳

 

Resource Manager = 자원관리자

Application Manager = 작업의 분할을 해주는 역활

Scheduler = 어플리케이션 매니저의 비서같은 역활 , 작업완료 목표 날짜를 정해놓고 조정함

Node Manager = Data Node의 최종명령권자

Data Node 의 Application Master = DataNode의 자원할당을 관리함

Container = 자원

 

HDFS = 10P 의 Linux 데이터 구동방식 이해

 

 

HDFS = 11P 의 Namenode와 Datanode를 확인하기

namenode = 마스터이고 Datanode를 컨트롤 하게 된다.

Datanode = 데이터를 보관하고있는 node.각자 다른 명령을 수행한다.그러나 데이터는 같다. 하나가 손상되어도 다 같은 데이터를 가지고 있어서 다른걸 복사 붙여넣기 하면 된다.

 

하둡을 설치하면 버추얼 호스트는 4개 설치하면 된다.

 

Datanode는 Namenode의 Bblock1과 Block2의 데이터노드를 하나씩 복사해서 가지고 있다.


 

하둡 에코 시스템 RPC = 데이터 직렬화 P13

Core = 파일시스템과 I/O, 추상화 API RPC/Persistence

데이터 직렬을 하는데 Cross - language serialization이 가능하다 14P

Mapreduce - Distributed execution 을 하는데 fault- tolerance [ 오류 저항력 ] 을 한다.15p

 

Avro = 아파치에서 만든 프레임웤,

원격 프로시저 호출, 데이터 직렬화 기능 제공

언어 중립적인 데이터 직렬화 시스템. JSON과 비슷한 형식이나 스키마가 존재한다.

 

MapReduce = 여러 노드에 태스크를 분배하는방법

맵과 리듀스의 두단계로 구성됨.

ex) 엄청난 양의 텍스트를 계산해야할 때 텍스트를 분할하고 분할된 텍스트를 단어별로 자른다음 단어의 중복 횟수를 확인.한다. 이렇게 각 노드별로 단어의 중복횟수가 나오고. 그 중복횟수를 다 합하여 결과로 출력한다.

여기서 분할된 단어데이터를 분할하고 연산하는걸 Map, 각 블럭의 결과를 합하는걸 Reduce 라고 한다.

 

HDFS = 구글파일시스템에서 왔는데, 분산환경에서 데이터를다루기 위해 사용.

대용량 데이터를 범용 서버로 처리 가능.

용량 확장이 용이함

높은 처리량 실현 가능

슬레이브 노드 일부가 고장나도 데이터 손실 방지 가능

 

ZooKeeper = Coordination service를 하겠다. configuration을 하는 역활

하둡의 다른 프로그램이 동물 이름에서 따온게 많다. 그래서 그 프로그램들을 종합적으로 관리하는게 주키퍼

 

HBase = 스토리지로 분산환경에서의 데이터를 다루게 되는데, 구조화된 대용량의 데이터에 빠른 임의접근을 제공.

구글의 빅 테이블과 비슷한 데이터 모델을 가짐

HDFS의 데이터에 대한 실시간 임의 읽기/쓰기 기능을 제공

 

Pig = Data flow language를하겠다

대용량 데이터셋을 좀 더 고차원적으로 처리할 수 있도록 한다.

다중값과 중첩된 형태를 보이는 좀 더 다양한 데이터 구조를 지원한다.

 

Hive = Data에 대한 query execution을 하곘다

Chukwa = 22P ~ 데이터들의 전송을 원활하게 해주는 시스템

 

Hive

데이터를 모델링하고 프로세싱 하는 경우 많이 사용하는 데이터 웨어하우징용 솔루션

HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공, 데이터를 대상으로 SQL과 유사한 HiveQL쿼리를 이용하여 데이터 조회방법 제공

맵 리듀스의 모든 기능 제공

 

Chukwa

분산된 서버에서 로그 데이터를 수집하여 저장하며, 저장한 데이터를 분석하기 위해 만들어짐

하둡 클러스터 로그, 서버 상태정보 등을 관리함

 

키워드 기준으로 각각 2~3줄씩은 써줄수 있을정도로 알고있자

 

하둡 분산 파일 시스템이 나온 이유.

빅 데이터( 단일 컴퓨터에 저장하는것이 불가능 ) -> 데이터를 일정량씩 슬레이브 노드로 분할하여 여러개의 컴퓨터에 분할 저장하고 다루게 된다. 여기서 Master Node로 나머지 Slave Node를 컨트롤하게 된다.

 

노드 = 3년정도 정상작동을 하는데 1만대를 기준으로 매일 1대의 노드에 장애가 발생했다.

구글은 2012년 100만개의 데이터 노드로 구성된 빅 데이터 시스템을 운영하였다.

 

데이터가 뻑나면 난리나니까 3대의 백업을 두자. 하는게 기본개념

26P에서의 Google File System 에 대한 서버 구조도를 확인할 수 있다.

 

27P Hadoop2

HDFS의 고 가용성

NAME Node 여러대를 운용한다.

모든 Name Node는 동기화되어 메타데이터 변화를 기록하는 로그 파일을 공유한다.

HDFS의 연합

다양한 Name Node서비스를 위해 서로 독립적인 네임스페이스를 갖는 NameNode를 수평적으로 확장

모든 data Node는 모든 nameNode의 namespace에 소속되며 모든 namespace의 block를 독립적으로 저장하게 된다.

 

Hadoop 2 Architecture 

28P Name Node 는 Data Node가 어디에 존재하는지 데이터가 존재한다.

Secondary Name Node = 사이트 주소 www.어쩌구 등등

Resource Manager -> Application Manager , Sheduler 의 명령을 받아다가 Data Node에 각각 분할하여 일을 시킨다.

 

Node manager 의 Container = 데이터 리소스이다.

 

 

 


RDBMS, HDFS 의 차이점을 통해

왜 하둡에서 이러한 하둡 시스템을 사용을 했는지 이해하는것이 목표

관계형 데이터 베이스 (RDBMS) 비 관계형 데이터 베이스(NoSQL)
정형 데이터
트랜잭션 [ 행동에 관련된 데이터 ] 또는 중요 데이터
비정형 데이터
( 텍스트 )
일관성 유효성 (A에 집중) 분산 가능성, and(일관성 or 유효성)( P에 집중)
안정성이 중요한 시스템에서 사용 대규모의 유연한 데이터 처리
Oracle, IBM-DB@, MS SQL SErver, MySQL BingTable(google), Dynamo(Amazon), Hbase(Yahoo), MongoDB, Cassandra

CAP 이론

3가지 개념을 전부다 만족시킬 수는 없다는 이론

CAP이론 = 일관성, 가용성, 지속성의 3가지를 전부 만족시킬 수는 없다.

일관성 : 분산 환경에서 모든 노드가 같은 시점에 같은 데이터를 보여 줘아햠.

가용성 : 일부 노드가 다운되어도 다른 노드에 영향을 주지 않아야 함

지속성 : 일부 데이터를 손실하더라도 시스템은 정상 동작해야 함

 

RDBMS : 일관성, 가용성

Big table, HBase, Cloudata : 일관성, 지속성

Dynamo, Gassandra : 가용성, 지속성

 

NoSQL 데이터베이스의 주요 특징

 

Not Only SQL

비 관계형 데이터 베이스

테이블 스키마가 고정되어 있지 않음

<Key, Value>

 

put/get 연산 지원

  • 기존의 RDBMS에서 제공하는 주요 기능을 지원하지 않음
    • Sort 연산
    • Join 연산
    • Group By 연산

수평적 확장성

 


CAP 이론을 기준으로 한 RDBMS와 NoSQL의 비교

ACID = 원자성 일관성 독립성 지속성

Atomlclty 원자성

트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되면 안됨

 

Consistency 일관성

트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터를 제공

 

Isolatlon 독립성

트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들면 안됨

 

Durability 지속성

성공적으로 수행된 트랜잭션은 영원히 반영되어야 함

 

RDMS = CA

NoSQL = AP, CP

 

NoSQL = 데이터의 무결성, 정확성 보장X

수정 삭제를 사용안함, 강한 이관성 불필요, 노드의 추가 및 삭제, 데이터 분산에 유연

 

RDBMS = 무결성, 정확성 보장

UPDATE, DELETE, Join 연산 가능, ACID 트랜젝션이 있음, 고정 스키마가 있음

 

No SQL 기술특징

스키마가 없음 : 데이터 저장방식에 고정된 데이터스키마가 없이 키로 접근함

탄력성 : 시스템 일부에 장애가 생겨도 클라이언트 시스템에 접근 가능

질의기능 : 수십 대에서 수천 대 규모로 구성된 시스템에서도 데이터의 특성에 맞게 처리 가능

캐싱 : 대규모 질의에도 고성능 응답속도를 제공할 수 있는 메모리 기반 캐싱 기술을 적용하는것이 중요

 

빅데이터 주요 저장 관리 및 기술

HDFS 

MongoDB

HBase

Redis

ZooKeeper

제품/기술 최초 개발 최초 공개 주요기능 및 특징
HDFS 아파치 2008년 분산 환경에 맞는 데이터처리
MongoDB      

NoSQL 분류

데이터 모델 설명 제품 예
<키,값>저장구조 가장 간단한 데이터 모델
범위 질의 사용 어려움
응용 프로그램 모델링 복잡
아마존 DynamoDB
아마존 S3
문서 저장 구조 문서에는 다른 스키마가 있음
레코드[ 한줄 한줄 [행]] 간 관계설명 가능
개념적 RDBMS와 비슷
아마존 SimpleDB
아파치 CouchDB
MongoDB
열 기반 저장 구조 연관된 데이터 위주로 읽는데 유리한 구조
하나의 레코드 변경하려면 여려곳 수정
동일 도메인 열 값이 연속됨으로 압축 효율이 좋음
범위 질의에 유리
아파치 Cassandra

전체적 구조 = SQL과 NoSQL간의 특징과 장단점 그리고 분류를 재정리 해야함.

 

키- 밸류 기반 NoSQL

 

대표적인 데이터 스토어

-REmote DiCtionary System [ REDIS ]

원격 사전 시스템/

메모리 기반의 key, Value 저장공간

간단한 형태의 NoSQL 데이터 베이스

인 메모리 솔루션

다양한 데이터 구조 지원

REDIS의 데이터 타입

string

최대 512MB까지 지원 문자만이 아닌 다른 이미지 바이러니 파일도 가능

set

-string의 집합

set간의 연산을 지원, 이로 교집합, 합집합 차집합등을 빨리 얻을 수 있음

stored set

일종의 가중치가 설정된 데이터 타입. 데이터 오른차순으로 내부정렬 정렬되어있어 score값 범위에 따른 질의 톱랭킹에 따른 질의 가능

hash

값 내의 필드 문자 쌍. RDBMS의 기본 키 한개와 문자열 필드 하나로 구성

list

문자열의 집합으로 저장되는 데이터 형태는 set과 비슷하지만 양방향 연결 리스트.

REDIS의 저장 구조

장점

  • 다양한 데이터 타입 지원
  • 데이터가 메모리에 있음으로 빠른 처리
  • 독자적인 가상 메모리 기능을 추가하여 실제 메모리에 올릴 수 없는 데이터를 디스크에 적재 가능
  • 오픈소스

단점

  • 복잡한 기능 제공하지 않음
  • 만들어진지 얼마 안되 사용방법, 해결책이 안나온 문제 발생 가능성있음

문서 기반 NoSQL

몽고 디비 [MongoDB]

대표적인 문서 지향 데이터 베이스

10gen이라는 회사가 오픈 소스로 개발한 것으로 상업적인 지원 가능

 

특징

스키마가 없는 데이터 베이스

  • 별도로 스키마 정의 필요 없음
  • 임의의 키 값에 대한 복잡한 검색 가능

관계형 데이터베이스에 비해 응답속도가 빠름

자동 샤딩(Auto Sharding)을 이용한 분산 확장 가능

[다른 노드에 복사 붙여넣기 자동확장 가능]

 

필요성

관계형 데이터베이스

앙케이트 응답, 로그 데이터같이 어떤 필드가 필요할 지 정의하기 어려운 경우에는 스키마 변경이 여러 번 변경이 발생할 수 있기 때문에 관계형 데이터 베이스를 사용하는 것이 불편함.

 

BTree 키 값, 포인터로 이진트리와 비슷한 데이터구조를 띈다.

MongoDB의 특징

조인 연산 불가능

Object에 다른 object를 끼워넣기 하여 어느정도 동일하게 조인 연산수행

배열 형식의 데이터를 입력하거나 검색 가능

데이터 베이스를 메모리에 저장하기 떄문에, 하드디스크에 저장하는 관계형 데이터 베이스에 비해 속도가 빠르다.

고나계형 데이터 베이스왇 오일하게 indexstructure를 사용하기 떄문에 빠르게 데이터 검색 가능

관계형 데이터베이스의 범위 질의 , 인덱스, 정렬, 맵리듀스 연산 지원

데이터는 BSON(JSON의 이진 형태) 형태로 저장 [ Abro와 같은 느낌 ]

C++ 프로그래밍 언어로 작성

 

도큐먼트 데이터 모델

P69

 

몽고DB와 DBMS의 차이점과 장단점을 비교하여 기억해야한다.

 

장점

스키마 정의 필요없어 필드 추가 등 변경이 없고 운영시 별도 작업이 필요하지 않음

다양한 조건을 가지고 검색 가능

대용량 데이터를 분산 저장하고 빠른 검색 지원

수평적 확장성 제공

오픈 소스

 

단점

Join이나 트랜잭션 연산 수행 불가

 

데이터 유실 가능성 있음

 

NotSQL의 각각의 특징,

CAP이론을 기억해야함

2가지만 만족할 수 있다.

분산환경에서는 = P에 집중

문서 형태가 RDBMS와 어떤 차이가 있는지 확인

Tree구조가 인기있는 이유는 일반적인 자료구조가 아닌 더 빠른 데이터 검색이 가능해서 인기가 있다.

 

키워드를 말하면 나열할 수 있게 바탕지식을 얻는식으로 공부해야한다.

728x90
작성일
2022. 10. 12. 14:04
작성자
WDmil
728x90

파일의 접근권한 = 기호모드 -> 권한 기호 표시

= 숫자모드 -> 권한 기호 표시

 

파일의 접근 권한 보호

리눅스는 파일에 무단으로 접근하는것을 방지하고 보호하는 기능을 제공함. 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근 유무를 구분하여 접근 권한을 제한함

파일의 속성

번호 속성값 의미
1 - 파일의 종류(-: 일반 파일, d : 디렉터리)
2 rw-r--r-- 파일을 읽고 쓰고 실행할 수 있는 접근 권한 표시
3 1 하드 링크의 개수
4 root 파일 소유자의 로그인 ID
5 root 파일 소유자의 그룹 이름
6 223 파일의 크기(바이트 단위)
7 2월 20 21:17 파일이 마지막으로 수정된 날짜
8 /etc/hosts 파일 명

파일의 I node 구조체에 저장되는 데이터 이다.

 


접근 권한의 종류

읽기 권한, 쓰기 권한, 실행 권한 세가지로 구성됨

권한 파일 디렉터리
읽기 [ r ] 파일을 읽거나 복사할 수 있다
(디렉터리 안에서 리스트업 가능하다라는 의미)
ls 명령으로 디렉터리 목록을 볼 수 있다.(ls 명령의 옵션은 실행 권한이 있어야 사용할 수 있다.)
쓰기 [ w ] 파일을 수정, 이동,삭제할 수 있다.(디렉터리에 쓰기 권한이 있어야 한다.) 파일을 생성하거나 삭제할 수 있다.
실행 [ x ] 파일을 실행할 수 있다.(셸 스크립트나 실행파일의 경우). cd 명령을 사용할 수 있다. 파일을 디렉터리로 이동하거나 복사할 수 있다.

접근권한 표기법

사용자 카테고리 별로 누가 읽고 쓰고 실행할 수 있는지 문자로 표현

읽기 권한은 r, 쓰기 권한은 w, 실행 권한은 x로 표현, 해당 권한이 없다면 '-'로 표기됨.

사용자 카테고리 별로 세 가지 권한의 부여 여부를 rwx 세 문자를 묶어서 표기한다.

위 이미지에서 -rw-r--r-- 이라고 써져 있음으로 root 에게는 r읽기, w 쓰기 권한밖에 없다.
접근 권한의 표기 분류

접근 권한 의미
rwxr-xr-x 소유자는 읽기, 쓰기, 실행 권한을 모두 가지고 있고 그룹과 기타 사용자는 읽기와 실행 권한만 가지고 있다.
r-xr-xr-x 소유자, 그룹 기타 사용자 모두 읽기와 쓰기 실행 권한만 가지고 있다.
rw------- 소유자만 읽기, 쓰기 권한을 가지고 있고 그룹과 기타 사용자는 아무 권한이 없다.
rw-rw-rw- 소유자, 그룹 기타 사용자 모두 읽기와 쓰기 권한을 가지고 있다.
rwxrwxrwx 소유자, 그룹, 기타 사용자 모두 읽기 쓰기 실행 권한을 가지고 있다.
rwx------ 소유자만 읽기, 쓰기, 실행 권한을 가지고 있고 그룹과 기타 사용자는 아무 권한이 없다.
r-------- 소유자만 읽기 권한을 가지고 있다.

접근 권한의 변경 명령

chmod
기능 파일이나 디렉터리의 접근 권한을 변경한다.
형식 chmod [ 옵션 ] 권한 모드 파일 또는 디렉터리 명
옵션 -R : 하위 디렉터리까지 모두 변경할 수 있다.

- 기호 모드 : 접근 권한을 변경하기 위해 문자와 기호를 사용하여 권한 표시

- 숫자 모드 : 접근 권한을 변겨하기 위해 숫자를 사용

 

기호 모드

구분 문자/기호 의미
사용자 카테고리 문자 u 파일 소유자
g 소유자가 속한 그룹
o 소유자와 그룹 이외의 기타 사용자
a 전체 사용자
연산자 기호 + 권한 부여
- 권한 제거
= 접근 권한 설정
접근 권한 문자 r 읽기 권한
w 쓰기 권한
x 실행 권한

접근 설정의 예시

권한 표기 의미
u+x 소유자(u)에게 쓰기(w) 권한 부여(+)
u-x 소유자(u)에게 쓰기(w) 권한 제거(-)
g+w 그룹(g)에 쓰기(w) 권한 부여(+)
o-r 기타 사용자(o)의 읽기(r) 권한 제거(-)
g+wx 그룹(g)에 쓰기(w)와 실행(x) 권한 부여(+)
+wx 모든 사용자에게 쓰기(w)와 실행(x) 권한 부여(+)
a+rwx 모든 사용자에게 읽기(r), 쓰기(w), 실행(x) 권한 부여(+)

소유자의 쓰기 권한을 제거

숫자로 환산 하기

숫자모드에서는 각 권한이 있고 없고를 0과 1로 표기, 이를 다시 환산하여 숫자로 표현함

카테고리 별로 권한의 조합에 따라 0부터 7로 나타내는것

권한을 숫자로 환산하는 과정

r-x 라고 할 때 권한이 있는 것은 1로, 없는것은0 으로 변환

2진수 1, 0 , 1로 변환

2진수를 각 자릿수 별로 10진수로 환산하면 4, 0, 1이 된다.

세 숫자를 더하면

최종 권한 값은 5가 됨.

777 = rwxrwxrwx

644 = rw-r--r--

기타 사용자에게 실행 권한을 부여

o+x , r--rwxr-x -> 475

 


기본 접근 권한

리눅스에서는 파일이나 디렉터리를 생성할 때 기본 접근 권한 자동 설정

일반 파일의 경우 소유자는 읽기와 쓰기 권한이 설정되고 그룹과 기타 사용자는 읽기 권한만 설정

디렉터리의 경우 소유자는 읽기, 쓰기, 실행 권한이 설정되고 그룹과 기타 사용자는 읽기, 실행 권한만 설정.

실행 권한이 있는 이유는 권한설정을 바꾸어야 하기 때문에,

기본 접근권한 확인하고 변경하기

umask
기능 기본 접근 권한을 출력하거나 변경한다
형식 umask [옵션] [마스크값]
옵션 -S : 마스크 값을 문자로 출력한다.
사용 예 umask 022

마스크 값은 파일이나 디렉터리 생성 시 부여하지 않을 권한을 지정함.

마스크값이 022 인 경우 이는 ----w--w-이고, 그룹과 기타 사용자에게 쓰기 권한은 부여하지 않겠다는 것.

즉, 전체 권한이 777이라고 하면, 022라는 권한을 빼앗겠다 라는것. 위 명령어를 실행하고 난 뒤에는

755라고 할 수 있다.


특수 접근 권한

접근 권한은 원래 4자리

생략된 맨 앞자리는 특수 접근 권한 의미

맨 앞자리 숫자가 0이면 일반적인 접근 권한이지만, 이 숫자가 1, 2, 4 이면 특수 접근 권한이 설정

SetUID : 맨 앞자리가 4 4022
SetGID : 맨 앞자리가 2 2022
스티키 비트 (sticky bit) : 맨 앞자리가 1 1022

SetUID

해당 파일이 실행 되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행된다.

SetUID가 설정되면 소유자의 실행 권한에 's'가 표시된다. ( Super 라는 의미 )

SetUID를 이용한 해킹의 위험도 있기 때문에 보안에 신경써야 한다.


SetGID

해당 파일이 실행되는 동안 파일 파일을 실행한 사용자의 권한이 아니라 파일 소유 그룹의 권한으로 실행된다.


sticky bit

디렉터리에 스티키 비트가 설정되어 있으면 이 디렉터리에는 누구나 파일을 생성 가능하다.

파일은 파일을 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 불가하다.

 

728x90
작성일
2022. 10. 11. 23:01
작성자
WDmil
728x90

Correlation & Convolution

Spatiol filter 임.

Correlation = 원래 있던 마스크를 사용하여 데이터의 Special filter를 하는것

Convolution = 원래 있던 마스크를 180 도 회전시킨 뒤 데이터를 Special filter

1 2 3
4 5 6
7 8 9

Correlation

래스터 스캐닝 방향으로 이동시키면서 데이터를 Special Filter를 진행함.

 

9 8 7
6 5 4
3 2 1

Convolution

원본 마크스를 180도 회전시킨 다음 래스터 스캐닝 방향으로 이동시키면서 데이터를 Special Filter를 진행함

Correlation & Convolution 예시

마스크의 데이터값 결정 요건

마스크의 계수값 결정의 목적에 따라 달라진다.

  1. 스무딩 필터링
    • 영상을 조금 뿌옇게 만드는 역활 ( 블러링 )
  2. 샤프닝 필터링
    • 영상을 조금 더 선명하게 만들어 주는 역활

마스크 의 데이터 값은 Gaussian  함수를 미분을 1차 2차 또는 하지 않느냐 에 따라 달라진다.

 

$\frac{1}{ \sqrt{2 \pi  \sigma } }exp \big( -\frac{ \big(x- \mu \big)^{2} }{2 \sigma  ^{2} } \big) $

가 In 1D가 된다.

 

2개의 파라미터 값에 따라 파라미터 값이 바뀐다

$\mu$ [ 뮤 ] : 평균

$\sigma $ [ 시그마 ] : 분산 [ 표준 편차 ]

왼쪽이 In 1D 1차원 가우시안 함수 우측이 In 2D 2차원 가우시안 함수

$\mu$ = 10 이 되면 중심점이 10 이 된다. $\mu$를 기준으로 돌출부의 중심위치가 된다.

$\sigma ^{2}$ = 분산이다. 커질수록 돌출부가 줄어든다.

 

위 가우시안 셈플에서 데이터의 구조도는

$\frac{1}{ 2 \pi  \sigma ^{2} }exp^{ \big( -\frac{ \big(x- \mu \big)^{2}-\big(y- \mu \big)^{2} }{2 \sigma  ^{2} } \big)} $ 가 된다.

위 이미지에서의 $\mu$값은 0으로 고정한다고 가정한다.

         
         
    (0,0)    
         
         

(0,0)에 데이터를 넣는다고 한다면,

x와 y좌표에 0 이 대입됨으로 exp(0)이 되고, $e^{0}$ = 1임으로, 

$\frac{1}{ 2 \pi  \sigma ^{2} }$를 1에 나눠주면 된다.

그렇게 계산하면 위 이미지의 5X5의 마스크가 나오게 된다.

 


Sommthing Filter

box filter = 모든 마스크값이 동일하면 box filter라고 한다.

weighted average filter = 다 같은것이 아닌 중앙이 가장 크고 중심점 기준으로 거리가 멀어질수록 마스크 값이 점점 낮아지면 weighted average filter라고 한다.

 

스무딩 필터를 제작할 때는 데이터의 모든 계수의 합이 1이 되어야 하기 때문에, 모든 필터값이 1이되도록 일정 수를 나누어주는것이다.

 

1차원 필터링의 Sommthing Filter의 예시

마스크값이 1차원에서 [1/3, 1/3, 1/3] 일 때 데이터가 지나가면서 데이터의 출력값이 중앙값이 된다.

Sommthing Filter의 예시

평탄 영역에서는 필터링을 하나 마나 큰 차이가 없으나, 데이터의 차이가 발생하는 a 또는 검정영역에서 Sommthing 효과가 나타나게 된다.

 

시그마의 값을 조절함으로써 데이터의 변형 강약을 조절 할 수 있다.

박스 필터와 가우시안 필터의 차이점

Averaging = 박스필터

Gaussian 필터에서는 외곽이 더 선명함을 관찰 할 수 있다.

박스필터는 전체를 다 뭉개는느낌이다.

Median Filter

데이터를 마스크로 필터링 하였을 때 필터링 된 결과값을 나열 한 후 sort작업 ( 작은순에서 큰순으로 정렬 ) 한 뒤 중앙값을 output으로 return해준다.

 

이미지에 있는 검은 점같은 노이즈가 salt and pepper noise라고 한다 ( 소금과 후추를 뿌린거같은 노이즈 )

해당 노이즈에 Median Filter를 적용하면 노이즈를 크게 줄일 수 있다.

노이즈에서는 위와같이 필터 데이터가 갑자기 치솟게 되는데, 이중 가장 중앙값을 가지게 됨으로 필터로 들어가는 데이터는 0이 된다. 이와 같은 원리로 노이즈의 잡음을 없애는데 큰 도움이 된다.

728x90