5. 정규화와 반정규화

  • 함수 종속성의 개념과 추론규칙
    • 함수 종속의 유형
      • 완전 함수 종속 1NF 
      • 부분 함수 종속 2NF
      • 이행함수적 종속성 3NF 
      • 결정자함수 종속성 BCNF : 함수 종속이 되는 결정자가 후보키가 아닌 경우
  • 정규화의 이상현상
    • 삽입이상
      • 원하지 않는 정보까지 함께 삽입해야함
    • 삭제이상
      • 필요한 정보까지 함께 삭제
    • 수정이상(갱신이상)
      • 동일한 내용을 여러 건의 데이터에서 반복 수정해야함
  • 정규화를 적용하여 데이터베이스 설계
    • 1NF -> 2NF제거 -> 3NF제거 -> BCNF제거 -> 함수종속이 아닌 다치 종속제거 -> 후보키를 통하지 않는 조인종속 제거
  • 반정규화 
    • 정규화된 엔터티, 속성, 관계에 대해 시스템 성능 향상 및 개발과 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스
    • 절차
      • 대상 조사
        • 범위 처리 빈도수 조사
        • 대량의 범위처리 조사
        • 통계성 프로세스 조사
        • 테이블 조인 개수 조사
      • 다른 방법 유도 검토
        • 뷰 테이블 : 많은 조인이 걸칠때
        • 클러스터링 사용 
        • 인덱스 적용 
        • 응용 어플리케이션
      • 반 정규화 적용
        • 테이블 병합
        • 테이블 분할
        • 테이블 추가
        • 중복 칼럼 추가 : 조인에 의한 성능 저하를 예방
  • 성능 설계를 위한 고려사항 설명
    • 성능 개선 목표
      • 처리능력, 처리시간, 응답 시간, 로드 시간
    • 엔터티의 통합 및 분리 
      • 장점 : 불필요한 조인 제거를 통한 성능 향상, 테이블 개수 감소,,
      • 단점 : 데이터 모델의 확장성 저하, 업무 흐름 이해 어렵
    • 기본키 조정
      • 비지니스 키가 복잡한 경우 시스템 키로 대체
    • 데이터 모델 구조 변경
      • 정규화를 통한 성능 개선
      • 반정규화를 통한 성능 개선
      • 데이터 모델의 단순화를 통한 성능 개선
    • 인덱스와 관련된 성능 개선
      • 효율적 순서 지정
      • 함수기반 인덱스 사용

 

6. 데이터베이스 물리설계

  • 관계형 테이블 전환의 개념과 과정
    • 관계형 테이블 전환
      • 엔터티 타입의 전환
      • 악성 엔터티의 변환
      • 1 : 1 관계의 변환
      • 1 : N 관계의 변환
      • M : N 관계의 변환
      • 다중치속성의 변환
      • N - ary 관계의 변환
      • 일반화 관계의 변환
  • 테이블 설계
  • 데이터타입 설계
  • 인덱스 설계
  • 데이터베이스 뷰 설계
    • 뷰 특징
      • 원하는 데이터만 모아 가상적으로 만든 테이블
      • 반복되는 데이터 조작을 효율적으로 수행함
      • 관심을 가지는 데이터에만 초점 
      • 계산된 정보나 파생된 정보 보여줌
      • 사용자가 볼 수 있는 데이터 제한
    • 뷰 생성
      • CREATE VIEW
      • WITH CHECK OPTION : 뷰에 대해 수행되는 모든 데이터 수정 문장들이 뷰를 정의하는 SELECT문의 조건을 지키도록
      • WITH ENCRYPTION : 뷰를 생성하는 텍스트를 사용자가 못보게
      • 제약사항 : SELECT INTO 문 사용 불가, SELECT 권한 있어야 한다
    • 데이터 수정
      • 복사본 가지지 않음
      • 갱신은 항상 원본 테이블에 영향 미침
      • 제약사항
        • 갱신은 하나의 테이블에만 영향 줌
        • 계산된 값이나 내장함수, 계산함수를 포함하는 칼럼에 대해서는 뷰를 통한 개신 허용 X
        • NOT NULL 칼럼을 가지는 테이블에 영향을 미치는 경우는 오류를 유발함
        • 입력되지 않은 칼럼인 경우 디폴트 값이 정의되어 있거나 NULL이 허용되어 있어야함
    • 고려사항
      • 뷰 정의한 뒤 -> 원본 테이블에 새로운 칼럼 추가 -> 뷰에 안나타남
      • 뷰 자체 정의 변경 -> 기존 뷰 삭제해야함
      • 원본 삭제되어도 뷰는 삭제 안됨
  • 분산 데이터베이스 설계
    • 특징 
      • 네트워크 상에서는 물리적으로 분산되어있지만, 사용자 입장에선 하나의 데이터베이스처럼 
    • 장점
      • 원격 데이터에 대한 의존도 감소
      • 대용량 처리 가능
      • 점진적 확장 가능
      • 한 사이트가 고장나도 그기만 고장남
    • 단점 
      • 복잡도  증가
      • 개발 비용 증가
      • 통제 기능 취약
      • 오류 발생 가능성 증가
      • 데이터 무결성 보장 어렵
    • 데이터 투명성
      • 분할 투명성 : 사용자에게 전역 스키마가 어떻게 분할되었는지
      • 위치 투명성 : 사용자나 어플리케이션에서 데이터의 물리적인 위치 알 필요 없
      • 중복 투명성 : 중복되었는지, 어디에 보관하는지 알 필요 없
      • 장애 투명성 : 네트워크 장애가 발생하더락도 데이터의 무결성 보장되어야함
      • 병행 투명성 : 다수 트랜잭션이 동시에 수행되어도 결과의 일관성 유지되는 성질

 

 

