2023년 4월

UML 다이어그램 중 순차 다이어그램에 대한 설명으로 틀린 것은?

   객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것이다.

    주로 시스템의 정적 측면을 모델링하기 위해 사용한다.

   일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다.

   회귀 메시지(Self-Message), 제어블록(Statement block) 등으로 구성된다.

더보기

해설: 동적

'소프트웨어 > 정보처리기사' 카테고리의 다른 글

정보처리기사 용어  (0) 2024.03.11
  • 데이터베이스 : 공통으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
  • 데이터베이스 정의 4가지 : 통합된 데이터, 저장된 데이터, 운영데이터, 공용데이터
  • 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임 
  • 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
  • 운영 데이터 : 조직의 고유한 업무를 수행하는 데 반드시 필요한 자료
  • 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료
  • DBMS : 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어, 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성을 해결하기 위해 제안된 소프트웨어
  • DBMS의 필수 기능 3가지 : 정의기능, 조작기능 ,제어기능
  • 논리적 독립성 : 응용프로그램과 데이터베이스를 독립함으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향을 받지 않음을 의미하는 것
  • 물리적 독립성 : 응용프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써, 디스크를 추가/변경하더라도 응용프로그램은 영향을 받지 않는 것
  • 스키마 : 데이터베이스의 구조와 전반적인 명세를 기술한 것
  • 스키마의 종류 : 외부스키마, 개념스키마, 내부스키마
  • 외부스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
  • 개념스키마 : 데이터베이스의 전체적인 논리적 구조, 모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스
  • 내부스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조, 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현방법 등을 나타냄
  • 데이터베이스 설계시 고려사항 6가지 : 무결성, 일관성, 회복성, 보안, 효율성, 데이터베이스 확장(무일회보효테)
  • 무결성 : 삽입,삭제,갱신등의 연산후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야함
  • 일관성: 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함
  • 회복 : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함
  • 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함
  • 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함
  • 데이터베이스의 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함
  • 데이터베이스 설계 순서 : 요구조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
  • 요구조건분석 : 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것
  • 개념적 설계 : 현실세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
  • 논리적 설계 : 현실세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료구조로 변환시키는 과정
  • 물리적 설계 : 논리적 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
  • 데이터베이스 구현 : 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
  • 데이터 모델 : 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
  • 데이터 모델의 구성요소3가지 : 개체,속성,관계 ( 속관개 )
  • 개체 : 데이터베이스에 표현하려는 것, 개념이나 정보단위 같은 현실 세계의 대상체
  • 속성 : 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 관계 : 개체와 개체사이의 논리적인 연결
  • 데이터 모델에 표시할 요소 3가지 : 연산, 구조, 제약조건(연구제)
  • 구조 : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
  • 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
  • 제약조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
  • 개념적 데이터 모델 : 현실 세계의 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 변환하는 과정
  • 논리적 데이터 모델 : 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
  • 디그리, 차수 : 속성의 수
  • 기본속성 : 업무 분석을 통해 정의한 속성, 속성 중 가장 많고 일반적임
  • 설계속성 : 원래 업무상 존재하지 않고 설계 과정에서 도출해내는 속성
  • 파생속성 : 다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성
  • 종속 관계 : 두 개체 사이의 주 종 관계를 표현한 것
  • 중복 관계 : 두 개체 사이에 2번이상의 종속 관계가 발생한 관계
  • 재귀 관계 : 개체가 자기 자신과 관계를 갖는 것
  • 배타 관계 : 개채의 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계
  • 개체 : E-R 다이어그램의 기호중 사각형
  • 관계 : E-R 다이어그램의 기호중 마름모
  • 속성 : E-R 다이어그램의 기호중 타원
  • 다중값속성 : E-R다이어그램의 기호 중 이중타원
  • 기본키속성 : E-R다이어그램의 기호 중 밑줄타원
  • 복합 속성 : E-R다이어그램의 기호 중 복수타원
  • 관계형데이터베이스 : 2차원적인 표를 이용해서 데이터 상호관계를 정의하는 데이터베이스
  • 튜플 : 릴레이션을 구성하는 각각의 행
  • 도메인 : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값의 집합
  • 릴레이션의 특징 3가지 : 릴레이션에 포함된 튜플은 모두 상이, 튜플사이에는 순서가 없다, 삽입 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다
  • 관계형 데이터 모델 : 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 DB구조
  • 후보키 : 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 후보키의 속성 2가지 : 유일성, 최소성
    • 유일성 : 하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야함
    • 최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함
  • 기본키 : 후보키 중에서 특별히 선정된 주키이다. 중복된 값을 가질 수 없고 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.
  • 대체키 : 후보키가 둘 이상일때 기본키를 제외한 나머지
  • 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족X
  • 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
  • 무결성 : 데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성
    • 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없다는 규정
    • 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야함. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
    • 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
    • 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
    • NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
    • 고유 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다는 규정
    • 키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
    • 관계 무결성 : 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정
  • 관계대수 : 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
  • 순수관계연산자의 종류 4가지 : Select, Project, Join, Divison
  • 일반집합연산자의 종류 4가지 : 합집합,교집합,차집합,교차곱
  • Select:릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산의 종류와 기호
  • Project:주어진 릴레이션에서 속성리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산, 중복이 발생하면 중복이 제거되는 종류와 그 기호
  • Join:공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산의 종류와 그 기호
  • Division : R의 속성이 S의 속성값을 모두 가진 튜플에서 s가 가진 속성을 제외한 속성만을 구하는 연산
  • 합집합 : 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플을은 제거되는 연산
  • 교집합 : 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
  • 차집합 : 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
  • 교차곱 : 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
  • 이상 : 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상
    • 삽입 이상 : 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
    • 삭제 이상 : 테이블에 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄삭제가 발생하는 현상
    • 갱신 이상 : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
  • 함수적 종속 : 속성 x의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때를 의미하는 것 , Y는 X에 함수적 종속 또는 x가 y를 함수적으로 결정한다(속성2개가 속성1개를결정, 2개필수)
    • 완전 함수적 종속 : 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X전체에 대해 함수적 종속이면서 속성 집합 X의 어떠한 진부분집합Z에도 함수적 종속이 아닐때 속성 Y는 속성 집합X에 완점하수 종속이라고 한다.
    • 부분 함수적 종속 : 어떤 테이블R에서 속성Y가 다른 속성 집합X전체에 대해 함수적 종속이면서 속성 집합X의 임의의 진부분 집합에 대해 함수적 종속일때, 속성Y는 속성 집합X에 부분함수적 종속이라고 한다.(속성 1개만 가지고도 속성1개결정)
  • 정규화 : 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해 하는 과정
    • 제 1 정규화 : 모든 도메인이 원자값
    • 제 2 정규화 : 부분적 함수 종속 제거(완적 함수적 종속만족)
    • 제 3 정규화 : 이행적 함수 종속 제거
    • BCNF : 결정자이면서 후보키가 아닌것 제거
    • 제 4 정규화 : 다치 종속 제거
    • 제 5 정규화 : 조인 종속성 이용
  • 반정규화 : 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
  • 반정규화의 방법 4가지 : 테이블 통합, 테이블 분리, 중복 테이블추가, 중복 속성 추가
  • 테이블 통합 : 2개의 테이블이 조인(JOIN)되어 사용되는 경우가 많은 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용하는 것
  • 수평 분할 : 레코드를 기준으로 테이블을 분할하는 것, 레코드 별로 사용빈도의 차이가 큰 경우 사용빈도에 따라 테이블을 분할
  • 수직 분할 : 하나의 테이블에 속성이 너무 많은 경우 속성을 기준으로 테이블을 분할하는 것
  • 중복 테이블의 추가 : 여러 테이블에서 데이터를 추출해서 사용해야 할 경우, 다른 서버에 저장된 테이블을 이용해야 하는 경우 해야하는 반정규화 방법
  • 중복 테이블 추가 방법 3가지 : 집계테이블의 추가, 진행 테이블의 추가, 특정 부분만을 포함하는 테이블의 추가
    • 집계테이블추가: 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것
    • 진행테이블추가: 이력 관리 등의 목적으로 추가하는 테이블
    • 특정부분만을 포함하는 테이블 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성
  • 중복 속성 추가 : 조인이 자주 발생하는 경우, 접근 경로가 복잡한 속성인 경우, 액세스의 조건으로 자주 사용되는 속성인 경우 해야하는 반정규화 방법
  • 시스템 카탈로그 : 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
  • 메타 데이터 : 시스템 카탈로그에 저장된 정보
  • 데이터 디렉터리 : 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템(시스템만 접근)
  • 트랜잭션 : 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
  • 트랜잭션의 특성 4 가지 : 원자성, 일관성, 독립성, 영속성
    • 원자성 : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(rollback)되어야 하는 트랜잭션의 특성
    • 일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 변환하는 것
    • 독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것
    • 영속성 : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
  • CRUD분석 : 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것(C>D>U>R)
  • 트랜잭션분석 : CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB를 최적화 하는 것
  • 인덱스 : 데이터 레코드를 빠르게 접근하기 위해 <키값, 포인터> 쌍으로 구성되는 데이터 구조
  • 인덱스의 종류 5가지 : 트리기반, 비트맵, 함수기반, 비트맵 조인, 도메인
    • 트리기반인덱스 : 인덱스를 저장하는 블록들이 트리구조를 이루고 있는 것
    • 비트맵 인덱스 : 인덱스 컬럼의 데이터를 비트 값인 0또는1로 변환하여 인덱스 키로 사용하는 방법
    • 함수 기반 인덱스 : 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용하는 것
    • 비트맵 조인 인덱스 : 다수의 조인된 객체로 구성된 인덱스
    • 도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용하는것 
  • 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 자장되는 방식. 실제 데이터가 순서대로 저장되어 있어 원하는 데이터를 빠르게 찾을 수 있음
  • 논클러스터드 인덱스 : 인덱스의 키값만 정렬되어 있고 실제데이터는 정렬되지 않은 방식. 삽입 삭제 발생 시 순서를 유지하기 위해 데이터를 재정렬해야 함
  • 뷰 : 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본테이블로부터 유도된 가상 테이블
  • 클러스터 : 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
  • 파티션 : 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
  • 파티션의 종류 3가지 : 범위 분할, 해쉬분할, 조합 분할
    • 범위 분할 : 지정한 열의 값을 기준으로 분할 하는 것 (월별, 일별, 분기별)
    • 해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할하고, 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것
    • 조합 분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
  • 분산 데이터베이스 : 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 사이트에 분산된 데이터베이스
  • 분산 데이터 베이스의 목표 4가지 : 위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성
    • 위치 투명성 : 액세스 하려는 데이터베이스의 설계 위치를 알 필요없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음을 의미
    • 중복 투명성 : 동일데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하는 것을 의미하는 것
    • 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는 것을 의미하는 것
    • 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리하는 것
  • 데이터베이스 이중화 : 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것
  • 데이터베이스 이중화 기법 2가지 : Eager, lazy
    • Eager : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
    • lazy : 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법
  • 활동-대기 방법 : 한 db가 활성 상태돌 서비스하고 있으면 다른 db는 대기하고 있다가 활성 db에 장애가 발생하면 대기 상태에 있던 db가 서비스를 대신 수행하는 것
  • 활동-활동 방법 : 두 개의 db가 서로 다른 서비스를 제공하다가 둘 중 한쪽db에 문제가 발생하면 나머지 다른 db가 서비스를 제공하는 것
  • 클러스터링 : 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
  • 클러스터링의 종류 2가지 : 고가용성, 병렬처리클러스터링
    • 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 서버가 받아 처리하여 서비스 중단을 방지하는 방식
    • 병렬처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러개의 서버에서 분산하여 처리하는 방식
  • RTO : 비상사태 또는 업무 중단시점으로부터 복구되어 가동될때까지의 소요 시간
  • RPO : 비상사태 또는 업무 중단시점으로부터 데이터를 복구할 수 있는 기준점
  • 암호화 : 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호화하는 것
  • 접근통제 : 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보의 흐름을 제한하는 것
  • 접근통제 3 요소 : 접근통제 정책, 접근통제 매커니즘, 접근 통제 보안모델
    • 접근통제 정책 : 육하원칙에 따라 허용 여부 결정(신분기반, 규칙기반, 역할기반)
      • IBP : 최소 권한 정책으로, 단일 주체에게 하나의 객체에 대한 허가를 부여함
      • GBP : 복수 주체에 하나의 객체에 대한 허가를 부여함
      • MLP : 사용자나 객체별로 지정된 기밀 분류에 따른 정책
      • CBP : 집단별로 지정된 기밀 허가에 따른 정책
    • 접근통제 매커니즘 : 정의된 접근통제를 구현하는 기술적인 방법
    • 접근통제 보안모델 : 보안 정책을 구현하기 위한 정형화된 모델
      • 기밀성 모델 : 군사목적으로 개발된 최초의 수학적 모델
      • 무결성 모델 : 기밀성모델에서 정보변경을 방지하기 위한
      • 접근통제 모델 : 접근통제 매커니즘을 보안 모델로 발전시킨것(접근통제행렬)
  • 임의 접근 통제 : 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식, 데이터 소유자가 접근통제 권한을 지정하고 제어함
  • 강제 접근 통제 : 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식, 시스템이 접근통제 권한을 지정
  • 역할 기반 접근 통제 : 사용자의 역할에 따라 접근 권한을 부여하는 방식, 중앙권리자가 접근통제 권한을 지정
  • 접근 통제 조건 : 접근통제 매커니즘의 취약점을 보안하기 위해 적용할 수 있는 조건
    • 값종속통제, 다중사용자통제, 컨텍스트 기반 통제
  • 로그 : 데이터베이스의 처리 내용이나 이용상황등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일
  • 스토리지 : 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
    • DAS:서버와 저장장치를 전용 케이블로 직접 연결하는 방식, 저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬운 것
    • NAS: 서버와 저장장치를 네트워크를 통해 연결하는 방식, 장소에 구애받지 않고 저장장치에 쉽게 접근할 수 있음
    • SAN: DAS의 빠른처리와 NAS의 파일 공유 장점을 혼합한 방식으로, 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
  • 물리 데이터 모델 품질 기준 6가지 : 정확성,완정성,준거성,최신성,일관성,활용성(정완준최일활)
    • 정확성 : 데이터 모델이 요구사항이나 업무, 규칙, 표기법에 따라 정확하게 표현된 것
    • 완정성 : 데이터 모델이 데이터 모델의 구성요소를 누락없이 정의하고 요구사항이나 업무 영역을 누락 없이 반영한 것
    • 준거성 : 데이터 모델이 데이터 표준, 표준화 규칙, 법적 요건등을 정확하게 준수한 것
    • 최신성 : 데이터 모델이 최근의 이슈나 현행 시스템을 반영하고 있는것
    • 일관성 : 데이터 모델이 표현상의 일관성을 유지하고 있는 것
    • 활용성 : 작성된 모델과 설명을 사용자가 충분히 이해할 수 있고, 업무 변화에 따른 데이터 구조의 변경이 최소화 될 수 있는 것
  • 자료구조 : 자료를 기억장치의 공간 내에 저장하는 방법과 자료 간의 관계, 처리방법 등을 연구 분석하는 것
  • 배열 : 크기와 형이 동일한 자료를 순서대로 나열된 자료의 집합
  • 연속리스트 : 연속되는 기억장소에 저장되는 자료구조, 삽입 삭제 시 자료의 이동 필요
  • 연결리스트 : 자료들을 임의의 기억공간에 기억시키되, 노드의 포인터 부분을 이용하여 서로 연결시킨 자료구조, 접근속도가 느리고 기억공간의 효율이 좋지 않다.
  • 스택 : 한쪽끝으로만 자료의 삽입삭제이루어짐, 후입선출
  • 큐 : 리스트의 한쪽 끝에선 삽입, 다른쪽에서는 삭제가 이루어지는 
  • 그래프 : 정점과 간선의 두 집합으로 이루어진 자료구조
  • 방향 그래프의 최대 간선 수 공식 : N(N-1)
  • 무방향 그래프의 최대 간선 수 공식 : N(N-1)/2
  • 트리 : 정점과 선분을 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
  • 깊이 : Tree에서 노드가 가질 수 있는 최대의 레벨
  • 트리의 디그리 : 노드들의 디그리 중에서 가장 많은 수
  • 이진 트리 : 차수가 2 이하인 노드들로 구성된 트리
  • 트리 운행법 3가지 : preorder(가왼오), inorder(왼가오), postorder(왼오가)
  • 삽입정렬 : 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
  • 선택정렬 : n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최소값을 찾아 두번째 레코드 위치에 놓는 방식
  • 버블정렬 : 인접한 두개의 레코드 비교 
  • 쉘 정렬 : 매개변수의 값으로 서브파일을 구성하고, 각 서브파일을 삽입정렬 방식으로 순서배열하는 정렬방식
  • 기수 정렬 : 큐를 이용하여 자릿수 별로 정렬하는 방식
  • 시간복잡도가O(N^2)인 정렬 방식 : 삽입, 선택, 버블, 쉘
  • 시간복잡도O(Nlogn)인 정렬 방식 : 퀵,힙,합병

 


 

  • 통합구현 : 송 수신 모듈과 중계 모듈간의 연계를 구현하는 것
  • 직접연계방식 : 중간 매개체 없이 송 수신 시스템이 직접연계하는 방식
  • 간접연계방식 : 송 수신 시스템 사이에 중간 매개체를 두어 연계하는 방식
  • 연계 서버 : 데이터를 전송 형식에 맞게 변환하고 송수신을 수행하는 등 송수신과 관련된 모든 처리를 수행하는 서버
  • xml : 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업언어, 웹 브라우저 간 HTML문법이 호환되지 않는 문제와 SGML의 복잡함을 해결
  • SOAP : 컴퓨터네트워크 상에서 HTTP/HTTPS, STMP 등을 이용하여 XML을 교환하기 위한 통신 규약
  • WSDL : 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 개시하기 위한 언어, XML로 작성되며 , UDDI의 기초

 


 

  • 웹서버 : 클라이언트로부터 직접 요청을 받아 처리하고 저용량의 정적 파일을 제공하는 서버
  • 웹 애플리케이션 서버 (WAS) : 동적서비스를 제공하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버
  • 데이터베이스 서버 : 데이터베이스와 이를 관리하는 DBMS를 운영하는 서버
  • 파일 서버 : 데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버
  • 개발 언어의 선정 기준 5가지: 적정성, 효율성, 이식성, 친밀성, 범용성
    • 적정성 : 개발하려는 소프트웨어의 목적에 적합해야 함을 의미
    • 효율성 : 코드의 작성 및 구현이 효율적이어야 함을 의미
    • 이식성 : 다양한 시스템 및 환경에 적용이 가능해야 함을 의미
    • 친밀성 : 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함을 의미
    • 범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함을 의미
  • 소프트웨어 아키텍처 : 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체이다.
  • 모듈화 : 소프트웨어의 성능향상, 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것
  • 추상화 : 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시켜나가는 것
  • 추상화의 유형 3가지 : 과정추상화, 데이터추상화, 제어추상화
    • 과정추상화 : 자세한 수행과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법
    • 데이터추상화 : 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
    • 제어 추상화 : 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체하는 방법
  • 단계적 분해 : 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법
  • 정보 은닉 : 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
  • 품질 평가 요소의 종료 : 시스템 측면, 비즈니스 측면, 아키텍처 측면(시비아)
  • 시스템 측면에서의 평가 요소 : 성능,보안,가용성,기능성,사용성,변경용이성, 확장성(가기성보사변확)
  • 비즈니스 측면에서의 평가 요소 : 시장적시성, 비용과 혜택, 예상 시스템 수명, 목표시장,공개일정(시비예목공)
  • 아키텍쳐 측면에서의 평가 요소 : 개념적 무결성, 정확성, 구축 가능성, 변경성, 시험성(개정구변시)
  • 협약에 의한 설계 : 컴포넌트를 설계할 때 클래스에 대한 여러가정을 공유 할 수 있도록 명세한 것
  • 아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제
  • 레이어 패턴: 시스템을 계층으로 구분하여 구성하는 고전적인 방법의 패턴
  • 클라이언트-서버패턴 : 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
  • 파이프-필터 패턴 : 데이터 스트림 각 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
  • MVC패턴 : 서브시스템을 모델,뷰,컨트롤러로 구조화하는 패턴
  • 마스터-슬레이브 패턴 : 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
  • 객체지향 : 각 요소들을 객체로 만든 후 객체들을 조립해서 소프트웨어를 개발하는 기법
  • 객체지향의 구성 요소 3가지 : 객체, 클래스, 메시지
  • 객체지향의 특징 4가지 : 캡슐화, 상속, 다형성, 연관성
  • 객체 : 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈
  • 클래스 : 공통된 속성과 연산을 갖는 객체의 집합
  • 메시지 : 객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구사항
  • 캡슐화 : 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부내용을 은닉하는 것
  • 상속 : 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 다형성 : 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
  • 연관성 : 두 개 이상의 객체들이 상호 참조하는 관계
    • 연관성의 종류 5가지 : 연관화, 분류화, 집단화, 일반화, 특수화
  • 객체지향분석 : 사용자의 요구사항과 관련된 객체,속성,연산,관계 등을 정의하여 모델링하는 작업
  • Coad와 Yourdon방법 : e-r다이어그램을 사용하여 객체의 행위를 모델링하는 방법
  • 럼바우의 분석기법 : 모든소프트웨어 구성요소를 그래픽 표기법을 이용하여 모델링하는 기법, 객체모델링기법이라고 한다
    • 럼바우 분석 활동 순서 : 객체 모델링(객체다이어그램) -> 동적 모델링(상태다이어그램) -> 기능 모델링(자료흐름도, DFD)
    • 객체 모델링 : 정보 모델링이라고 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시하는 것
    • 동적 모델링 : 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들 간의 제어흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
    • 기능 모델링 : 자료흐름도를 이용하여 다수의 프로세스들 간의 자료흐름을 중심으로 처리 과정을 표현한 모델링
  • 객체지향 설계 원칙 : 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜져야 할 원칙
    • 단일 책임 원칙(SRP): 객체는 단 하나의 책임만 가져야 한다는 원칙
    • 개방-폐쇄 원칙(OCP) : 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙
    • 리스코프치환원칙(LSP) : 자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 한다는 원칙
    • 인터페이스분리원칙(ISP) : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
    • 의존 역전 원칙(DIP) : 의존 관계성립시 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙
  • 모듈 : 모듈화를 통해 분리된 시스템의 각 기능
  • 결합도 : 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계 
  •  결합도의 종류 6가지 : (내공외제스자) 내용결합도,공통결합도,제어결합도,외부결합도,스탬프결합도,자료결합도
    • 내용 결합도 : 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도
    • 공통 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도, 파라미터가 아닌 모듈 밖에 선언된 전역변수를 사용하여 전역 변수를 갱신하느 결합도
    • 외부 결합도 : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의결합도
    • 제어 결합도 : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도
    • 스탬프 결합도: 모듈간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
    • 자료결합도 :모듈 간의 인터페이스가 자료요소로만 구성될 때의 결합도 
  • 응집도 : 모듈의 내부요소들이 서로 관련되어 있는 정도(우논시절교순기)
    • 기능적 응집도 : 모듈내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
    • 순차적 응집도 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
    • 교환적 응집도 : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
    • 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
    • 시간적 응집도 : 특정 시간에 처리되는 몇개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
    • 논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
    • 우연적 응집도 : 모듈 내부의 각 구성요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도
  • 팬인 : 어떤 모듈을 제어하는 모듈의 수
  • 팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수
  • N-S차트 : 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
  • 단위 모듈 : 한가지 동작을 수행하는 기능을 모듈로 구현한 것
  • IPC: 모듈간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
  • IPC의 대표 메소드 5가지 : Shared Memory, Socket, Semaphores, Pipes & Named Pipes, Message Queueing
    • Share Memory : 공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식
    • 소켓 : 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스간에 통신하는 방식
    • Semaphores : 공유 자원에 대한 접근 제어를 통해 통신하는 방식
    • Pipes&named Pipes : Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식
    • Message Queueing : 메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식
  • 테스트케이스 : 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서
  • 공통 모듈 : 여러프로그램에서 공통으로 사용할 수 있는 모듈
  • 공통 모듈 명세기법의 종류 5가지 : 정확성,명확성,완정성,일관성,추적성
    • 정확성 : 시스템 구현 시 해당기능이 필요하다는 것을 알 수 있도록 정확히 작성함
    • 명확성 : 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함
    • 완전성 : 시스템 구현을 위해 필요한 모든 것을 기술함
    • 일관성 : 공통 기능들 간 상호충돌이 발생하지 않도록 작성함
    • 추적성 : 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성
  • 재사용 : 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
  • 재사용 규모에 따른 분류 3가지 : 함수와 객체, 컴포넌트, 애플리케이션
    • 함수와 객체 : 클래스나 메소드 단위의 소스코드를 재사용
    • 컴포넌트 : 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용
    • 애플리케이션 : 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용
  • 코드의 주요기능5가지 : 식별, 분류, 배열, 표준화, 간소화
    • 식별기능 : 데이터 간의 성격에 따라 구분이 가능함
    • 분류기능 : 특정 기준이나 동일한 유형에 해당하는 데이터를 그룹화 할 수 있음
    • 배열기능 : 의미를 부여하거나 나열할 수 있음
    • 표준화기능 : 다양한 데이터를 기준에 맞추어 표현할 수 있음
    • 간소화기능 : 복잡한 데이터를 간소화 할 수 있음
  • 순차코드 : 자료의 발생 순서, 크기 순서 등 일정 기준에 따라서 최초의 자료부터 차례로 일련번호를 부여하는 방법
  • 블록코드 : 코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고, 각 블록내에서 일련번호를 부여하는 방법
  • 10진코드 : 코드화 대상 항목을 0~9까지 10진  분할하고, 각각에 대하여 10진 분할하는 방법을 필요한 만큼 반복하는 방법
  • 그룹 분류 코드 : 코드화 대상 항목을 일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고 각 그룹 안에서 일련번호를 부여하는 방법
  • 연상 코드 : 코드화 대상 항목의 명칭이나 약호와 관계있는 숫자나, 문자, 기호를 이용하여 코드를 부여하는 방법
  • 표의 숫자 코드 : 성질, 즉 길이 넓이, 부피, 지름, 높이 등의 물리적 수치를 그대로 코드에 적용시키는 방법
  • 합성 코드 : 필요한 기능을 하나의 코드로 수행하기 어려운 2개이상의 코드를 조합하여 만드는 방법
  • 디자인 패턴 : 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
  • GOF 디자인 패턴의 종류 3가지 : 생성, 구조, 행위패턴
  • 생성 패턴 : 클래스나 객체의 생성과 참조 과정을 정의하는 패턴
    • 추상 팩토리 : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 패턴
    • 빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성하는 패턴
    • 팩토리 메소드: 객체생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당
    • 프로토 타입 : 원본객체를 복제하는 방법으로 객체를 생성하는 패턴
    • 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조 할 수 없음. 인스턴스가 하나 뿐임을 보장하는 패턴
  • 구조패턴 : 구조가 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하여 더 큰구조로 만드는 패턴
    • 어댑터 : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
    • 브리지 : 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴
    • 컴포지트 : 여러객체를 가진 복합 객체와 단일 객체를 구분없이 다루고자 할때사용하는 패턴
    • 데코레이터 : 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
    • 퍼싸드 : 복잡한 서브클래스들을 피해 더상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴
    • 플라이웨이트 : 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메모리를 절약하는 패턴
  • 행위 패턴 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
    • 책임 연쇄 : 요청을 처리할 수 있는 객체가 둘이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴
    • 커맨드 : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
    • 인터프리터 : 언어에 문법 표현을 정의하는 패턴
    • 반복자 : 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
    • 중재자 : 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
    • 메멘토 : 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴
    • 옵저버 : 한객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴, 일대다의 의존성을 정의
    • 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해아 할 때 사용하는 패턴
    • 전략 : 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환을 할 수 있게 정의하는 패턴
    • 템플릿 메소드 : 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴
    • 방문자 : 실제 로직을 가지고 있는 객체가 로직을 적용할 객체를 방문하면서 실행하는 패턴
  • 빌드 : 소스코드파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물
    • ANT : 아파치 소프트웨어 재단에서 개발하였고 자바 프로젝트의 공식적인 빌드 도구
    • MARVEN : 아파치 소프트웨어 재단에서 ANT의 대안으로 개발하였고 의존성을 설정하여 라이브러리를 관리함
    • GRADLE : ANT와 MARVEN을 보완하여 개발하였고, 안드로이드 스튜디오의 공식 빌드 도구
  • 협업 도구 : 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행 할 수 있도록 도와주는 도구
  • SPRING : JAVA를 기반으로 만든 서버 개발 프레임워크
  • NODE.JS : JAVASCRIPT를 기반으로 만든 서버 개발 프레임워크
  • Django : python을 기반으로 만든 서버 개발 프레임워크
  • codeigniter : php를 기반으로 만든 서버 개발 프레임워크
  • ruby on rails : ruby를 기반으로 만든 서버 개발 프레임워크
  • 서버개발과정 : DTO/VO, SQL, DAO, Service, Controller를 각각 구현하는 과정
    • DTO(Data Transfer Object)/VO(Value Object) 구현 : 데이터 교환을 위해 사용할 객체를 만드는 과정, 송수신할 데이터의 자료형에 맞는 변수 및 객체를 생성
    • SQL 구현 : 데이터의 삽입,변경,삭제 등의 작업을 수행할 SQL문을 생성하는 과정
    • DAO 구현 : 데이터베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정
    • SERVICE 구현 : 사용자의 요청에 응답하기 위한 로직을 구현하는 과정
    • Controller 구현 : 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정
  • API : 응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 라이브러리를 이용할 수 있도록 규칙을 정의해 놓은 인터페이스
  • 배치프로그램 : 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
  • 배치 프로그램의 필수요소 5가지 : 대용량데이터, 자동화, 견고성, 안정성, 성능
    • 대용량데이터 : 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함을 의미
    • 자동화 : 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 한다는 것을 의미
    • 견고성 : 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 함을 의미
    • 안정성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 한다는 것
    • 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야하고, 지정된 시간 내에 처리가 완료되어야 한다는 것
  • 배치 스케줄러 : 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
    • 스프링 배치 : Spring Source 사와 Accenture 사가2007년 공동 개발한 오픈 소스 프레임워크
    • Quartz : 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리
    • cron : 리눅스의 기본 스케줄러 도구, crontab 명령어를 통해 작업 예약 가능
      • [분] [시] [일] [월] [요일] [명렁어] , 분시일월요일에 *를 입력하면 매시기마다 수행
  • 패키지 소프트웨어 : 기업에서 일반적으로 사용하는 여러 기능을 통합하여 제공하는 소프트웨어

 

 


 

  • 애플리케이션 테스트 : 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차
  • Validation(확인) : 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지 확인하는 것
  • Verification(검증) : 개발자의 입장에서 개발한 소프웨어가 명세서에 맞게 만들어졌는지 점검하는 것
    • 완벽한 테스트 불가능 : 소프트웨어의 잠재적인 결함을 줄일 수 있지만 소프트웨어에 결함이 없다고 증명할 수는 없음
    • 파레토 법칙 : 애플레케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙
    • 살충제 패러독스 : 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상
    • 테스팅은 정황의존 : 소프트웨어의 특징, 테스팅환경, 테스터의 역량 등 정황에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함
    • 오류-부재의 궤변 : 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없는 것
    • 테스트와 위험은 반비례 : 테스트를 많이 하면 할수록 미래에 발생할 위험을 줄일 수 있는 것
    • 테스트의 점진적 확대 : 테스트는 작은 부분에서 시작하여 점점 확대하며 진행해야 하는 것
    • 테스트트의 별도 팀 수행 : 테스트는 개발자와 관계없는 별도의 팀에서 수행해야 하는 것
  • 정적 테스트 : 프로그램을 실행하지 않고 명세서나 소스코드를 대상으로 분석하는 테스트, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 등을 발견하기 위해 사용
  • 동적 테스트 : 프로그램을 실행하여 오류를 찾는 테스트, 소프트웨어 개발의 모든 단계에서 테스트를 수행
  • 명세기반테스트 : 사용자의 요구사항에 대한 명세를 빠짐없이 테스트 케이스로 만들어 구현하고 있는지 확인하는 테스트
  • 구조기반테스트 : 소프트웨어 내부의 논리흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트
  • 경험기반테스트 : 유사 소프트웨어나 기술 등에 대한 테스터의 경험을 기반으로 수행하는 테스트
  • 검증(Verification) : 개발자의 시각에서 제품의 생산과정을 테스트 하는 것
  • 확인(Validation) : 사용자의 시각에서 생상된 제품의 결과를 테스트 하는 것
  • 회복테스트 : 시스템에 여러가지 결함을 주어 실패하도록 한 후 올바르게 복구되는지를 확인하는 테스트
  • 안전테스트 : 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인하는 테스트
  • 강도테스트 : 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
  • 성능테스트 : 소프트웨어의 실시간 성능이나 전체적인 효율성을 진단하는 테스트
  • 구조테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
  • 회귀테스트 : 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트
  • 화이트 박스 테스트 : 원시코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
    • 기초경로검사 : 테스트케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법
    • 제어구조검사 : 조건검사, 루프검사, 데이터흐름 검사를 하는 기법
      • 조건검사 : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
      • 루프검사 : 프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 설계 기법
      • 데이터 흐름 검사 : 프로그램의 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 설계 기법 
  • 화이트 박스 테스트의 검증 기준(커버리지) 4 가지 : 문장검증, 분기검증, 조건검증, 분기/조건 검증
    • 문장 검증 기준 : 소스 코드의 모든 구문이 한번 이상 수행되도록 테스트 케이스를 설계하는 것
    • 분기 검증 기준 : 소스 코드의 모든 조건문에 대해 조건식의 결과가 True인 경우와 False인 경우가 한번 이상 수행되도록 테스트케이스를 설계하는 기법
    • 조건 검증 기준 : 소스코드의 조건문에 포함된 개별 조건식의 결과가 True인경우와, False인 경우가 한번이상 수행되도록 테스트 케이스를 설계함
    • 분기/조건 기준 : 분기 검증 기준과 조건 검증 기준을 모두 만족하는 설계
  • 블랙 박스 테스트 : 각 기능이 완전히 작동되는 것을 입증하는 테스트
  • 블랙박스 테스트의 5가지 종류 : 경계값 분석, 동치 분할 검사, 원인-결과 그래프 검사, 오류 예측검사, 비교 검사
    • 동치 분할 검사 : 프로그램의 입력조건에 타당한 입력자료와 타당하지 않은 입력자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 입력 자료에 맞는 결과가 출력되는지 확인하는 기법
    • 경계값 분석 : 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
    • 원인-결과 그래프 검사 : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
    • 오류 예측 검사 : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
    • 비교 검사 : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트 하는 기법
  • 단위 테스트 : 소프트웨어의 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 하는 것
  • 통합 테스트 : 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로완성시키는 과정에서의 테스트
  • 시스템 테스트 : 개발된 소프트웨어가 완벽하게 수행되는가를 점검하는 테스트
  • 인수 테스트 : 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 것
    • 사용자 인수 테스트 :사용자가 시스템 사용의 적절성 여부를 확인하는 테스트
    • 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트
    • 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트
  • 비점진적 통합 방식 : 단계적으로 통합하는 절차 없이 모든 모듈이 결합되어 있는 프로그램 전체를 테스트하는 방법
  • 점직적 통합 방식 : 모듈단위로 단계적으로 통합하면서 테스트하는 방법
    • 하향식 통합 테스트 : 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
      • 스텁 : 하향식 통합 테스트에서 주요 제어 모듈의 종속 모듈을 대체하는 것
    • 상향식 통합 테스트 : 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
      • 클러스터 : 샹항샤기 통합 테스트에서 하위 모듈들을 겹합한 것
      • 드라이버 : 상위 모듈에서 데이터의 입출력을 확인하기 위한 더미 모듈
  • 혼합식 통합 테스트 : 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합 사용하여 최적의 테스트를 지원하는 방식
  • 애플리케이션 테스트 프로세스의 순서 : 테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 테스트 결과 평가 및 리포팅 -> 결함 추적 및 관리
  • 결함관리프로세스의 순서 : 에러 발견 -> 에러 등록 -> 에러 분석 -> 결함 확정 -> 결함 할당 -> 결함 조치 -> 결함 조치 검토 및 승인
  • 테스트 케이스 : 사용자의 요구사항을 정확하게 준수 했는지 확인하기 위해 설계된 테스트 항목에 대한 명세서
  • 테스트 시나리오 : 테스트 케이스를 적용하는 순서에 따라 여러개의 테스트케이스를 묶은 집합
  • 테스트 오라클 : 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값을 대입하여 비교하는 기법 및 활동
  • 테스트 오라클의 특징 3가지 : 제한된 검증, 수학적 기법, 자동화 기능(제수자)
    • 제한된 검증 : 테스트 오라클을 모든 테스트 케이스에 적용할 수 없음
    • 수학적 기법 : 테스트 오라클을의 값을 수학적 기법을 이용하여 구할 수 있음
    • 자동화 기능 : 테스트 대상 프로그램의 실행, 결과 비교, 커버리지 측정 등을 자동화 할 수 있음
  • 테스트 오라클의 종류 4가지 : 참오라클, 샘플링 오라클, 추정오라클, 일관성 검사 오라클
    • 참 오라클 : 모든 테스트 케이스의 입력에 대해 기대하는 결과를 제공하는 오라클
    • 샘플링 오라클 : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
    • 추정 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클
    • 일관성 검사 오라클 : 애플리케이션에 변경이 있을 때, 테스트 케이스의 수행 전과 수행 후의 결과 값이 동일한지를 확인하는 오라클
  • 정적 분석 도구 : 프로그램을 실행하지 않고 분석하는 도구
  • 테스트 실행 도구 : 스크립트 언어를 사용하여 테스트를 실행하는 도구
  • 성능 테스트 도구 : 가상의 사용자를 만들어 테스트를 수행함으로써 성능의 목표 달성 여부를 확인하는 도구
  • 테스트 통제 도구 : 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
  • 테스트 하네스 도구 : 테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 하는 도구
  • 결함 : 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것
  • 결함 관리 측정 지표 3가지 : 결함 분포, 결함 추세, 결함 에이징
    • 결함 분포: 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함 수 측정
    • 결함 추세 : 테스트 진행 시간에 따른 결함 수의 추이 분석
    • 결함 에이징 : 특정 결함 상태로 지속되는 시간 측정
  • 애플리케이션 성능 : 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도
  • 애플리케이션 성능 측정 지표 4가지 : 처리량, 응답시간, 경과시간, 자원 사용률(처음경자)
    • 처리량 : 일정시간내에 애플리케이션이 처리하는 일의 양
    • 응답시간 : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
    • 경과시간 : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
    • 자원 사용률 : 애플리케이션이 의뢰한 작업을 처리하는 동안의 cpu 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률
  • 시간 복잡도 : 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화 한 것
    • 빅오 표기법 : 알고리즘의 수행시간이 최악일 때를 표기하는 방법
    • 세타 표기법 : 알고리즘의 수행시간이 평균일 때를 표기하는 방법
    • 오메가 표기법 : 알고리즘의 실행시간이 최상일 때를 표기하는 방법
  • O(1) : 입력값(N)에 관계없이 일정하게 문제 해결에 하나의 단계만을 거치는 것
  • O(logn) : 문제 해결에 필요한 단계가 입력값(n) 또는 조건에 의해 감소하는 것
  • O(n) : 문제 해결에 필요한 단계가 입력값(n)과 1:1관계를 가지는 것
  • O(nlogn) : 문제 해결에 필요한 단계가 n(logn)번 만큼 수행되는 것
  • O(n^2) : 문제 해결에 필요한 단계가 입력값(n)의 제곱만큼 수행되는 것
  • O(2^n) : 문제 해결에 필요한 단계가 2의 입력값(n)제곱만큼 수행되는 것
  • 순환 복잡도 : 한 프로그램의 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도
    • 순환 복잡도의 공식 : V(G) = E-N+2
  • 스파게티 코드 : 코드의 로직이 서로 복잡하게 얽혀 있는 코드
  • 외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드
  • 클린코드작성원칙5가지 : (가단의중추) , 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화
    • 가독성 : 누구든지 코드를 쉽게 읽을 수 있도록 작성하는 것
    • 단순성 : 코드를 간단하게 작성하는 것
    • 의존성 배제 : 코드가 다른 모듈에 미치는 영향을 최소화 하고 코드 변경시 다른 부분에 영향이 없도록 작성하는 것
    • 중복성 최소화 : 코드의 중복을 최소화 하고 중복된 코드는 삭제하고 공통된 코드를 사용하는 것
    • 추상화 : 상위클래스/메소드/함수에서는 간략하게 애플리케이션의 특성을 나타내고, 상세 내용은 하위클래스/메소드/함수에서 구현하는 것
  • 정적 분석 도구 : 작성한 소스코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구
  • 동적 분석 도구 : 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 도구

