목차 저작권의 개요 📌 저작권이란 소설, 시, 논문, 강연, 연술, 음악, 연극, 무용, 회화, 서예, 건축물, 사진, 영상, 지도, 도표, 컴퓨터 프로그램 저작물 등에 대하여 창작자가 가지는 배타적 독점걷 권리로 타인의 침해를 받지 않을 고유한 권한다. 컴퓨터 프로그램들과 같이 복제하기 쉬운 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법을 통칭해 '저작권 보호 기술'이라고 한다. 디지털 저작권 관리 (DRM: Digital Right Management)의 개요 📌 디지털 저작권 관리는 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다. 원본 콘텐츠가 아날로그인..
목차 💡 주요 키워드 ? 소프트웨어 패키징, 릴리즈 노트, DRM, 소프트웨어 설치 매뉴얼, 소프트웨어 사용자 매뉴얼, 형상 관리, Subversion, Git, Jenkins, Gradle 소프트웨어 페키징의 개요 📌 소프트웨어 패키징이란 모듈 별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. 개발자가 아니라 사용자를 중심으로 진행한다. 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징한다. 사용자가 소프트웨어를 사용하게 될 환경을 이해하여, 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 패키징한다. 💡 일반적으로 패키징(Packaging)이란 관련된 것들을 하나로 묶는 것을 말하며, 소프트웨어 패키징이란 기능별로 생성한 실행 파일들을 묶어 배포용 ..
목차 💡 주요 키워드 ? 단위 기능 명세서, IPC, 테스트 케이스, 단위 모듈 테스트, 테스트 프로세스, IDE, 빌드 도구, 단위 모듈, Ant, Maven 단위 모듈 (Unit Modeul)의 개요 📌 단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다. 단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 부른다. 단위 모듈은 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램의 의미하기도 한다. 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현할 수 있다. 단위 모듈의 구성 요소에는 처리문, 명령문, 데이터 구조 등이 있다. 단위 모듈은 독립적인 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입되기도 한다. 단위 모듈을 구현하기 ..
목차 데이터 입/출력의 개요 📌 데이터 입/출력은 소프트웨어의 기능 구현을 위해 데이터베이스에 데이터를 입력하거나 데이터베이스의 데이터를 출력하는 작업을 의미한다. 데이터 입/출력은 단순 입력과 출력뿐만 아니라 데이터를 조작하는 모든 행위를 의미하며, 이와 같은 작업을 위해 SQL(Structured Query Language)을 사용한다. 데이터 입/출력을 소프트웨어에 구현하기 위해 개발 코드 내에 SQL 코드를 삽입하거나, 객체와 데이터를 연결하는 것을 데이터 접속(Data Mapping)이라고 한다. SQL을 통한 데이터베이스의 조작을 수행할 때 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 트랜잭션(Transaction)이라고 한다. SQL (S..
목차 데이터 저장소 📌 데이터저장소는 소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미한다. 데이터저장소는 논리 데이터저장소와 물리 데이터자장소로 구분된다. 논리 데이터저장소는 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것을 의미한다. 물리 데이터저장소는 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 하드웨어적인 저장장치에 저장한 것을 의미한다. 논리 데이터저장소를 거쳐 물리 데이터저장소를 구축하는 과정은 데이터베이스를 구축하는 과정과 동일하다. 데이터베이스 📌 데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임으로 다음과 같이 정..
목차 이분 검색 이분 검색(이진 검색, Binary Search)은 전체 파일을 두 개의 서브파일로 분리해 가면서 Key 레코드를 검색하는 방식이다. 이분 검색은 반드시 순서화된 파일이어야 검색할 수 있다. 찾고자 하는 Key 값을 파일의 중간 레코드 Key 값과 비교하면서 검색한다. 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어듦으로 탐색 효율이 좋고 탐색 시간이 적게 소요된다. 중간 레코드 번호 M = (F+L)/2 (단, F : 첫 번째 레코드 번호, L : 마지막 레코드 번호) 🔔 예) 1~100 까지의 숫자 중 15를 찾는 데 걸리는 횟수는? ① 첫 번째 값(F)과 마지막 값(L)을 이용하여 중간 값 M을 구하여 찾으려는 값과 비교한다. M = (1+100)/2 = 5..
목차 삽입 정렬 (Insertion Sort) 📌 삽입 정렬은 가장 간단한 정렬 방식으로 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬한다. 두 번째 키와 첫 번째 키를 비교해 순서대로 나열(1회전)하고, 이어서 세 번째 키를 첫 번째, 두 번째 키와 비교해 순서대로 나열(2회전)하고, 계속해서 n번째 키를 앞의 n-1개의 키와 비교하여 알맞은 순서에 삽입하여 정렬하는 방식이다. 평균과 최악 모두 수행 시간 복잡도는 0(n2승) 이다. 시간 복잡도의 가장 간단한 정의는 알고리즘의 성능을 설명하는 것이다. 다른 의미로는 알고리즘을 수행하기 위해 프로세스가 수행해야 하는 연산을 수치화 한 것이. 왜 실행시간이 아닌 연산수치로 판별할까? 명령어의 실행 시간은 컴퓨터의 하드웨어 또는 프..
목차 트리의 개요 📌 트리는 정점(Node, 노드)과 선분(Branch, 가지)을 이용하여 사이클을 이루지 않도록 구성한 그래프(Graph)의 특수한 형태이다. 트리는 하나의 기억 공간을 노드(Node)라고 하며, 노드와 노드를 연결하는 선을 링크라고 한다. 트리는 가족의 계보(족보), 조직도 등을 표현하기에 적합하다. 트리 관련 용어 노드(Node) : 트리의 기본 요소로서 자료 항목과 다른 항목에 대한 가지(Branch)를 합친 것 🔔 예) A, B C, D, E, F, G, H, I, J, K, L, M 근 노드(Root Node) : 트리의 맨 위에 있는 노드 🔔 예) A 디그리(Degree, 차수) : 각 노드에서 뻗어 나온 가지의 수 🔔 예) A = 3, B = 2, C = 1, D = 3 단..