10. 데이터베이스 질의 응용

  • 저장 프로시저의 개념과 특징
    • 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
    • 장점
      • 하나의 요청ㅁ으로 여러 SQL 실행 -> 부하 줄임
      • 처리 시간 단축
      • 트리거와 결합하여 복잡한 규칙에 의해 데이터의 참조 무결성 유지
      • sql문이랑 java 코드 분리되어 가독성 향상
      • 보수성 뛰어남 (저장프로시저의 교체에 의한 수정 가능)
    • 단점
      • 재사용성 낮음( 제품간의 호환성 낮아서)
  • 임베디드SQL의 개념과 특징
    • sql문장이 응용프로그램(c++, java,,,) 포함되어 프로그램 실행 시점에 함께 수행
    • 삽입되는 sql = 임베디드 sql
    • 응용프로그램 = 호스트 프로그램
    • 특징
      • 하나의 투플만 반환가능
      • 반환되는 투플은 일반 변수를 사용하여 저장 가능
      • 호스트 프로그램의 데이터 타입 = 데이터베이스 필드의 데이터 타입
  • 동적 SQL의 개념과 특징
    • 변수를 담아서 동적 처리함
    • 처리방식
      • 변수 생성
      • 구문 생성
      • REF CURSOR에 저장 (SQL)
      • REF CURSOR OPEN
      • REF CURSOR FETCH
      • RECORD TYPE에 데이터 저장
      • REF CURSOR CLOSE 
  • 질의 최적화의 단계별 특징
    • 질의 최적화 : DBMS로 하여금 질의문을 생성하는 여러 전략들을 체계적으로 평가 -> 하나의 최적 전략 선택
  • 유형별 옵티마이저의 특징
    • 옵티마이저 : 가장 빠른 데이터 접근 경로 작성 및 채택 -> 최적의 경로 or 처리 절차 찾아주는 역활
    • 질의 변환
    • 비용 산정
    • 분류
      • 규칙 기준 옵티마이저 (RBO)
        • 인덱스 구조나 비교연산자에 따른 순위 부여 기준으로 최적의 경로 설정
        • 오차가 크게 발생 가능
      • 비용 기준 옵티마이저 (CBO)
        • 처리 방법들에 대한 비용 산정 -> 가장 적게 소요되는거 선택
        • 실행 계획에 대한 예측 및 제어 어렵
  • 웹과 데이터베이스의 연동 기법

 

 

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용  (0) 2021.05.21
[2021 topcit 준비] 데이터 이해와 활용  (0) 2021.05.21