'소프트웨어 > 정보처리기사' 카테고리의 다른 글

[소프트웨어 설계] 기출 문제  (0) 2024.03.15

2020년 7월

> 다음 중 학점[B3:B10]을 이용하여 [E3:E7] 영역에 학점별 학생수만큼 '' 기호를 표시하고자 할 때, [E3] 셀에 입력해야 할 수식으로 옳은 것은?

더보기

정답: =REPT("", COUNTIF($B$3:$B$10, D3))

해설 
1) COUNTIF(찾으려는 위치, 찾으려는 항목) -> 기준을 충족하는 셀의 개수를 센다.
2) REPT(텍스트, 반복하여 보여주려는 갯수) -> 텍스트를 셀에 채운다.
3) $$B\$3:\$B\$10 -> B3:B10 은 좌표를 의미한다. -> $$는 절대(고정됨)를 의미한다.

> 다음 중 아래의 워크시트에서 수식의 결과로 '부사장'을 출력하지 않는 것은?

    ❶ =CHOOSE(CELL("row",B3), C2, C3, C4, C5, C6)
    ② =CHOOSE(TYPE(B4), C2, C3, C4, C5, C6)
    ③ =OFFSET(A1:A6,2,2,1,1)
    ④ =INDEX(A2:D6,MATCH(A3, A2:A6, 0), 3)

해설:
① 셀에 영업 사원이 표시 된다.
     1.1 CELL("row",B3) => B3의 행은 세번째이다. 즉 3이다.
     1.2 CHOOSE(3, C2, C3, C4, C5, C6) => C2~C6 범위에서 3번째는 영업사원이다.
② TYPE(B4) => 텍스트는 2를 표시한다.
③ OFFSET(A1:A6,2,2,1,1) = OFFSET(A1,2,2) => 결과가 같다.
④ 

 

Algorithm
(알고리즘)

algorithm은 일련의 명령어입니다. 컴퓨터 프로그래머들이 웹사이트나 앱 등 어떤 태스크를 수행하는 프로그램을 만들 때 이 알고리즘을 디자인합니다.

 

App
(앱)

한국에서는 애플리케이션 또는 앱이라고 하죠. 앱은 애플에 의해 대중화된 용어입니다. 스마트폰에서 사용할 수 있는 컴퓨터 프로그램을 가리키는 말입니다.

 

Bite/Byte
(바이트)

데이터의 사이즈 단위를 말합니다. 아마 MB(메가바이트 = 1백만 바이트), GB(기가바이트 = 10억만 바이트)라는 바이트보다 더 큰 단위도 어디선가 보신 적이 있을 거예요. 이 용어는 주로 어떤 디바이스 전체 용량 중 차지하는 데이터 크기를 나타낼 때 씁니다.

 