1. 데이터와 데이터베이스의 이해

  • 데이터의 이해
    • 데이터 : 특정의 목적에 의해 평가되지 않은 사실적 자료
    • 정보 : 데이터를 이러정한 프로그램 처리, 가공하여 특정 목적을 달성하는 데 중요한 정보가 생산됨
    • 지식 : 정보가 의사결정이나 창출에 이용되어 부가가치가 발생
    • 데이터 처리 유형
      • 일괄처리시스템 : 일정량 모아 한꺼번에 처리, 대기시간 필요, 수정 절차가 복잡 어려움
      • 온라인처리시스템 : 실시간 처리 시스템, 사용자 중심 처리방법, 사전준비 작업 불필요, 유지 보수 회복어렵 ex) 항공 좌성 예약 처리 시스템
      • 분산처리시스템 : 분산되어있는 처리기와 데이터베이스를 네트워크로 연결하여 처리하는 방식, 클라이언트/서버 시스템 형태로 운영, 연산속도 향상
  • 데이터베이스의 이해
    • 파일처리시스템의 문제점 
      • 독립성 보장 미흡
      • 일관성 보장 문제
      • 무결성 보장 문제
      • 공유성, 사용 편의성 저조
    • 데이터 베이스의 개념과 특징
      • 데이터베이스의 특징
        • 실시간 접근성
        • 계속적인 변화
        • 동시 공용
        • 내용에 의한 참조
  • 데이터베이스 시스템의 이해
    • 구성요소
      • 데이터베이스
      • 데이트베이스 언어
      • 사용자
      • 데이터베이스 관리시스템
    • ANSI-SPARC의 3-level Database Architecture
      • 외부스키마
        • 어떤 화면을 사용자에게 보여줄 것인가???
      • 개념스키마
        • 조직 전체의 DB를 기술하는 것
        • DB에 저장되는 data와 그들 간의 관계 표현
      • 내부스키마
        • DB가 물리적으로 저장된 형식
        • Data가 실제적으로 저장되는 방법 표현
    • 데이터 독립성
      • 논리적 독립성
        • 개념스키마가 변경되어도 외부 스키마에는 영향 미치지 않도록
        • 사용자 특성에 맞는 변경기능
      • 물리적 독립성
        • 내부 스키마가 변경되어도 외부/개념스키마에는 영향 미치지 않도록
  • DBA, DA의 역활
    • DBA(데이터 베이스 관리자) : DB구성 및 관리 운영 전반에 대한 책임을 가지는 역활
      • 데이터 모델링
      • DB물리설계
      • 튜닝(성능개선)
      • DB 구축
      • DB 운영
      • DB 표준화
    • DA(데이터아키텍트) : 데이터, 데이터베이스, 데이터표준, 데이터 보안 등에 대해 정책 및 기준 수립하여 모델링, 체계화하는 역활 수행자
      • 데이터 관리 체계
      • 데이터 표준수립
      • 데이터 모델링 수행
      • 데이터 보안체계 수립
  • DBMS
    • 응용 프로그램과 데이터 사이의 중재자, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게 관리해 주는 소프트웨어 시스템
    • 파일시스템의 문제점인 종속성과 중복성 문제 해결
    • 기능
      • 다 사용자 간의 데이터 공유
      • 권한없는 사용자의 데이터 접근 통제
      • 다양한 사용자에게 다양한 형태의 인터페이스 제공
      • 데이터 사이에 존재하는 ㄴ복잡한 관련성 표현
      • 데이터베이스의 무결성 보장

 

2. 데이터베이스 종류 이해

  • 데이터베이스의 데이터 모델과 구조
    • 계층형 데이터베이스
      • 트리형태
      • 액세스 속도 빠름
      • 업무 프로세스에 대한 적응 쉽지 않음
      • 무작위 검색 어렵
    • 네트워크 데이터베이스
      • 망 형태로 확장
      • 포인터 사용
      • 복잡한 형태에서는 많은 유지보수 비용 필요
      • 프로그래머가 이해해야 프로그램 작성 가능
    • 관계형 데이터베이스(RDB)
      • Oracle, SQL, Server, DB2,,,,
      • 이차원 구조에 정보 저장
      • 여러 연산을 수학적으로 최적화할 수 있음
      • 질의어 존재
      • 비정형(멀티미디어) 복합 정보의 처리 곤란
    • 객체 지향 데이터베이스 (OODB)
      • 사용자 정의 데이터타입의 지원 및 상속성의 명세 가능
      • 비정형 복합 정보의 모델링 기능
      • 트랜잭션 처리, 동시처리기능 사용자 수,, 기능 취약-> 기업에서는 한계
  • 객체관계 데이터베이스(ORDB)의 개념과 특징
    • 개념 : 관계형 + 객체 지향형 DB 
    • 특징 
      • 사용자 정의 데이터타입 지원
      • 참조타입 지원
      • 중첩된 테이블 지원
      • 대단위 객체 지원
      • 테이블 상속 관계 지원
  • XML 문서 이해하고 작성
    • 웹 환경에서 데이터를 구조화하고 교환하기 위해 -> 표준으로 개발한 확장 가능한 마크업 언어
    • 특성
      • 단순성
      • 개방성 
      • 확장성 : 자신만의 태그
      • 모두 이해 가능
      • 내용과 표현의 분리 : 사용자가 원하는 포맷으로 변환 가능
      • 계층적 구조 : 구조검색, 전문검색가능
      • 유니코드 : 여러 언어 지원
  • 다양한 데이터베이스 시스템 설명
    • 멀티미디어 데이터베이스 : 멀티미디어 비정형 자료를 효율적으로 검색하고 관리하고자
    • 메인 메모리 데이터베이스(MMDB) : 데이터베이스를 메모리에 상주시킴
    • 임베디드 데이터베이스 : 임베디드 환경 하에 특정 기능 구현
    • 모바일 데이터베이스 : 중앙 서버로 전송하는 기능 
    • 공간 데이터베이스 :  좌표값으로 표현되는 공간 데이터의 집합
    • 칼럼형 데이터베이스 : 

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용2  (0) 2021.05.21
[2021 topcit 준비] 데이터 이해와 활용  (0) 2021.05.21
  • 데이터
    • 데이터와 연관된 시스템과 관련된 지식
    • 데이터 자체에 대한 응용 분야

 

  • 데이터 라이프 사이클
    • 데이터와 데이터베이스의 이해
      • 데이터, DB, DBMS, DB시스템
    • 데이터베이스 시스템의 이해
      • ANSI SPARC 3 레벨, 
      • 데이터 독립성
      • DBA, DA의 역활
    • 데이터 베이스 종류의 이해
      • 관계형 데이터베이스
      • 객체지향 데이터베이스
      • XML 데이터베이스
      • NoSQL 데이터 베이스
    • 데이터 베이스 설계
      • 구출 절차에 대한 기본 흐름
      • 데이터 모델링 평가
        • 정규화, 엔티티 속성, 관계, 주 식별자, 외부 식별자
      • 반 정규화
        • 기술, 인덱스, 지식
    • 데이터베이스 품질과 표준화
      • 단어 사전, 용어사전, 도메인 사전, 공통 코드
    • 3. 데이터베이스 프로그래밍
      • 관계 연산
        • 일반 집합 연산, 순수 관계 연산
      • 관계 데이터베이스 언어
        • DDL, DCL, DML
      • 데이터 베이스 질의 응용
        • 실전 현장에서 사용되는 SQL
    • 4. 데이터 베이스 운영
      • 동시성 제어
        • 트랜잭션의 개념과 특징
        • 병행성 제어 이론
        • 교착상태
        • 격리 수준
      • 데이터 베이스 복구
        • 데이터 베이스 장애의 개념 및 유형
        • ㄷ복구에 대한 지식 및 방법
        • 백업 방법
    • 5. 데이터 분석 및 응용 이해
      • 분석의 이해
        • 데이터웨어하우스의 개념과 특징
        • ETL
        • OLAP개념과 특징
        • 데이터 마이닝 개념과 알고리즘
      • 빅데이터의 이해
        • 정형, 비정형, 반정형 데이터
        • 하드웨어 구성 : 대량 데이터 효율적 처리
        • 소프트웨어 구성
        • 빅데이터의 통계적 분석
        • 자연어 처리
        • NoSql 개념
        • base이론
        • NoSQL분류방식 및 설계적 방식
      • 인공지능의 이해
        • 개념
        • 기계학습의 유형
        • 딥러닝의 개념 및 알고리즘 유형

 