Bug
(버그)

버그는 컴퓨터 소프트웨어에서 발생하는 이슈/문제를 가리킵니다. 이 버그가 에러 메시지 또는 데이터 핵의 원인이 되죠.

주로 이러한 이슈를 없애기 위해서는 “디버깅” 프로그램을 실행해야 합니다.

 

Cloud
(클라우드)

인터넷을 달리 이르는 용어입니다.

흔히든 “클라우드 기반 저장”이라고 하면 데이터가 디바이스가 아닌 온라인에 저장되었다는 말입니다. 그래서 클라우드는 주로 컴퓨터의 저장 공간을 절약해주는 역할을 합니다.

 

Computer
(컴퓨터)

엄밀히 따지는 “컴퓨터”란 프로그램을 실행할 수 있는 기기를 일컫습니다. 하지만 영어 원어민들은 주로 이 용어를 전체 퍼스널 컴퓨터(PC), 그러니까 모니터와 키보드, 마우스, 본체가 모두 포함된 것을 가리키는 말이라고 생각하죠.

 

Cookie
(쿠키)

웹 브라우저에 저장되는 사용자의 웹사이트 방문 정보 등을 말합니다. 쿠키는 여러분이 웹사이트에서 한 활동(로그인할 때 입력했던 정보나 장바구니에 넣어뒀던 아이템 등)을 기록하는 역할을 합니다.

 

CSS

CSS는 Cascading Style Sheets의 앞글자를 따서 만들어진 용어입니다. 웹사이트의 레이아웃과 디자인을 프로그램하는 기능이 있죠.

예를 들어 CSS는 주로 웹사이트의 폰트 사이즈와 컬러를 프로그램하는데 쓰입니다.

 

Download
(다운로드)

이 동사는 인터넷에 있는 정보를 여러분의 디바이스로 저장하는 것을 의미합니다.

또한 다운로드될 수 있는 정보를 가리키는 “명사”로 쓸 수도 있는데요, 예를 들어 “무료 다운로드를 원하시면 여기를 클릭하세요”와 같은 말에서 명사로 사용되고 있는 게 보이시죠?

 

HTML

HTML는 Hypertext Markup Language의 약자로, 웹사이트에 디스플레이되는 정보를 제공합니다. 예를 들어 HTML은 웹사이트의 홈페이지에 여러 텍스트들을 디스플레이하도록 프로그램하는 역할을 합니다.

 

Internet
(인터넷)

모든 웹 기반 디바이스를 연결하는 온라인 네트워크입니다.

 

IP Address
(IP 주소)

인터넷에서 각 디바이스를 식별하는 고유 코드입니다.

 

Keyboard
(키보드)

컴퓨터에 정보를 입력할 때 쓰는 자판입니다.

 

Keyword
(키워드)

이미지나 생각, 웹페이지, 데이터의 조각을 설명하는 짧은 문구.

이를 테면 여러분이 검색 엔진의 검색 창에 입력하는 용어나 문구 따위가 바로 키워드가 됩니다.

 

Laptop
(노트북)

휴대하기 편한 컴퓨터 디바이스를 말합니다.

 

Monitor
(모니터)

컴퓨터 스크린을 말합니다.

 

Password
(비밀번호)

컴퓨터나 프로그램, 또는 웹사이트 등에 본인 외에 다른 사람이 정보를 취득할 수 없도록 설정하는 일련의 고유 번호 및 글자입니다.

예를 들어 여러분이 페이스북 계정에 로그인할 때 입력해야 하는 비밀번호가 여기에 해당되죠.

 

Screenshot
(스크린샷)

스크린샷(명사)은 컴퓨터나 스마트폰 스크린에 뜨는 이미지를 캡처해서 생기는 디지털 사진입니다.

 

Software
(소프트웨어)

컴퓨터를 기능하게 하는 무형의 정보입니다. 컴퓨터 프로그램을 창조해내는 코드를 일컫기도 하죠.

 

Spam
(스팸)

스팸(네, 이 이름은 통조림 고기 브랜드에서 온 게 맞습니다)은 여러분이 받고 싶지 않은 모든 종류의 이메일을 말합니다. 기본적으로 여러분이 구독하지도 않았고, 별로 읽고 싶지도 않은데 계속해서 오는 정크 메일을 의미하죠.

 

Toolbar
(툴바)

툴바는 주로 웹 브라우저 (예: Internet Explorer 또는 Google Chrome) 상단에서 찾을 수 있습니다. 여러분이 브라우저를 통해 볼 수 있는 것들을 제어하는 기능을 하죠.

전형적으로 앞으로, 뒤로, 새로고침 등의 명령을 할 수 있습니다. 주소 입력 창도 있고요.

 

URL

인터넷에서 어떤 특정한 웹사이트를 불러오는 주소를 말합니다. 일반적으로 www.로 시작하며 .com (또는 .edu 또는 .gov) 등으로 끝납니다.

 

Website
(웹사이트)

웹페이지를 한대 엮어 놓은 컬렉션이라고 보시면 되겠습니다. URL을 주소 입력창에 치면 하나의 웹사이트를 불러올 수 있죠.

FluentU 역시 웹사이트의 한 예입니다.  (URL은 www.fluentu.com/ko이고요.)

 

Wi-Fi
(와이파이)

와이파이는 컴퓨터가 무선으로도 인터넷에 접속할 수 있도록 해줍니다. “Wi-Fi network”에 연결되면 유선 시스템 없이도 인터넷에 액세스 할 수 있습니다.

 

Zip

Zip 파일은 압축된 파일입니다. 일반 파일보다 적은 데이터에 정보를 저장하는 파일이죠.

zip 파일을 갖고 있다면, 그 압축을 풀어주는 프로그램이 있어야 비로소 정보에 액세스할 수 있다는 점 유의 바랍니다.

 

Framework(프레임워크) : 코딩을 쉽게 할 수 있도록 도와주는 도구 모음

(용도별, 언어별 다양한 프레임워크 존재함)

 

Coding(코딩) : 컴퓨터에게 명령하는 것

 

Programming language(프로그래밍 언어) : 컴퓨터에 명령하는 언어

 

DRY rule(드라이 규칙) 

DRY는 Don’t Repeat Yourself(자신을 반복하지 말 것)의 약자다. DIE라고 하기도 한다 : Duplication is Evil.(중복은 악이다.) 이 원칙은 다음과 같다. “모든 지식은 그 자체로 시스템 안에서 유일해야 하고, 모호해선 안 되며, 권위 있게 표현돼야 한다.” 일반적으로 대부분의 어플리케이션은 반복적인 일을 자동화하는 게 목적이다. (일반적으로 컴퓨터가 그렇다.) 이 원칙은 모든 코드에서 유지돼야 한다. 웹 어플리케이션에서조차 마찬가지다. 같은 코드가 어디서도 반복되면 안 된다.

 

refactor(리팩토어링)

리팩토링한다는[역자 주: refactor는 단순히 고친다는 것을 의미하는 게 아니라 리팩토링이라는 기법을 의미하는 것이에 그냥 리팩토링이라고 번역했습니다.] 것은, 코드의 기능을 바꾸지 않으면서 코드를 변경하는 것을 말한다.코드 가독성과 질을 높이기 위한 목적으로 “clean up”을 한다고 생각해도 된다. 리팩토링은 버그를 잡는다거나 기능을 추가한다거나 하는 게 아니다. 아마 바로 전날 작성한 코드를 리팩토링할 것이다. 아직 머리 속에 코드가 생생히 남아 있을 때 말이다. 두 달 후에도 여전히 코드가 읽기 쉽고 재사용하기 쉽게 만드는 것이다. 모토는 이거다. “빨리 고치고(refactor), 자주 고쳐라” 리팩토링 작업을 하는 동안 아마도 “최고의 방법”을 적용하게 될 것이다.

 

CND

CDN은 Content Delivery Network 의 약자로 사용자에게 간편하게 콘텐츠를 제공하는 방식을 말합니다.

즉, CDN은 세계 곳곳의 서로 다은 여러 데이터 센터에 파일의 복사본들을 배치하여, 동일한 URL 을 유지하면서도 더 빨리 사용자에게 콘텐츠를 제공,전송해 주는 것입니다.

  • 콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 
  • 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다.

인자(Argument)

어떤 함수를 호출시에 전달돼는 값

 

매개 형식 변수(Parameter)

그 전달된 인자를 받아들이는 변수

 

RSS

RSS 문서는 뉴스 등 웹 콘텐츠를 쉽게 배급, 배포할 수 있게 만든 규격화된 형태의 XML 문서입니다.

요청(Request)과 응답(Response)

요청과 응답을 용어로 생각하면 혼란스러운 개념이 될 수 있지만, 쉽게 상대방에게 원하는 의사를 전달하는 것을 요청(request)이라 생각하고, 이에 대한 결과로 데이터를 보내주는 행위를 응답(Response)이라고 생각하는 것이 더 편합니다.

예를 들어 음식점에서 주문을 하는 것은 요청이고, 이에 대하여 음식을 서비스하는 것이 응답입니다.

브라우저에서 가장 많이 하는 요청은 주소 표시줄을 통해서 특정 서버에 정보를 요구하는 것이고, 여기에 맞는 데이터를 보내주는 작업이 응답에 속합니다.

서버측(Server-side) 프로그래밍은 이런 응답을 보낼 때 좀 더 사용자에게 맞는 내용을 만들 수 있는 기술들을 의미하고, 이런 결과를 동적(Dynamic) 자원이라고 합니다.

반대로 언제 어디서나 누구나 같은 결과를 보는 데이터를 정적(Static) 자원이라고 합니다.

HTML 이나 이미지파일, 미디어 파일 등이 보통 여기에 속합니다.

 

자바스크립트와 MVC(Model-View-Controller)

자바스크립트는 웹 페이지에서 간단한 동작을 할 수 있도록 작성된 스크립트 언어이지만, 브라우저의 역할이 커지면서 자연스럽게 자바스크립트의 중요성도 커지게 되었습니다.

규모가 커지면서 프로그래밍은 점차 디자인 패턴이나 아키텍처 패턴이라고 부르는 일종의 가이드나 관습이 생기는데, 이런 관습 중의 하나가 MVC 패턴입니다.

MVC는 쉽게 생각하면 프로그램이 처리하는 영역을 화면(View)과 데이터(Model), 기능(Controller)으로 나누어서 설계하고, 이들 간의 상호작용을 통해서 프로그램이 실행되는 전체 구조를 설계하는 방식입니다.

따라서 기능이 다양한 언어들에서 공통으로 사용되는 패턴이기도 합니다.

자바스크립트는 이에 비해 비교적 브라우저에서 화면에 보조적인 처리만 했기 때문에, 최근까지 그다지 주목받지 못했지만, 다른 스크립트 언어들의 발전과 더불어 점점 더 복잡해지고 엄격하게 설계되고 있습니다.

MVC 패턴을 단순히 접근하자면 다음과 같을 수 있습니다.

  • 데이터에 해당하는 모델(Model)의 역할은 브라우저가 처리해야 하는 HTML 태그로 처리
  • 순수한 데이터를 어떤 형태로 화면에 보여주는지를 결정하는 레이아웃(View)의 역할은 CSS로 처리
  • 사용자의 판단을 동적으로 처리하는 컨트롤러(Controller)의 역할을 자바스크립트로 처리

렌더링(rendering)

HTML 코드는 웹 브라우저에서 읽어온 후 화면에 시각적으로 표시하게 되는데, 이 과정을 "렌더링"이라고 합니다.

코드의 응집성(Code cohesiveness)

코드의 본래 목적에 맞도록 성격이 명확한 것을 의미합니다.

예를 들어 로직을 처리하는 객체는 로직만을 담당하고 화면을 처리하는 객체는 화면만을 담당하는 코드를 응집성이 높은 코드라고 표현할 수 있습니다.

 

컴파일(Compile)

사람이 컴퓨터에게 일을 시키기 위해서는 컴퓨터와 사람간의 공통적인 대화 수단이 필요합니다.

그러나 불행하게도 컴퓨터는 사람의 말을 이해하지 못하고, 사람 또한 컴퓨터가 인식할 수 있는 기계어를 알지 못합니다.

그래서 사람과 컴퓨터가 이해할 수 있도록 중간에서 통역을 이용하여 서로 간의 의사소통이 가능하도록 하였는데 이러한 통역의 역할을 컴파일이라고 합니다.

 

ASP(Active Server Page)

ASP 는 웹 서버에서 많이 사용하고 마이크로소프트 IIS(Internet Information Server)에서 만든 서버 기반 기술로서, WWW 이나 인트라넷에 사용할 수 있는 대화형 HTML 페이지를 제작할 수 있도록 고안된 언어입니다.

PHP(Personal HomePage Tools, Professional HyperText Preprocessor)

PHP 는 서버에서 해석되는 스크립트 언어로서, 유사한 언어에는 MS 사의 ASP 가 있습니다.

이러한 서버용 언어는 서버에서 해석한 후 그 결과를 HTML 형태로 만들어 클라이언트(웹 브라우저)로 보내므로 내부 소스 코드를 볼 수 없습니다.

PHP 는 ASP 처럼 특정 영역에서만 동작하지 않고 C 언어의 문법과 유사하기 때문에 기존의 개발자들이 좀 더 쉽게 접근할 수 있으며, 적은 명령어로 프로그래밍이 가능하다는 장점이 있습니다.

그러나 컴포넌트의 문제 등 지원하는 기능이 미약하다는 단점도 있습니다.

 

Servlet : 서블릿(Servlet : Server + Applet)

서블릿은 썬(Sun)에서 발표한 기술로, 자바 언어를 기반으로 동적인 콘텐츠를 생성하는 기술을 제공합니다.

서블릿은 자바와 거의 같은 형식으로 되어 있기 때문에 쉽게 작성할 수 없습니다.

또, 코드에 HTML 코드가 혼재되어 있어서 작업의 분리적인 측면에서 볼 때 효율성이 떨어진다는 단점이 있습니다.

 

JSP(Java Server Pages)

기본적으로 JSP는 자바 서블릿(Java Servlet)과 같습니다.

JSP 는 웹 전용 스크립트 언어로 PHP 나 ASP 와 문법은 비슷하지만 자바의 막강한 기능을 그대로 가지고 있기 때문에 더욱 강력한 서버측 언어입니다.

JSP 는 서블릿처럼 자바를 기반으로 만들어졌으며, 서블릿과 달리 ASP 나 PHP 처럼 HTML 태그 사이에 자바 코드가 들어간 형태입니다.

JSP 는 스크립트 언어 형식으로 프로그램을 작성할 수 있으며, 사용자가 직접 태그를 정의해서 사용할 수 있는 사용자 정의 태그 기능으로 인해 보다 쉽게 프로그램을 개발하고 효율적으로 웹 사이트를 구성할 수 있습니다.

 

환경변수(Environment variable)

윈도우 운영체제에 등록된 정보(값을 등록, PATH라는 변수에 등록)

 

 

웹 서버(Web Server)와 웹 호스팅(Web Hosting)의 차이점

웹 서버와 웹 호스팅은 둘 다 방문객인 클라이언트(Client)에게 웹 서비스를 제공하는 것입니다.