'자격증 > Topcit' 카테고리의 다른 글

[2021 Topcit] 데이터 이해와 활용2  (0) 2021.05.21
[2021 Topcit] 데이터 이해와 활용  (0) 2021.05.21

참고 : 

www.yes24.com/Product/Goods/97822179

 

기사패스 NCS 정보처리기사 실기 문제집 1100제 (2021)

정보처리기사 자격증은 대한민국 대표적인 IT자격증입니다. 과거 30년 동안 전산분야 전문인력을 배출하는데 밑거름 역할을 수행하였습니다. 그러나 최근 IT기술은 4차 산업혁명, 인공지능, 빅데

www.yes24.com

www.aladin.co.kr/shop/wproduct.aspx?ItemId=265700557

 

2021 수제비 정보처리기사 실기 (1권+2권 합본세트) 2020년 기출 문제 수록

T 비전공자를 위해 만들어진 수험서다. NCS 모듈 제작에 참여한 경험을 기반으로, 다양한 모듈에서 시험 출제 빈도를 분석하여 출제 비중이 높은 내용 위주로 구성했다. 출제 비중이 낮고 이해하

www.aladin.co.kr

데이터 입출력 구현

  • 데이터 베이스
    • 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
    • 종류
      • 파일시스템
      • 관계형 데이터 베이스 관리시스템 (RDBMS)
        • 상하 관계로 표시
        • 유연성이 좋음
        • 유지 관리 용의
      • 계층형 데이터베이스 관리시스템 (HDBMS)
        • 상하 종속적인 관계
        • 접근 속도 빠름
        • 유연하게 대응 쉽지 않음
  • 데이터베이스 기술 트랜드
    • 빅데이터
    • NoSQL
    • 데이터 마이닝
      • 데이터 웨어하우스에 저장된 데이터 집합에서 사용자 요구에 따라 정보를 발견하기 위한 기법
      • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
      • 주요기법
        • 연관 규칙 : 종속관계 찾기/ 동시에 발생하는 트랜잭션의 연관 관계 발견
        • 분류 규칙 : 과거 수집된 레코드 분석 -> 분류 별 특성을 속성의 조합으로 나태내는 나무 형태의 분류 모형
        • 특성 발견 : 반복적인 학습을 통함 -> 모형 만들어냄
        • 데이터 군집화 : 유사 특징을 갖는 데이터 그룹화/ 정보가 없는 상태에서의 데이터 분류
        • 연속 규칙 : 새로운 값 예측 (시계열 분석 이용)
      • 절차
        • 목적 설정
        • 데이터 준비(사전 준비)
        • 가공
        • 데이터 마이닝 적용
        • 정보 검증
        • .
        • .
        • data선택
        • data 정제/보완
        • data변환
        • data mining 적용 및 평가
  • 빅데이터
  • NoSQL
  • 데이터 마이닝
  •  