하지만 웹 서버의 경우는 사용자가 직접 컴퓨터에 서버(Server)를 구축하여 웹 서비스를 제공하므로 웹 서버에 대한 전문 지식이 있어야 하며, 전용 회선을 갖추고 있어야 사용할 수 있습니다.

웹 호스팅의 경우는 이미 서버가 구축된 외부 컴퓨터에 다수의 이용자가 소량의 저장 공간을 나눠 임대하여 사용하는 것을 가리킵니다.

즉, 외부 서버 컴퓨터에 일정한 저장 공간을 임대하여 서비스를 제공하는 것을 '웹 호스팅'이라고 합니다.

그러므로 서버에 대한 전문 지식이 없어도 사용할 수 있으나, 저장 공간 용량의 제한이 있다는 단점이 있습니다.

 

자바스크립트의 스코프(JavaScript scope)

자바스크립트에서 스코프(scope)는 코드가 실행되는 컨텍스트(변수영역, 실행영역, 유효범위 등의 용어로 알려져 있기도 하다. 실제로는 스코프라는 용어가 가장 많이 사용되고 있다)이며, 전역 스코프, 지역 스코프(함수 스코프), eval 스코프로 구분됩니다.

 

스코프 체인(Scope Chain)

함수를 포함한 함수는 서로 연결된 실행 스코프를 만들며 이렇게 연결된 실행 스코프를 스코프 체인이라 부른다.

그래서 자바스크립트는 변수를 찾을 때 스코프의 계층 구조에 기반한 검색 체인을 거슬러 올라가며 추적하게 된다.

 

자바스크립트의 객체(Object)

객체는 사실 매우 간단하다. 

매우 많은 기능을 가지고 있으니 뭔가 특별할 것 같지만 객체는 단지 이름이 지정된 프로퍼티의 모음이며, 키-값 쌍(다른 언어의 연관배열과 거의 동일한) 이루어진 목록입니다.

객체의 프로퍼티가 함수(함수 객체)일 경우에 이를 메소드(method)라고 부릅니다.

 

믹스인(Mixins)

팀 협력이 좀 더 원활하게 이루어질 수 있도록 도와주는 도구를 제작하는 것을 말합니다.

다시 말해, 믹스인은 코드 반복을 제거하고 컴포넌트가 필요한 부분에만 집중할 수 있게 도와주는 역할을 합니다.

믹스인을 이용하면 강력한 추상화를 구현할 수 있으며 복잡한 문제를 우아하게 해결할 수 있습니다.

믹스인을 반드시 여러 개의 컴포넌트에서 사용할 목적으로 작성할 필요는 없습니다.

믹스인을 사용하면 어떤 동작이나 역할을 쉽게 설명하고, 컴포넌트에 적용할 수 있습니다.

또한, 컴포넌트의 코드를 줄일 수 있습니다. 이 덕분에 코드의 가독성도 높아질 수 있습니다.


코딩 컨벤션

마크업 개발은 프런트-엔드 페이지의 기본 골격을 형성하기 때문에 디자인, 브라우저, 스크립트, 성능, 접근성 등과 긴밀한 관계가 있다.

즉, 마크업 개발을 잘 해야 모든 브라우저에서 콘텐츠를 손실 없이, 빠르고 쉽게 사용자에게 전달할 수 있다. 코딩 컨벤션은 이러한 조건을 만족시키기 위해 마크업 개발자가 지켜야 할 표준을 제시한다.

또한, 유지보수에 투자되는 비용을 최소화하기 위해 통일된 코드 작성법을 제시한다. 코드를 최초로 작성한 사람이 끝까지 유지보수할 확률은 매우 낮다.

따라서, 최초 개발자가 아닌 사람도 코드를 빠르고 정확하게 이해할 수 있도록 작성하는 것은 코드의 유지보수 비용을 절감하고 업무 효율을 높이는 데 결정적인 역할을 한다.

적어도 한 프로젝트의 마크업 코드는 같은 코딩 컨벤션에 따라 작성해야 한다.

코딩 컨벤션을 준수하면 프로젝트 멤버 간 코드 공유도 쉬워지고, 일관성 있게 코드를 작성할 수 있다. 어떤 코딩 컨벤션을 선택하느냐가 중요한 것이 아니라, 통일된 기준으로 소스 코드를 작성하는 것이 중요하다.


프로그래밍의 템플릿(template)

프로그래밍에서의 템플릿은, 특정단위코드의 기본으로 사용될 수 있는 일반적인 클래스나 단위 원시코드를 말한다.

객체지향 프로그래밍 언어인 C++에는, 표준화된 템플릿 라이브러리가 있어서 프로그래머는 수정하고자하는 개개의 템플릿 클래스를 그저 선택하면 된다.

MFC 라이브러리가 그 대표적인 예이다.


쿼리(query)

쿼리란 데이터베이스에 정보를 요청하는 것입니다.

쿼리는 웹 서버에 특정한 정보를 보여달라는 웹 클라이언트 요청(주로 문자열을 기반으로 한 요청이다)에 의한 처리입니다.

쿼리는 대개 데이터베이스로부터 특정한 주제어나 어귀를 찾기 위해 사용됩니다. 주제어가 검색엔진의 검색 필드 내에 입력된 다음, 그 내용이 웹 서버로 넘겨지게 됩니다.

윈도우 운영체제 리눅스 운영체제 안드로이드 운영체제
FAT(16) MS-DOS 및 기타 윈도우 기반의 운영체제에서 파일을 구성하는 관리하는 시스템 MS-DOS, windows 95, 98, 2000, XP등에서 사용한다.

FAT32 FAT 파일 시스템에서 파생된 것으로 FAT16보다 큰 드라이브를 사용할 수 있고, FAT보다 클러스터 크기가 작으므로 하드디스크의 공간 낭비를 줄일 수 있음


NTFS 성능 및 공간 활용,보안,안정성 면에서 FAT파일 시스템에 비해 뛰어난 기능이다. 시스템 리소스를 최소화할 수 있다. windows NT, 2000, XP, Vista, 7 ,10 등에서 사용한다.
확장파일 시스템(ext, ext2, ext3, ext4), ZFS, ResierFS, XFS  

 

 

 

 

 

'소프트웨어' 카테고리의 다른 글

컴퓨터 용어  (0) 2023.05.07
[컴퓨터활용능력2급] [컴퓨터 일반]  (0) 2023.04.29
특수문자 파이 기호 Ø , π, Ω  (0) 2023.02.19
유니코드 특수문자 리스트  (0) 2022.10.09
[Blender] 컵 만들기 (그리기)  (1) 2022.09.30

렌더링 (rendering) : 컴퓨터 프로그램을 이용하여 3차원 애니메이션을 만드는 과정으로 사물 모형에 명암과 색상을 추가하여 사실감을 더해주는 그래픽 작업이다.

안티앨리어싱(Anti-Aliasing): 3D화면의 고질적인 계단현상을 제거해 주는 기능

인터레이싱(Interlacing): 그림 파일을 표시하는데 있어서 이미지의 대략적인 모습을 먼저 보여준 다음 점차 자세한 모습을 보여주는 기법

메조틴트(Mezzotint): 무수히 많은 점과 선으로 이미지를 만드는 것


JPEG 표준
① 손실압축기법과 무손실압축기법이 있지만 특허문제나 압축률 등의 이유로 무손실압축 방식은 잘 쓰이지 않는다.
② JPEG 표준을 사용하는 파일 형식에는 jpg, jpeg, jpe 등의 확장자를 사용한다.
③ 파일 크기가 작아 웹 상에서 사진 같은 이미지를 보관하고 전송하는데 사용한다.
④ 문자, 선, 세밀한 격자 등 고주파 성분이 많은 이미지의 변환에서는 GIF나 PNG에 비해 품질이 나쁘다.


허브 : 네트워크를 구성할 때 여러 대의 컴퓨터를 연결하여 각 회선을 통합 관리하는 장비이다.
게이트웨이: 네트워크 상에서 가장 최적의 IP 경로를 설정하여 전송하는 장비이다.
DNS: 다른 네트워크와 데이터를 보내고 받기 위한 출입구 역할을 하는 장비이다.
라우터: 인터넷 도메인 네임을 숫자로 된 IP 주소로 바꾸어 주는 장비이다.


단방향 통신 : 한쪽 방향으로만 데이터 전송, 데이터 수신만 가능, 라디오
반이중 통신 : 데이터를 전송하면 상대방은 수신만 가능, 전송방향을 바꿀 수 있다. 무전기
전이중 통신 : 두 지점 사이에서 정보를 주고 받는 전자 통신 시스템, 전화기
양방향 통신 : 두 지점 사이에서 정보를 주고 받는 전자 통신 시스템

'소프트웨어' 카테고리의 다른 글

컴퓨터 용어  (0) 2023.05.07
[컴퓨터활용능력] 파일file 시스템  (0) 2023.05.05
특수문자 파이 기호 Ø , π, Ω  (0) 2023.02.19
유니코드 특수문자 리스트  (0) 2022.10.09
[Blender] 컵 만들기 (그리기)  (1) 2022.09.30

필요할 때  쓰려고 올려 놓습니다.
필요하신 분은  복사하기, 붙여넣기 하세요.

방법 : 1. 아래 그림을 드래그하세요.
           2. 단축키 CTRL+C 누르세요.
           3. 원하는 곳을 클릭하세요
           4. 단축키 Ctrl+V 누르세요

Ø

Ø

π

π

Ω

아래 코드를 복사하여 입력한다.

더보기

<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [ ['$','$'], ['\\(','\\)'] ], processEscapes: true }, TeX: { equationNumbers: { autoNumber: "AMS" } } }); </script>

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML'></script>

입력 위치 : 아래 노란색 부분을 순서대로 클릭한다.

</script>와 </head> 사이에 맨 위의 코드를 입력한다.