5. 소프트웨어 설치

5.1_ 개념 및 사용법

① 프로그램 설치의 개요

  • c 언어 -> tar로 압축하여 배포,
  • 레드햇 : 기본(RPM), 온라인 (YUM)
  • 데비안 : 기본(Dpkg), 온라인 (apt-get, apt)
  • 수세 : 기본(YaST), 온라인(zypper, zypp)

② 소스 설치법

  • 압출 풀기 -> 디렉터리 이동 -> configure -> make -> make install
  • tar, gcc, make필요
  • configure
    • 사용자들이 자신의 환경에 맞도록 손쉽게 수정 O
    • 시스템에서 찾아냄
    • makefile만듦
  • make 
    • 소프트웨어 컴파일하는 유틸리티
    • 타겟과 의존성 관련 작업
    • 실행 파일 만듦
  • make install 
    • 컴파일된 실행파일을 지정한 속성으로 지정된 디렉터리에 설치
  • cmake
    • make의 대체 프로그램
    • 멀티플랫폼 지원
    • make 과정 수행 X
    • 다양한 플랫폼 지원
    • 독자적인 설정 스크립트 이용
    • 타임스탬프를 통해 파일 내용 변화 알 수 있다
    • 평행 빌드 지원
    • 크로스 컴파일 가능
    • Dart, CTest, CPack 포함

③ 패키지 설치법

  • RPM 개요
  • 데비안 패키지 관래의 개요

 

5.2_ 소프트웨어의 설치 및 삭제 

① tar와 압축관련 유틸리티

  • tar
    • -c : 하나로 묶어 새로운 tar만듦
    • -x : 푼다
    • -v : 대상이 되는 파일 보여줌
    • -f 파일명 : 이름 지정, -쓰면 표준 입출력됨
    • -r : tar파일 뒤에 파일 추가
    • -t : tar파일 안에 묶여 있는 파일의 목록 출력
    • -h : 심볼릭 링크가 가리키고 있는 원본 파일 저장
    • -C : 디렉터리 변경할 때
    • -p : 파일 생성 되었을 때, 권한 그대로 유지
    • -P : 맨 앞의 \를 포함해서 절대 경로 관련 정보 유지 (--absolute-path)
    • -Z : 예전 유닉스 계열 표준 앞축 파일인 tar.Z에 사용
    • -z : gzip 관련 옵션, tar.gz에 사용
    • -j : bzip2 관련 옵션, tar.bz2에 사용
    • -J : xz 관련 옵션, tar.xz에 사용
  • compress, uncompress
  • gzip, gunzip
    • -d : 압출 풀 때
    • -1 : 압출 시간 줄임, 압축률 떨어짐 --fast
    • -9 : 압축 최대로 압축, 시간 많이걸림, 압출률 좋음
    • -c : 결과를 표준 출력으로 보낼 때, tar와 병행해서 작업할 때
    • -l : 압축 파일에 대한 정보 출력
  • bzip2, bunzip2
  • xz, unxz

② rpm 사용법

  • rpm 사용법의 개요
  • 설치 및 갱신 모드
    • -i : 새로운 패키지 설치, 이전 있으면 설치 X
    • -U : 업그레이드할 때 사용
    • -F : 이전 버전이 설치 되어 있는 경우만 설치
    • -v : 메시지 자세히 보여줌
    • -h : 설치 상황을 "#" 기호로 표시
    • --force : 강제로 설치할 때
    • --nodeps : 의존성 관계 무시하고 설치, 강제로 설치
  • 제거모드
    • -e : 삭제, 의존성 갖는 패키지는 삭제 안함
    • --nodeps : 의존성 가져도 삭제
  • 질의 모드
    • -q : 질의시 꼭 사용
    • -i : 설치된 패키지 정보 출력
    • -l : 설치한 파일 정보 출력
    • -a : 설치된 모든 패키지 목록
    • -p 패키지 명 : rpm 패키지이 파일에 대한 정보 보여줌
    • -f 파일명 : 지정한 파일의 설치한 패키지 이름 출력
    • -d : 해당 패키지의 문서 파일 출력
    • --queryformat : 질의의 결과를 원하는 형태로 출력할 때, printf와 유사
  • 검증 모드

③ yum

  • yum의 개요
    • 의존성 문제 해결
  • 사용법
    • yum [옵션] [코멘드] [패키지_파일명]
    • 옵션
      • - y : 모든 질의 예스
      • - v : 자세한 정보 출력
    • command
      • list [항목] : 전체 패키지에 대한 정보 출력
        • 기본값 all
      • info [패키지] : 패키지에 대한 정보 출력
      • check - update : 'yum list updates'와 같다.
      • updata [패키지명] : 패키지 업뎃할 때
      • install [패키지] 
      • serch [문자열] : 문자열이 포함된 패키지 찾아줌
      • remove, erase
      • groupinstall
      • clean [값] : all, packages, rpadb, dbcache 삭제할 때
      • history : yum 명령 이력

④ dpkg 사용법

  • 사용법
  • 옵션

⑤ apt -get 

  • 개요
    • 데비안 리눅스 
    • yum과 유사
    • 의존성과 충돌성 해결
      • /etc/apt/source.list 관리
    • ATP 라이브러리 이용
    • 시냅틱, 앱티튜드 이용하기도 함
  • 사용법

4. 에디터

4.1_에디터의 종류

① 에디터의 개요

  • 에디터란
  • 리눅스 에디터
    • X 윈도 : gedit
    • 유닉스 : vi

② 에디터의 종류 및 특징

  • PICO
    • 유닉스 기반
    • 이메일 클라이언트 프로그램에 통합되어 배포
    • 소스의 수정 불가
    • 복제 버전 : nano (마우스 가능)
  • emacs
    • 리처드 스톨만 
    • 확장성, 유연성
    • 기능이 너무 많음, 대응하는 LISP를 코드 불러오는데 오래걸림
    • 초보자 사용 어렵
  • vim
    • vi편집기와 호환
    • 다양한 색상
    • 히스토리 기능, 확장된 정규 표현식 문법, 강력한 문법 강조 기능, 다중 되돌리기, 다국어 지원, 문법 검사
    • GUI 기반 :  gVim

 

4.1_에디터의 활용

① pico

  • pico 시작하기
  • pico 이동하기 ctrl+
    • a : 현재 커서가 위치한 줄의 처음으로
    • e : 현재 커서가 위치한 줄의 끝으로
    • p : 커서를 윗줄로
    • n : 커서를 아랫줄로
    • b : 커서를 뒤(왼)로
    • f : 커서를 앞(오)으로

② emacs

  • 시작과 종료하기
  • 커서 이동하기

③ vi

  • 시작하기
    • 명령 모드 : i, a, o, l, A, O
    • 입력 모드 : input mode, insert mode
    • ex 명령 모드 : ':'키 입력했을 때
  • 사용법
    • - r : 손상된 파일 복구
    • +[num] : 파일을 열면서 커서를 지정한 num번째 줄로 이동
      • +값만 입력하면 커서를 마지막 줄로 이동시킴
  • 커서 이동하기
    • h : 왼
    • j : 아
    • k : 위
    • l : 오
    • w : 다음 단어의 처음
    • - : 앞 줄의 첫 문자
    • ^ : 줄의 첫 문자
    • $ : 줄의 맨 끝
    • + : 다음 줄의 첫 문자
    • 0 : 첫 번째 열로
    • G : 젤 끝줄로
    • nG : n번째 행으로
    • gg : 파일의 처음
    • ( : 문장의 처음
    • ) : 다음 문장의 처음
    • { : 문단의 처음
    • } : 다음 문단의 처음
    • H : 화면의 첫 줄
    • M: 화면의 중간
    • L : 화면의 끝
    • ctrl + b : 한 화면 위로
    • ctrl + f : 한 화면 아래로
    • ctrl + u : 반 화면 위로
    • ctrl + d : 반 화면 아래로
    • e : 다음 단어의 맨 뒤로 (오)
    • b : 단어 맨 앞으로
    • z[Enter] : 현재 커서가 위치한 줄을 화면의 첫 줄로
    • n% : n퍼센트에 해당하는 줄로 이동
    • :0 : 줄의 처음으로 이동
    • :$ : 줄의 제일 끝
  • 복사 및 붙이기
  • 삭제하기
  • 되돌리기 및 패턴 검색
  • ex 명령 모드
  • ex 명령 모드와 특수 문자
  • 문자열 치환
  • vi 환경 설정
  • 관련 파일 : exrc

3. 프로세스 관리

3.1_ 개념 및 유형

① 프로세스 개요

  • 프로세스란
  • 프로세스의 생성
    • fork : 복사본 형태의 프로세스 실행
    • exec : 원래 프로세스를 새로운 프로세스로 대체하는 형태
    • 부팅-> init 최초의 프로세스 발생, PID 1 
  • 프로세스의 종류
  • 멀티태스킹과 작업 전환