~ ! @ # $ % ^ & * \ " ' + = ` | ( ) [ ] { } : ; - _ - # & & @ § ※ ☆ ★ ○ ● ◎ ◇ ◆ □ ■ △ ▲ ▽ ▼ → ← ← ↑ ↓ ↔ 〓
◁ ◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙ ◈ ▣ ◐ ◑ ▒ ▤ ▥ ▨ ▧ ▦ ▩ ♨ ☏ ☎ ☜ ☞ ¶ † ‡ ↕ ↗ ↙ ↖ ↘ ♭ ♩ ♪ ♬ ㉿ ㈜
№ ㏇ ™ ㏂ ㏘ ℡ ® ª º ─ │ ┌ ┐ ┘ └ ├ ┬ ┤ ┴ ┼ ━ ┃ ┏ ┓ ┛ ┗ ┣ ┳ ┫ ┻ ╋ ┠ ┯ ┨ ┷ ┿ ┝ ┰ ┥ ┸ ╂ ┒
┑ ┚ ┙ ┖ ┕ ┎ ┍ ┞ ┟ ┡ ┢ ┦ ┧ ┩ ┪ ┭ ┮ ┱ ┲ ┵ ┶ ┹ ┺ ┽ ┾ ╀ ╁ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊
+ - < = > ± × ÷ ≠ ≤ ≥ ∞ ∴ ♂ ♀ ∠ ⊥ ⌒ ∂ ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ∈ ∋ ⊆ ⊇ ⊂ ⊃ ∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ ∃ ∮ ∑ ∏
! ' , . / : ; ? ^ _ ` |  ̄ 、 。 · ‥ … ¨ 〃 ­ ― ∥ \ ∼ ´ ~ ˇ ˘ ˝ ˚ ˙ ¸ ˛ ¡ ¿ ː
" ” 〔 〕 { } ‘ ’ “ ” 〔 〕 〈 〉 《 》 「 」 『 』 【 】
㉠ ㉡ ㉢ ㉣ ㉤ ㉥ ㉦ ㉧ ㉨ ㉩ ㉪ ㉫ ㉬ ㉭
㉮ ㉯ ㉰ ㉱ ㉲ ㉳ ㉴ ㉵ ㉶ ㉷ ㉸ ㉹ ㉺ ㉻
㈀ ㈁ ㈂ ㈃ ㈄ ㈅ ㈆ ㈇ ㈈ ㈉ ㈊ ㈋ ㈌ ㈍
㈎ ㈏ ㈐ ㈑ ㈒ ㈓ ㈔ ㈕ ㈖ ㈗ ㈘ ㈙ ㈚ ㈛
ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ
⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂
$ % ₩ F ′ ″ ℃ Å ¢ £ ¥ ¤ ℉ ‰ € ㎕ ㎖ ㎗ ℓ ㎘ ㏄ ㎣ ㎤ ㎥ ㎦ ㎙ ㎚ ㎛ ㎜ ㎝ ㎞ ㎟ ㎠ ㎡ ㎢ ㏊ ㎍ ㎎ ㎏ ㏏ ㎈ ㎉ ㏈ ㎧ ㎨ ㎰ ㎱
㎲ ㎳ ㎴ ㎵ ㎶ ㎷ ㎸ ㎹ ㎀ ㎁ ㎂ ㎃ ㎄ ㎺ ㎻ ㎼ ㎽ ㎾ ㎿ ㎐ ㎑ ㎒ ㎓ ㎔ Ω ㏀ ㏁ ㎊ ㎋ ㎌ ㏖ ㏅ ㎭ ㎮ ㎯ ㏛ ㎩ ㎪ ㎫ ㎬ ㏝ ㏐ ㏓ ㏃ ㏉ ㏜ ㏆
ㄱ ㄲ ㄼ ㄽ ㄾ ㄿ ㅀ ㄷ ㄸ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅃ ㅄ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅣ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
ㅥ ㅦ ㅧ ㅨ ㅩ ㅪ ㅫ ㅬ ㅭ ㅮ ㅯ ㅰ ㅱ ㅲ ㅳ ㅴ ㅵ ㅶ ㅷ ㅸ ㅹ ㅺ ㅻ ㅼ ㅽ ㅾ ㅿ ㆀ ㆁ ㆂ ㆄ ㆅ ㆆ ㆇ ㆈ ㆉ ㆊ ㆋ ㆌ
ㆍ ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ¹ ² ³ ⁴ ⁿ ₁ ₂ ₃ ₄
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
0 1 2 3 4 5 6 7 8 9 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ

출처: https://codepen.io/iftrrtrn/pen/EKwJLo

 

<CSS>

 

6: dispaly: inline-block;

 

   div 배치할 때 float: ; 보다 간단하다.

 

22: border-collapse: collapse; //table과 td 사이의 테두리를 없앱니다.

 

27: first-child // 첫번째를 선택하는 것

 

<javascript>

 

7: tetris class

9:   ~~

19: TetraminoForms

55: fieldArray

64: generateComponent() 

    //클로저 함수 

   // 미리보기, 게임판, 게임판 배열 만들기

66: 미리보기 그리기

75: appendChild // td 같은 것 추가

81: classLIst.add // class 추가

92: piece 없는 보드 그리기

114: 보드 배열 값 초기화

      filedArray.push([])

      filedArray[i].push('.')

      (0, 0) (0, 1) (0, 2) ..... (0, 9)

      (1,0)   ....

      (2.0)  

      .

      .

128: Tetramino class

130: Tetramino 클래스

      this.coords  : 최초 생성 좌표

 

136: Tetramino 회전 함수

      form 배열 좌표 : 적색은 회전하는 좌표

      (0,0) (0,1) (0,2) (0,3) (0,4)

      (1,0) (1,1) (1,2) (1,3) (1,4)

      (2,0) (2,1) (2,2) (2,3) (2,4)

      (3,0) (3,1) (3,2) (3,3) (3,4)

      예제 

      TetraminoForms = [

       [

        [ 'i', 'i', 'i', 'i' ]

       ],

       를 선택했을 경우 

      temp.length = 4

      temp[0].length = 1

      form.length = 1

      form[0].length = 4

 

146: 회전 시 블록 충돌 확인

163: if (coords[0] === 0 && coords[1] === -1) // ↑ 키가 눌러졌다면

168: 좌우벽(폭) 충돌 검사

169: filedArray[0].length = 1

172: 좌우 값 더함

176: 하강 검사, 

177: filedArray.length = 7

178: 하강 좌표 증가 

 

184: 보드 그리기

       fieldArray.length = 20

       filedArray[0].length = 10

193: drawNextTetramino

207: 키 입력 

                      [0, -1] 38 

       37 [-1, 0]               [1, 0] 39 

                       [0, 1] 40 

216: runTetris()

// tetramino 생성

226: moveTetramino() // 자동으로 떨어지기

         233: 전단계 piece 지우기 위해서 보드 배열 값 세팅

243: piece 떨어지는 것(이동) 그리기, 블록 배열 값 세팅

248: 입력이 없다로 세팅

257: fallTetramino()

267: 바닥 충돌 검사

277: 블록 충돌 검사

287: side 충돌 검사

 

315: 채움 검사

339: 맨 위에 검사

345: resetGame()

 

356: 최초 시작

 

더보기

356

357

358

359 : 216

220 : 193

222: 226

 

 

 

 

 

 

'소프트웨어 > website' 카테고리의 다른 글

티스토리에 mathjax 작동  (0) 2022.10.19
[자바 스크립트] 테트리스 분석  (0) 2022.10.01
SVG 애니메이션 직선, 회전 이동  (0) 2020.07.14

출처: https://codepen.io/kudchikarsk/pen/GYKmdd

 

<HTML>Pug

3: 배너

7: 블록 그리기 

8: 블록 160개

 

<CSS>

# : id

.  : class

111: color picker

117: opacity // 투명도 조정

 

<JavaScript>

1: Position class

8: Block class

더보기

   21: init()

   25: render()

   32: fall()

   52: getPosition

   62: destroy()

        63: $().remove() // HTML에서 ()요소 제거 

   88: fallingPosiotions()

        90: .map (52)

67: Shape class

더보기

    72: getBlocks()

    76: init()

         78: block.init 21

    82: 

         84: 25

    94: fall()

         96: 32

    114: 40

142: Square class

153: LShape

     160: super // 부모 클래스와 연동하기 위해 사용한다.

     164: rotate()

     171: rotatePosition()

389: Board class

더보기

     396: parseInt() // 정수로 변환

     401: setScore()

     406: getScore()

     410: init()

             411: $().each // 바탕화면 블록 그리기를 반복한다. 

            412: parseInt()

            

            

     426: newGame()

           427: this.shapes // 606 에서 배열 값 만듬

428: 614

429: 618 (72)

432: 62

436:  441

     441: initGameLoop()

              447: 451

     451: gameLoop()

     452: 483 // shape 그리기, 충돌검사

     453: 509 // 블록 그리기, 채움 검사, 채움지우기

     454: 572 // 새 shape 생성

     455: 460 // 게임 끝나면 다시 그리기

     460: gameUpdate()

           464: clearinterval() // setinterval 작동 해제

     473: isGameOver()

     483: renderShapes()

            484: 610

            486: 624 (88) // 벽 검사

            487: 633 // 블록 유무 검사

            489: 94 

            490: 82

     502: dropShape

     509: renderBlocks()

     531: flashBlocks()

     539: fallBlocks()

     551: removeBlocks()

     557: destroyBlocks()

     563: getBlock()

     572: spawnShapes() // Shape 생성

           576: 689

           604: shape.init 76 

 

     610: getShape()

     614: removeShape()

           615: .splice ( indexof )

     618: addBlocks() // 블록 생성

     624: arePositionWithinBoard()

     633: areBlockEmpty()

     645: leftKeyPress()

           651: 114

           652: shape.render() // 옆으로 이동 그리기

     657: rotate()

     669: rightKeyPress()

     689: getRandomRange() // 난수 생성, 블록 선택

 

 


1. 보드 그리기 : <Html>pug <CSS> 

2. 블록 생성 : 

   메모리 생성 : 572

   화면 생성    

3. 블록 가로 이동 : 

   좌표 변경: 114

   화면 표시

4. 블록 회전 : 

   좌표 변경 : 171

   화면 표시

5. 블록 낙하 :

    좌표 값 변경 : shape.fall()

    화면 표시: shape.render()

6. 블록 충돌 검사 벽 : 624

7. 블록 충돌 검사 블록 : 633

8. 블록 채워지면 지우기 : renderBlocks()

   메모리 값 삭제 destroyBlocks(), removeBlocks()

   메모리 값 이동 fallBlocks

   화면 삭제

9. 점수 계산

 


 

 

 



'소프트웨어 > website' 카테고리의 다른 글

티스토리에 mathjax 작동  (0) 2022.10.19
[자바스크립트] 테트리스 분석  (0) 2022.10.01
SVG 애니메이션 직선, 회전 이동  (0) 2020.07.14

출처: https://youtu.be/y__uzGKmxt8cycles render

 

Cycles Render

Edit - delete or Delete key

Add - Mesh - cylinder

화면 좌측 하단 Add Cylinder - Cap Fill Type - Triangle Fan

Object Mode - Edit Mode

Object Mode 옆 Viewport shading - Wireframe

mouse right click top of workpiece

Remove -Delete - Vertices or Delete key - Vertices

View - Right or NUMpad 1

View - View Persp/Ortho or NUMpad 5

화면이 가로 x 세로 Z가 된다.

Ctrl+R key 누름

Ctrl++ key 3번 누름

Mouse right 1 click

Mouse right 1 click

 

 

A key

Mouse left 1 click

 

상단 조정

B key

S key

Mouse  move 

Mouse right click 1

 

중간 조정

B key

S key

Mouse  move 

Mouse right click 1

 

하단 조정

B key

S key

Mouse  move 

Mouse right click 1
 
Object Mode 
Object Mode 옆 vieport shading -Solid
 
손잡이 만들기
 
화면 보기는 가로 X 세로 Z
mouse right drag move main body
cusrsor 위치 바꾸기
Add - Curve - Path
body move to left
Object Mode - Edit Mode
mouse right click : 선택
 
Object Mode 
 
손잡이 둥글게 만들기
Add - Curve - Circle : 원
S key : adjust
Scene - BezierCircle - select object
Object data
Geometry - Bevel Object - BezierCircle
mouse click circle 
손잡이 채우기
Preview U:1
Alt+C
 
mesh
select all
Ctrl+J
Object Mode - Edit Mode
Face Select
F

방법1

1. create rectangle and squares

2. select rectangle by F1

3. object to path

4. F2

5. select corner all nodes 

6. click icon menu : Break path at selected nodes

7. click menu : Path / Break Apart

 

방법2

path/ cut path 활용한다.

 


부채꼴 그리기

방법1

1. 원과 사각형을 그린다.

2. 원과 사각형을 겹치게 놓는다.

3. 두 도형을 선택한다.

4. path/intersection 이용한다.

 

방법2

1. 정사각형 2EA, 원 1EA를 그린다.

2. 정사각형 2EA를 아래처럼 붙힌다.

3. 붙힌 정사각형을 Group한다.

4. 아래처럼 정사각형과 원을 중심 정렬(Align) 한다.

5. path/intersection 이용하여 부채꼴을 그린다.

구글 시트에서는 숨기기와 삭제하기 기능이 다르다.

위 이미지처럼 행과 열을 편집할 수 없고 클릭이 안되게 하는 방법이다.

순서

1) 원하는 열이나 행을 선택한다.

2) Ctrl+Shift+Alt+방향키를 누른다.

결과 화면

3) 마우스 오른쪽을 클릭한다.

작업결과 화면

4) 행 삭제나 열 삭제를 클릭한다.

작업 결과 화면

 

DC power Supply와 Multimeter를 GPIB 케이블로 연결하였다.

파이썬 3.0 과  Pyvisa를 사용하여 코딩하였다.

소스코드 저장위치 : github.com/sungyongchoi/pyvisa

사용 키수행할 작업

Windows 로고 키

시작 메뉴를 열거나 닫습니다.

Windows 로고 키   + A