② 시그널과 데몬

  • 시그널
    • 프로세스끼리 통신
    • 목록 : kill -l 확인 가능
    • 시그널 번호 - 순서
      • SIGHUP : 터미널에서 접속 끊길 때, 재시작 할 때
      • SIGINT : 키보드에서 옴, 실행 종료 (ctrl + c)
      • SIGQUIT : 실행 중지 (ctrl + \)
      • SIGKLL : 무조건 종료
      • SIGTERM : 정상 종료
      • SIGCONT : 정지된 프로세스 다시 실행
      • SIGSTOP : 입력된 정지 시그널
      • SIGTSTP : 실행 정지후 다시 실행 계속하기 위해 대기 (ctrl + z)
  • 데몬
    • 백그라운드에서 실행
    • 실행 방법
      • standalone : 부팅 시에 실행
        • 메모리에 상주
        • ps 명령으로 확인 가능
      • inet
        • 요청이 들어 왔을 때 관련 프로세스 실행

 

3.2_ 프로세스 유틸리티

① 프로세스 관련 명령어

  • ps 
    • 동작 중인 프로세스의 상태를 출력해 주는 명령
    • 옵션 계열
      • System V : (dash, -)사용
      • BSD : 대시 사용 X
      • GNU : 두 개의 대시 
    • ps [option]
    • 옵션 
      • a : 터미널과 연관된 프로세스 출력
      • u : 프로세스의 소유자를 기준으로 출력
      • x : 터미널에 종속되지 않는 프로세스 출력
      • l : 프로세스의 정보를 길게 보여줌, 우선순위와 관련된 (RPI, NI)값 확인
    • 옵션 항목
      • USER : BSD 계열, 프로세스 소유자의 이름
      • UID : SYSTEM V 계열, 프로세스 소유자의 이름
      • PID : 프로세스의 식별 번호
      • %CPU : CPU 사용 비율 추정치 (BSD)
      • %MEM : 메모리 사용 비율의 추정치 (BSD)
      • VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
      • RSS : 실제 메모리 사용량
      • TTY : 프로세스와 연결된 터미널
      • STAT : 현재 프로세스의 상태 코드
      • START : 프로세스 시작 시간 or 날짜
      • TIME : 총 CPU 사용 시간
      • COMMAND : 프로세스의 실행 명령행
      • STIME : 프로세스가 시작된 시간 혹은 날짜(Sys V)
      • C, CP : 짧은 기간 동안의 CPU사용률
      • F : 프로세스의 플래그 (1:exec 호출 없이 fork된 경우 / 4 : 슈퍼유저 권한 사용자)
      • PPID : 부모 프로세스의 PID
      • PRI : 실제 실행 우선순위
      • NI : nice 우선 순위 번호 
    •  STAT의 주요 값
      • R ( Runnig) : 실행 중 혹은 실행될 수 있는 상태 
      • S ( Sleeping) : 인터럽트에 의한 sleep 상태, 특정 이벤트가 끝나기를 기다리는 상태
      • D ( Disk wait) : 디스크 I/O에 의해 대기하고 있는 상태
      • T ( Traced or stopped) : 정지된 상태
      • W : paging 상태
      • Z ( Zombie) : 작업이 종료되었거나 부모 프로세스로 부터 회수되지 않아 메모리를 차지하고 있는 상태
      • X : 죽어있는 상태, 상태값으로 볼 수 X
      • < : 우선순위가 인위적으로 높아진 상태
      • N (Nice) : 다른 사용자에 의해 인위적으로 우선순위가 낮아진 상태
      • L : 메모리 안에서 페이지가 잠금된 상태
      • s : session Leader
      • I : 멀티 쓰레드 상태
      • + : 포어그라운드 프로세스 그룹
  • pstree
  • top
  • kill
    • 특정한 시그널 보내는 명령
    • 옵션 없이 실행 : 15신호 보냄
    • kill [옵션] [시그널] [PID or %Job_number]
      • - l : 시그널의 종류 출력
      • - s signal : 시그널의 이름 지정
      • - 9 : 강종
  • killall
  • jobs
  • fg
    • fg [%잡 넘버]
    • fg 잡 넘버
  • bg
    • 포어그라운드 실행 중인 프로세스 + ctrl +z  하면 사용 가능
  • nice
    • 프로세스의 우선순위 변경
    • NI값 설정 ( 작을 수록 우선순위 ↑)
    • 일반 사용자 : 증가만 가능
    • root : 감소 가능
    • 옵션 
      • -n 값, - 값, --adjustment=값 : NI 값을 지정한 NI값과 증감, 값 지정 안하면 10지정됨
        • ex) nice -10 bash 
        • nice -- adjustment = 10
        • nice bash
  • renice
  • nohup



② 스케줄링과 cron

  • 스케줄링
    • at, cron
  • cron
    • 시스템 운영에 필요 : /etc/crontab (주기적으로 실행)
    • 사용자 : crontab에 실행
    • 필드
      • 분, 시, 날, 월, 요일, 사용자 이름, 명령어
  • crontab
    • vi가 실행됨
    • 옵션 
      • - l : 내용 출력
      • - e : 작성하거나 수정
      • - r : 내용 삭제
      • - u : root사용자가 특정 사용자의 crontab파일 다룰 때 사용

 

 

2. shell

2.1_ 셸의 개념 및 종류

① 셸의 개념과 특징 - 순서

  • Bourne Shell 
    • 기본 셸
  • C 셸
    • c 언어 기반
    • 히스토리, 별명, 작업 제어
    • 편집 기능 X
  • tcsh
    • C 셸 통합
    • csh기능 강화
    • 명령어 완성 기능, 명령행 편집기능
  • ksh
    • 본 셸 확장
    • 작업 제어, 앨리어스, 히스토리 기능, vi 및 emacs 스타일 명령행 편집 기능, 명령행 완성 기능
  • bash
    • 본 셸 기반
    • 리눅스의 표준 셸
    • 명령어 : sh와 호환
    • ksh + csh 기능 참고
      • 명령어 히스토리, 명령어 완성, 히스토리 치환, 명령어 편집 지원
    • POSIX와 호환됨

② 셸의 확인과 변경

  • 셸의 확인
    • echo $SHELL
      • 로그인 후 사용중인 셸 확인
    • chsh -l
      • /etc/shells 파일 안의 셸들 나열
      • 셸 목록 확인
    • cat /etc/shells 
      • 현재 시스템에서 사용 할 수 있는 셸들 확인
    • etc/passwd
      • 로그인 시 부여되는 셸 정보 확인
  • 셸의 변경
    • chsh

 

2.2_셸 환경 변수

① 셸 변수와 환경 변수

  • 셸 변수
    • 변수명=값
  • 환경 변수

② 주요 환경변수

  • 주요 환경변수
    • HOME
    • PATH
    • LANG : 언어
    • TERM : 로그인한 터미널 종류
    • PWD : 사용자의 현재 작업 디렉터리
    • SHELL : 로그인 셸
    • USER : 사용자의 이름
    • DISPLAY : X 윈도우에서 프로그램 실행시 출력되는 창
    • PS1 : 프롬포트 변수
    • PS2 : 2차 프롬포트 변수
    • HISTFILE : 히스토리 파일의 절대경로
    • HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수
    • HISTFILESIZE : 히스토리 파일의 파일 크기
    • HOSTNAME : 시스템의 호스트명
    • MAIL : 도착한 메일이 저장되는 경로
    • TMOUT : 사용자가 로그인한 후 일정기간동안 작업안할때, 로그아웃 시키는 초
    • UID : 사용자 UID
  • 환경변의 사용 및 변경
    • 프롬포트 형식
      • \d : 요일 월 일 형태로 날짜 표시
      • \h : 호스트 이름 표시
      • \s : 사용 중인 셸 이름 표시
      • \t : 24시 형태의 현재 시간 표시
      • \T : 12시 형태의 현재 시간 표시
      • \@ : 12시 형태의 현재 시간에 AM/PM 추가 표시
      • \u : 현재 사용자의 이름
      • \w : 현재 작업 디렉터리의 절대경로
      • \W : 현재 작업 디렉터리의 전체 경로 중 마지막 디렉터리만
      • \! : 현재 명령의 히스토리 넘버
      • \\ : \를 표시

③ 배시셸의 주요 기능과 관련 파일

  • history
    • 히스토리 리스트에 있는 명령어들 출력됨
    • 명령어들 : .bash_history파일에 추가 기록됨
    • 로그아웃 -> 메모리에 기억된 명령의 목록 파일에 저장
    • 명령문
      • !! : 마지막에 사용한 명령 실행
      • !n : n번째 사용한 명령 실행
      • !-n : 사용한 명령 목록을 역으로 해서 
      • !문자열 : 가장 최근에 사용한 명령 중에 '문자열'로 시작하는 명령 찾아 실행
      • !?문자열? : '문자열' 포함하고 있는 명령 찾아 실행
      • ^문자열1^문자열2 : '문자열 1을 문자열2로 대체한 후 실행
    • 환경변수
      • HISTSIZE
      • HISTFILESIZE
      • HISTFLE
      • HISTCONTROL
      • HISTTIMEFORMAT
  • alias
    • 별명
    • unalias : 해제
      • ex) alias ls = 'ls -alF' : ls라고 명령 실행-> 'ls -alF' 실행 되도록
    • 셸 관련 파일 및 디렉터리
      • /etc/profile : 시스템 전체 적용, 시작관련 프로그램 설정
      • /etc/bashrc : 시스템 전체 적용, alias와 함수를 설정
      • ~/.bash_profile : 개인 사용자 환경설정, 시작프로그램, 로그인 시 읽어드림
        • 사용자가 PATH같은 환경변수 수정 시 사용
      • ./~bashrc : 개인 사용자, alias와 함수들 있음, alias 이 파일에서 설정
      • ~/.bash_logout : 개인 사용자가 로그아웃할 때
      • /etc/profile.d :  일반 사용자의 alias 설정 등과 관련된 스크립트 존재

+ Recent posts