알림 센터를 엽니다.

Windows 로고 키  + B

알림 영역에 포커스를 설정합니다.

Windows 로고 키  + C

듣기 모드로 Cortana를 엽니다.

참고

  • 이 바로 가기는 기본적으로 꺼져 있습니다. 켜려면 시작  > 설정  > Cortana를 선택하고 Windows 로고 키 + C를 누르면 Cortana에서 내 명령 수신에서 토글을 켭니다.

  • Cortana는 특정 국가/지역에서만 사용 가능하며, 일부 Cortana 기능은 일부 국가/지역에서 사용 불가능할 수 있습니다. Cortana를 사용할 수 없거나 Cortana가 꺼져 있는 경우에도 계속 검색을 사용할 수 있습니다.

Windows 로고 키 + Shift + C

참 메뉴를 엽니다.

Windows 로고 키  + D

바탕 화면을 표시하거나 숨깁니다.

Windows 로고 키  + Alt + D

바탕 화면에서 날짜 및 시간을 표시하거나 숨깁니다.

Windows 로고 키  + E

파일 탐색기를 엽니다.

Windows 로고 키  + F

피드백 허브를 열고 스크린샷을 생성합니다.

Windows 로고 키  + G

게임이 열려 있을 때 게임 바를 엽니다.

Windows 로고 키  + H

받아쓰기를 시작합니다.

Windows 로고 키  + I

설정을 엽니다.

Windows 로고 키  + J

Windows 팁이 있는 경우 그곳에 포커스를 설정합니다.

Windows 팁이 표시되면 그 팁에 포커스를 가져갑니다.  바로 가기 키를 다시 눌러서 Windows 팁이 고정된 화면의 요소에 포커스를 가져갑니다.

Windows 로고 키  + K

연결 바로 가기를 엽니다.

Windows 로고 키  + L

PC를 잠그거나 계정을 전환합니다.

Windows 로고 키  + M

모든 창을 최소화합니다.

Windows 로고 키  + O

장치 방향을 잠급니다.

Windows 로고 키  + P

프레젠테이션 표시 모드를 선택합니다.

Windows logo key  + Ctrl + Q

빠른 지원을 엽니다.

Windows 로고 키  + R

실행 대화 상자를 엽니다.

Windows 로고 키  + S

검색을 엽니다.

Windows 로고 키  + Shift + S

화면 부분의 스크린샷을 생성합니다.

Windows 로고 키  + T

작업 표시줄의 앱을 순환합니다.

Windows 로고 키  + U

접근성 센터를 엽니다.

Windows 로고 키  + V

클립보드를 엽니다. 

참고

  • 이 바로 가기를 활성화하려면 시작  > 설정  > 시스템  > 클립보드를 선택한 다음 클립보드 기록에서 토글을 켭니다.

Windows 로고 키  + Shift + V

알림을 순환합니다.

Windows 로고 키  + X

빠른 링크 메뉴를 엽니다.

Windows 로고 키  + Y

Windows Mixed Reality와 데스크톱 간 입력을 전환합니다.

Windows 로고 키  + Z

전체 화면 모드에서 앱에서 사용 가능한 명령을 표시합니다.

Windows 로고 키  + 마침표(.) 또는 세미콜론(;)

이모지 패널을 엽니다.

Windows 로고 키  + 쉼표(,)

바탕 화면에서 임시로 미리 봅니다.

Windows 로고 키  + Pause

시스템 속성 대화 상자를 표시합니다.

Windows 로고 키  + Ctrl + F

PC를 검색합니다(네트워크에 연결되어 있을 경우).

Windows 로고 키  + Shift + M

바탕 화면에서 최소화된 창을 복원합니다.

Windows 로고 키  + 숫자

바탕 화면을 열고 번호로 표시된 위치에서 작업 표시줄에 고정된 앱을 시작합니다. 앱을 이미 실행 중인 경우에는 해당 앱으로 전환합니다.

Windows 로고 키  + Shift + 숫자

바탕 화면을 열고, 번호로 표시된 위치에서 작업 표시줄에 고정된 앱의 새 인스턴스를 시작합니다.

Windows 로고 키  + Ctrl + 숫자

바탕 화면을 열고, 번호로 표시된 위치에서 작업 표시줄에 고정된 앱의 마지막 활성 창으로 전환합니다.

Windows 로고 키  + Alt + 숫자

바탕 화면을 열고, 번호로 표시된 위치에서 작업 표시줄에 고정된 앱의 점프 목록을 엽니다.

Windows 로고 키  + Ctrl + Shift + 숫자

바탕 화면을 열고, 관리자로서 작업 표시줄에서 해당 위치에 있는 앱의 새 인스턴스를 엽니다.

Windows 로고 키  + Tab

작업 보기를 엽니다.

Windows 로고 키  + 위쪽 화살표

창을 최대화합니다.

Windows 로고 키  + 아래쪽 화살표

화면에서 현재 앱을 제거하거나, 바탕 화면 창을 최소화합니다.

Windows 로고 키  + 왼쪽 화살표

앱이나 바탕 화면 창을 화면의 왼쪽으로 최대화합니다.

Windows 로고 키  + 오른쪽 화살표

앱이나 바탕 화면 창을 화면의 오른쪽으로 최대화합니다.

Windows 로고 키  + Home

활성 바탕 화면 창을 제외한 모든 창을 최소화합니다(두 번째 스트로크에서 모든 창 복원).

Windows 로고 키  + Shift + 위쪽 화살표

바탕 화면 창을 화면 위쪽 및 아래쪽으로 벌립니다.

Windows 로고 키  + Shift + 아래쪽 화살표

너비를 유지하면서 활성 바탕 화면 창을 세로로 복원/최소화합니다.

Windows 로고 키  + Shift +왼쪽 화살표 또는 오른쪽 화살표

모니터 간에 바탕 화면의 앱이나 창을 이동합니다.

Windows 로고 키  + 스페이스바

입력 언어 및 자판 배열을 전환합니다.

Windows 로고 키  + Ctrl + 스페이스바

이전에 선택한 입력으로 변경합니다.

Windows 로고 키  + Ctrl + Enter

내레이터를 켭니다.

Windows 로고 키  + 더하기(+)

돋보기를 엽니다.

Windows 로고 키  + 슬래시(/)

IME 재변환을 시작합니다.

Windows 로고 키  + Ctrl + V

숄더 탭을 엽니다.

Windows 로고 키  + Ctrl + Shift + B

빈 화면 또는 검은색 화면에서 PC를 깨웁니다.

출처: microsoft

'소프트웨어 > 윈도우' 카테고리의 다른 글

윈도우 10 단축키  (0) 2021.01.18

#복사, 붙여넣기 및 바로가기 키

Ctrl + X

선택한 항목을 잘라냅니다.

Ctrl + C(또는 Ctrl + Insert)

선택한 항목을 복사합니다.

Ctrl + V (또는 Shift + Insert)

선택한 항목을 붙여넣습니다.

Ctrl + Z

작업을 실행 취소합니다.

Alt + Tab

열려 있는 앱 간에 전환합니다.

Alt + F4

활성 항목을 닫거나 활성 앱을 종료합니다.

Windows 로고 키  + L

PC를 잠급니다.

Windows 로고 키  + D

바탕 화면을 표시하거나 숨깁니다.

F2

선택한 항목의 이름을 바꿉니다.

F3

파일 탐색기에서 파일 또는 폴더를 검색합니다.

F4

파일 탐색기에서 주소 표시줄 목록을 표시합니다.

F5

활성 창을 새로 고칩니다.

F6

창이나 바탕 화면의 화면 요소들을 순환합니다.

F10

활성 앱의 메뉴 모음을 활성화합니다.

Alt + F8

로그인 화면에서 암호를 표시합니다.

Alt + Esc

열린 순서대로 항목을 순환합니다.

Alt + 밑줄이 그어진 문자

해당 문자에 대한 명령을 수행합니다.

Alt + Enter

선택한 항목의 속성을 표시합니다.

Alt + 스페이스바

활성 창에 대한 바로 가기 메뉴를 엽니다.

Alt + 왼쪽 화살표

뒤로 이동합니다.

Alt + 오른쪽 화살표

앞으로 이동합니다.

Alt + Page Up

한 화면 위로 이동합니다.

Alt + Page Down

한 화면 아래로 이동합니다.

Ctrl + F4

활성 문서를 닫습니다(전체 화면이어서 여러 개의 문서를 동시에 열 수 있는 앱).

Ctrl + A

문서나 창에 있는 모든 항목을 선택합니다.

Ctrl + D (또는 Delete)

선택한 항목을 삭제하고 휴지통으로 이동합니다.

Ctrl + R (또는 F5)

활성 창을 새로 고칩니다.

Ctrl + Y

작업을 다시 실행합니다.

Ctrl + 오른쪽 화살표

커서를 다음 단어의 시작 부분으로 이동합니다.

Ctrl + 왼쪽 화살표

커서를 이전 단어의 시작 부분으로 이동합니다.

Ctrl + 아래쪽 화살표

커서를 다음 단락의 시작 부분으로 이동합니다.

Ctrl + 위쪽 화살표

커서를 이전 단락의 시작 부분으로 이동합니다.

Ctrl + Alt + Tab

화살표 키를 사용하여 열려 있는 모든 앱 사이를 전환합니다.

Alt + Shift + 화살표 키

시작 메뉴에서 그룹이나 타일에 포커스가 놓이면 지정된 방향으로 이를 이동합니다.

Ctrl + Shift + 화살표 키

시작 메뉴에서 타일에 포커스가 놓으면 이를 다른 타일로 이동하여 폴더를 만듭니다.

Ctrl + 화살표 키

시작 메뉴가 열려 있으면 크기를 조정합니다.

Ctrl + 화살표 키(항목으로 이동이 목적) + 스페이스바

창이나 바탕 화면에서 여러 개의 개별 항목을 선택합니다.

Ctrl + Shift + 화살표 키

텍스트 블록을 선택합니다.

Ctrl + Esc

시작 메뉴를 엽니다.

Ctrl + Shift + Esc

작업 관리자를 엽니다.

Ctrl + Shift

여러 개의 자판 배열을 사용할 수 있을 때 해당 자판 배열을 전환합니다.

Ctrl + 스페이스바

중국어 IME(입력기)를 켜거나 끕니다.

Shift + F10

선택한 항목에 대한 바로 가기 메뉴를 표시합니다.

Shift + 모든 화살표 키

창이나 바탕 화면에서 둘 이상의 항목을 선택하거나 문서에서 텍스트를 선택합니다.

Shift + Delete

선택한 항목을 휴지통으로 먼저 이동하지 않은 상태에서 삭제합니다.

오른쪽 화살표

오른쪽에 있는 다음 메뉴를 열거나 하위 메뉴를 엽니다.

왼쪽 화살표

왼쪽에 있는 다음 메뉴를 열거나 하위 메뉴를 닫습니다.

Esc

현재 작업을 중지하거나 나갑니다.

PrtScn

전체 화면의 스크린샷을 생성하고 클립보드에 복사합니다. 

참고

  • 스크린 캡처도 열어서 스크린샷을 편집할 수 있도록 이 바로 가기를 변경할 수 있습니다. 시작  > 설정 > 접근성 > 키보드를 선택하고 화면 인쇄 바로 가기에서 토글을 켭니다.

PrtScn 키를 사용하여 화면 캡처 열기

출처: microsoft

'소프트웨어 > 윈도우' 카테고리의 다른 글

윈도우 10 바로가기 키  (0) 2021.01.19

예제) match 함수

A1:A3범위에 있는 사람들 중에서 셀 D3에 사람이름을 넣어  몇번째 있는지 찾는 함수이다.


예제) index  함수

B1:B3 범위에서 (3,1)위치에 있는 값을 찾는 함수이다.


예제) index 함수와 match  함수 합성

셀D3에 사람이름을 입력하여 연관된 숫자를 찾는 함수이다.

+ Recent posts