주제: 1~100까지 홀수합과 짝수합을 구하는 쉘프로그램 작성리눅스에서 사용하는 쉘을 이용하여 1부터 100까지의 홀수합과 짝수합을 구하는 쉘프로그램을 작성하고자 한다.1~100까지의 홀수 합 구하기먼저, 텍스트 에디터를 열고 새로운 파일을 생성한다. 일반적으로 .sh 확장자(‘shell’의 약자)를 사용하여 쉘 스크립트 파일을 저장한다.첫 번째 줄에 #!/bin/bash를 입력하여 shebang를 추가한다. 이는 스크립트가 bash 셸에서 실행되어야 함을 나타낸다.다음으로, 홀수의 합을 저장할 변수를 선언하고 초기값을 0으로 설정한다. 이 변수는 나중에 홀수의 합을 저장하기 위해 사용된다. 예를 들어, odd_sum=0와 같이 변수를 초기화한다. 이는 odd_sum 이라는 변수를 선언하고 초기값을 0으로 돌리는 구문으로 이 변수 이후에 홀수를 더해나갈 수 있다. 반복문을 사용하여 1부터 100까지의 숫자를 반복한다. 이를 위해 for 루프를 사용할 수 있다. 예를 들어, for ((i=1; i
주제: 캐시 기억장치의 필요성과 캐시 기억장치 설계 시 가장 중요하다고 생각하는 사항목차1. 캐시 기억장치의 필요성2. 캐시 기억장치 설계 시 가장 중요하다고 생각하는 사항3. 참고문헌컴퓨터의 주요 장치 중 하나인 기억장치는 필요한 정보를 보관 및 저장하는 역할을 한다.기억장치는 컴퓨터 동작 시 프로그램의 명령어나 처리할 데이터를 저장하며 기억장치의 용량과 처리 속도는 컴퓨터의 성능에 큰 영향을 끼친다. 이때, 주기억장치는 중앙처리 장치에 비해 속도가 느리기 때문에 속도 차이가 나게 된다. 여기서 캐시 기억장치는 어떤 역할을 하게 되는지, 캐시 기억장치 설계 시 고려해야 할 사항에는 어떤 것들이 있는지를 알아보도록 하겠다.1. 캐시기억장치의 필요성캐시 기억장치는 중앙 처리 장치와 그에 비해 속도가 느린 주기억장치 사이의 속도 차이를 극복하기 위해 사용되는 기억장치이며, 프로세서의 코어에 내장된 1차 캐시와 메인보드나 카트리지에 장착하는 2차 캐시 메모리로 나뉘게 된다.캐시 기억장치는 중앙 처리 장치가 데이터를 읽거나 기록했을 때 데이터 사본이 주기억장치와 주소와 함께 캐시 기억장치에 저장된다. 이후 중앙 처리 장치가 저장된 주소를 참조하면 캐시 기억장치는 해당 주소가 있는지 확인 후 해당 주소가 있다면(Hit) 해당하는 데이터를 즉시 중앙 처리 장치에 전송하게 되고, 없다면(Miss) 중앙처리장치는 주기억장치에서 데이터를 캐시 기억장치에 전달한 후 캐시 기억장치에서 중앙 처리 장치로 전송하게 된다. 캐시 기억장치에 데이터의 주소가 있을 시에는 주기억장치에 접근할 필요가 없기 때문에 접근 시간이 상당히 단축된다는 장점이 있다.2. 캐시 기억장치 설계 시 가장 중요하다고 생각하는 사항캐시기억장치 설계 시 고려사항은 캐시기억장치의 크기, 사상함수, 인출방식, 교체 알고리즘, 블록 크기, 쓰기 정책, 개수 등이 있다. 이중 가장 중요하다고 생각되는 캐시기억장치의 크기, 사상(Mapping)함수, 쓰기 정책에 대하여 알아보도록 하겠다.1) 캐시기억장치의 크기캐시기억장치의 크기는 캐시기억장치의 적중률에 영향을 미치는 중요한 요소 중 하나이다. 크기가 커질수록 주기억장치에서 더 많은 데이터를 전송받을 수 있기 때문에 적중률은 올라가게 되지만, 그만큼 캐시를 검사하는 시간이 증가하기 때문에 평균 접근 시간이 증가한다. 또한, 크기가 커질수록 증가하는 비용도 고려해야 할 문제 중 하나이다. 이에 따라 적중률은 향상하면서 평균 접근 시간을 최소화할 수 있는 최적의 크기를 설정해야 한다. 연구 결과에 따르면 이는 1K~128K word가 최적의 크기인 것으로 알려졌다.2) 사상(Mapping)함수사상이란 주기억장치와 캐시기억장치 사이에서 정보를 전달하는 것이며 사상함수는 주기억장치의 블록과 캐시 라인 간의 대응 관계를 선정하는 방식을 의미한다.이는 직접 사상, 연관 사상, 집합 사상으로 나뉘게 된다.먼저 직접 사상은 주기억장치의 블록이 캐시의 지정된 라인으로 대응하는 것으로 사상 과정이 비교적 간단하고 비용이 낮다는 장점이 있지만, 캐시 라인이 한 개이기 때문에 태그가 다른 두 개 이상의 단어가 반복 접근되면 적중률이 저하된다는 단점이 있다.연관 사상은 지정된 라인으로 대응되는 직접 사상과는 달리 주기억장치의 블록을 캐시기억장치 임의의 위치에 저장할 수 있기 때문에 적중률이 높다는 장점이 있다. 그러나 태그 필드만으로 주기억장치의 블록을 구별하기 때문에 데이터 블록을 인출할 때 모든 슬롯에 대한 검색이 필요하며 태그들을 병렬로 검사하기 위해 복잡한 회로가 필요해 가격이 비싸다는 단점이 있다.집합 사상은 연관 사상과 직접 사상의 장점을 합치고 단점을 최소화한 방법으로 캐시는 v개의 집합으로 나뉘고 각 집합은 k개의 슬롯으로 구성된다. 집합 선택 시에는 직접 사상방식을 사용하고, 슬롯 선택 시에는 연관 사상방식이 사용된다.3) 쓰기 정책중앙처리 장치가 프로그램을 실행하는 중에 연산 결과를 캐시기억장치에 저장하는 경우가 있는데, 캐시에 저장된 데이터는 주기억장치도 동일하게 가지고 있어야 하므로 캐시의 데이터가 변경되었을 때 변경된 내용을 주기억장치에 데이터를 갱신하는 쓰기 정책을 사용하게 되었다. 쓰기 정책에는 즉시 쓰기 방식과 나중 쓰기 방식이 있다.
주제: 최대 힙과 최소 힙의 정의 / 힙의 삽입, 삭제 연산 방법 / 힙을 응용한 허프만 코드의 특징과 생성 방법목차1. 최대 힙과 최소 힙의 정의2. 최대 힙, 최소 힙의 삽입과 삭제 연산 방법3. 허프만 코드의 개념4. 힙을 응용한 허프만 코드의 특징과 생성 방법5. 참고문헌힙(heap)이란 피라미드 모양으로 차곡차곡 쌓아 올린 더미 모양을 말한다. 자료구조에서의 힙은 우선순위 큐를 구현하는 자료구조이며 빠르게 가장 크거나 작은 데이터를 찾을 수 있도록 만들어진 자료구조라고 정의할 수 있을 것이다. 이번 리포트에서는 최대 힙과 최소 힙의 개념, 연산 방법과 힙을 응용하는 방법인 허프만 코드에 대하여 설명하도록 하겠다.1. 최대 힙과 최소 힙의 정의힙은 최대 힙과 최소 힙으로 나뉘게 된다.최대 힙(Maxheap)이란 부모 노드의 key 값이 자식의 key 값보다 크거나 같은 완전 이진 트리 형식이다. 즉, 루트 노드에 저장된 값이 트리 전체에서 가장 큰 값이 된다.반대로 최소 힙(Minheap)은 부모 노드의 key 값이 자식의 key 값보다 작거나 같은 완전이진 트리 형식을 말한다. 즉, 루트 노드에 저장된 값이 트리 전체에서 가장 작은 값이 된다.최대 힙과 최소 힙은 트리의 특성상 빠른 접근이 가능하며, 정렬된 순서를 유지하면서 값의 삽입, 삭제, 검색 등의 연산을 수행할 수 있다. 또한 최대 힙과 최소 힙의 시간 복잡도는 O(log n)인데 일반적으로 힙은 완전 트리 형태이기 때문에 높이가 log n이 되며, 각 노드에 대한 연산 시간이 O(1)이기 때문이다.2. 최대 힙, 최소 힙의 삽입과 삭제 연산 방법1) 최대 힙에서의 삽입 연산 방법(Upheap)힙의 삽입 연산은 학원 입학 과정과 비슷하다고 생각하였다. 만약 새로운 학생이 학원에 입학한다고 가정해보자. 학원에 처음 입학하면 먼저 레벨 테스트를 응시하게 된다. 테스트 결과에 따라 실력 수준에 맞게 초급반, 중급반, 상급반으로의 배치가 결정된다. 힙의 삽입 연산도 마찬가지이다.다음은 최대 힙의 삽입 연산 방법에 대한 설명이다.먼저 새로 삽입할 원소의 노드를 생성한 후, 완전 이진 트리의 조건을 만족하기 위해 마지막 노드에 삽입한다. 다음으로 삽입되는 노드의 최종 위치를 결정하기 위해 부모 노드의 값과 비교하였을 때 삽입되는 노드의 값이 부모 노드보다 클 때 자리를 바꾸는 과정을 거친다. 이때 부모 노드와의 비교에서 삽입된 노드보다 작은 값을 가진 부모 노드가 없을 때까지 비교하여 자리를 바꾸는 과정을 반복한다.2) 최소 힙에서의 삽입 연산 방법(Upheap)최소 힙에서의 삽입 연산 방법도 마찬가지로, 새로 삽입할 원소의 노드를 생성한 후, 완전 이진 트리의 조건을 만족하기 위하여 마지막 노드에 삽입한다. 다음으로 삽입되는 원소의 최종 위치를 결정하기 위해 부모 노드의 값과 비교하였을 때 삽입되는 원소의 값이 부모 노드보다 작을 때 자리를 바꾸는 과정을 거치며, 더 이상 부모 노드와의 비교에서 삽입된 노드보다 작은 값을 가진 부모 노드가 없을 때까지 비교하여 자리를 바꾸는 과정을 반복한다.3) 최대 힙에서의 삭제 연산 방법(Downheap)힙의 삭제 연산은 게임 등수를 정하는 방식과 비슷하다고 생각하였다. 점수가 제일 높은 1등 자리가 비면 제일 낮은 등수의 플레이어가 1등 자리로 올라오게 된다. 그리고 다른 사람의 점수와 비교하여 그 사람의 점수보다 낮다면 순차적으로 등수를 내리고, 자신보다 높은 점수를 가지고 있는 사람이 없을 때까지 등수를 내리는 과정을 반복하게 된다. 삭제 연산도 마찬가지이다.루트 노드가 삭제되면 말단 노드를 루트로 이동시키고 삽입된 노드와 자식 노드의 값을 비교하여 삽입된 노드보다 큰 값을 가진 자식 노드와 자리를 바꾸는 과정을 거친다. 이때 삽입된 노드보다 큰 값을 가진 자식 노드가 없을 때까지 자리를 바꾸는 과정을 반복한다.4) 최소 힙에서의 삭제 연산 방법(Downheap)최소 힙에서의 삭제 연산 방법도 마찬가지로 루트 노드가 삭제되면 말단 노드를 루트로 이동시킨 뒤, 삽입된 노드보다 작은 값을 가진 자식 노드와 자리를 바꾸는 과정을 거친다. 이때 삽입된 노드보다 작은 값을 가진 자식 노드가 없을 때까지 자리를 바꾸는 과정을 반복한다.3. 허프만 코드의 개념허프만 코드는 허프만 알고리즘에 의해 생성되었으며, 데이터 전체를 나타내는 정보의 발생확률은 서로 다르게 발생한다는 점에서 착안한 부호화 기법이다. 발생 빈도수가 높은 문자는 짧은 부호를 할당하고 발생 빈도수가 낮은 문자는 긴 부호를 할당하여 발생 빈도수가 많은 코드의 길이를 줄일 수 있어서 전체 데이터의 크기가 줄어들게 된다. 따라서 데이터를 효율적으로 압축하는 것이 가능하다. 이 때문에 허프만 코드는 이미지와 오디오 압축뿐만 아니라 데이터를 효율적으로 전송해야 하는 통신 시스템에서 일반적으로 사용되며, 원본 정보를 보존하면서 데이터를 효과적으로 압축할 수 있다는 장점이 있다.4. 힙을 응용한 허프만 코드의 특징과 생성 방법힙을 응용하여 허프만 코드의 특징과 생성 방법에 관해 설명하도록 하겠다. 허프만 코드는 발생 빈도수가 높은 코드의 길이를 줄일 때 사용되는 코드이며, 우리는 힙을 응용하여 허프만 코드를 작성할 수 있다. 먼저 우리가 사용하고자 하는 코드가 a, b, c, d, e 5가지 종류의 문자만 쓰인다고 가정해보자. 허프만 코드를 생성하기 위해서는 먼저 각 문자의 빈도수를 먼저 확인해야 한다. a의 빈도수는 3, b의 빈도수는 5, c의 빈도수는 8, d의 빈도수는 13, e의 빈도수는 16이라고 가정하였을 때, 이 중 가장 빈도수가 높은 문자는 d와 e이므로 위 문자의 코드 길이를 줄인다면 데이터를 효율적으로 압축할 수 있을 것이다. 각 문자의 빈도수를 내림차순으로 적은 후, a와 b의 빈도수를 더한 값인 8과 c의 빈도수를 더한 값인 16에 d의 빈도수와 e의 빈도수를 더한 값인 29를 더하면 45라는 값이 나온다. 이때 뻗어나가는 각 노드의 왼쪽 영역에는 1을 부여하고, 오른쪽에는 0을 부여하면 a는 111, b는 110, c는 10, d는 01, e는 00으로 상대적으로 빈도수가 높은 문자 c, d, e는 짧은 이진 코드로 표현할 수 있다. 이는 최대 힙을 이용하여 가변 길이 코드로 표현한 것이다.
주제: 주기억장치와 보조기억장치 중 주기억 장치의 종류와 특징, 최근 많이 사용되고 있는 주기억 장치목차1. 주기억장치2. ROM3. RAM4. 보조기억장치5. 최근 많이 사용되고 있는 주기억장치6. 참고문헌컴퓨터의 주요 장치 중 하나인 기억장치는 필요한 정보를 보관 및 저장하는 역할을 한다.기억장치는 컴퓨터 동작 시 프로그램의 명령어나 처리할 데이터를 저장하며 기억장치의 용량과 처리 속도는 컴퓨터의 성능을 좌우하는 중요한 요소 중 하나이다. 기억장치는 주기억장치와 개인 자료나 처리 결과를 보관하는 보조기억장치로 나뉘게 된다. 주기억장치와 보조기억장치의 종류와 특징, 최근 많이 사용되고 있는 주기억장치에 대해서 알아보도록 하겠다.1. 주기억장치주기억장치란 CPU가 처리하고 있는 내용을 저장하는 기억장치이다. 대표적으로 ROM과 RAM으로 나눌 수 있다.2. ROMROM은 Read Only Memory로 전원의 공급이 없어도 기록된 데이터가 삭제되지 않는 비휘발성 메모리라는 특징이 있다. ROM의 종류로는 Mask ROM, PROM, EPROM, EEPROM 등이 있다.Mask ROM은 제조 공정 중에 마스크에 데이터를 기입하여 ROM에 기억시킨 것으로, 한번 ROM에 기입된 데이터는 수정할 수 없는 특징을 가지고 있다. 정보 유지의 신뢰성은 높지만, 소량 생산 시 생산단가가 높다는 단점이 있다.PROM은 Progammable ROM의 약자로 다시 수정이 가능한 ROM을 총칭하는 말로 EPROM, EEPROM 등이 있다.EPROM은 Erasable PROM의 약자로 비 휘발 메모리로써 제조 이후에도 기록 내용을 소거하여 다시 프로그래밍할 수 있도록 만든 ROM이며 전용의 특수기록 장치가 필요하다는 특징이 있다.EEPROM은 Electrically Erasable PROM의 약자로, ERROM을 개량한 모델이다. EPROM과 달리 특수 기록장치 없이 수정 가능하다는 특징이 있다.3. RAMRAM은 Random Access Memory로 데이터를 기록하고 판독할 수 있는 메모이다. RAM에 복사된 정보는 비교적 빠른 속도로 처리할 수 있다는 장점이 있지만, 전원의 공급이 없으면 데이터가 삭제되는 휘발성 메모리라는 특징이 있다. 또한, ROM과 달리 읽고 쓸 수 있으며 프로그램, 운영체제를 이용하여 CPU가 작업할 수 있도록 한다. 동작 방식에 따라 DRAM, SRAM, NVRAM으로 나뉘고, 장착 형태에 따라 DIP RAM, SIMM RAM, DIMM RAM으로 나뉘게 된다.DRAM은 Dynamic RAM의 약자로 일반적인 기억장치로써 전원의 공급이 없으면 저장된 자료가 소멸하는 휘발성 메모리이다. 때문에, 주기적인 리프레시 동작이 필요하다는 특징이 있다. 비교적 고속으로 데이터 처리가 가능하며 속도는 주로 Access Time으로 표시된다.SRAM은 Static RAM의 약자로 휘발성 메모리지만, DRAM과는 다르게 주기적인 리프레시 동작이 필요하지 않으며 전원이 공급되는 동안에 일정하게 데이터가 유지된다는 특징을 가지고 있다. DRAM보다 속도가 빨라 고속화가 가능하며 유지전류가 적게 소모되어 저전력으로 사용 가능하다는 장점이 있다.NVRAM은 Non-volatile RAM의 약자로 외부 공급 전원 없이도 기억내용을 유지할 수 있는 RAM을 총칭하는 메모리이다. RAM이지만 비휘발성이며 이의 구현을 위하여 백업용 배터리가 부과될 수 있는 특징이 있다.4. 보조기억장치보조기억장치란 주기억장치의 한정된 용량을 보조하기 위해 사용되는 장치로 컴퓨터의 외부에 존재한다. 데이터를 장치에 기억시켜 두었다가 필요할 때 사용할 수 있으며 전원의 공급이 없어도 데이터가 삭제되지 않는 비휘발성 메모리이다. 속도는 주기억장치에 비해 상대적으로 느리지만, 다량의 데이터를 영구적으로 저장할 수 있다. 형태에 따라 테이프 형태: 자기 테이프, 디스크 형태: 하드디스크, 광디스크, 비휘발성 메모리 형태: SSD, 메모리 카드 등으로 나뉜다.자기 테이프는 플라스틱 테이프 겉에 자성 재료를 바른 테이프 형태의 기억장치이다. 순차접근만이 가능하며 속도가 느리고 저장된 데이터의 이용이 불편하지만, 저렴한 가격과 큰 용량이라는 장점이 있어 데이터 백업용으로 많이 쓰였다.하드디스크는 원형 디스크로 구성된 자기적 기억장치이다. 디스크를 고속으로 회전시키는 물리적인 방법으로 데이터를 저장하므로 소음이 발생하고 충격에 약하다는 단점이 있다. 과거에는 대중적인 보조기억장치였으나 SSD를 주로 사용하게 되면서 소멸하고 있다는 특징이 있다.광디스크는 디스크에 레이저 광선을 쏘아 레이저에 탄 부분과 타지 않은 부분으로 나누어 정보를 기록하며 빛의 반사를 이용하여 자료를 읽어내는 기억장치이다. 정보를 기록할 수 있는지에 따라 판독형, 판독/기록형, 재기록형 디스크로 구분된다.SSD는 Solid state driver의 약자로 반도체 기반의 정보를 저장하는 기억장치이다. 하드디스크와 달리 전기적으로 데이터를 저장하기 때문에 하드디스크에 비하여 저장 속도가 빠르며 소음도 발생하지 않는다는 장점이 있다. 전력 소모가 적고 경량, 소형화할 수 있지만 하드디스크에 비하여 가격이 높다는 특징이 있다.메모리카드는 딱딱한 카드 모양의 기억장치로 재기록의 품질이 높고 데이터의 읽기와 쓰기가 자유로운 플래시 메모리를 이용하여 데이터를 저장한다. 또한, 다양한 디지털 기기에서 여러 형태의 메모리 카드가 사용되기 때문에 종류가 다양하다는 특징이 있다.5. 최근 많이 사용되고 있는 주기억장치출처: SK하이닉스최근 많이 사용되고 있는 주기억장치로는 RAM이 있다. 2022년 10월에 SK하이닉스에서 업계 최초로 DDR5 6400Mbps 32GB UDIMM, SODIMM을 개발하였으며 이는 FHD 급 영화(5GB) 약 10편을 1초에 전송할 수 있는 성능이라고 한다. 6400Mbps 이상의 고속 데이터 처리 시 안정적인 동작을 위해 CKD라는 신규 소자가 적용되었으며 2023년도부터 DDR5 전환이 이루어질 예정이라고 한다.
주제: 모바일 시스템 앱 개발 과정에 필요한 개발 프로세스목차1. 앱 개발 주제 선정2. 개발할 시스템의 작업 분할 구조도3. 간트 차트를 이용한 일정표 작성4. 시스템 요구 사항 분류 - 기능적, 비기능적, 시스템 요구 사항5. 시스템의 흐름을 유스케이스 다이어그램을 표현6. 개발할 앱 화면 설계7. 참고문헌만약 개발 계획 없이 소프트웨어를 개발하게 된다면 어떤 단점이 있을까? 개발 계획이 없음에 따라 개발 일정은 지연되고 품질이 저하되어 결국 유지보수 비용이 증가할 것이다. 이를 막기 위해서는 소프트웨어 개발 계획 세워서 개발에 필요한 여러 가지 비용, 자원, 기술, 인력, 재료 등을 효과적으로 사용할 수 있어야 한다.해당 리포트에서는 모바일 시스템 앱 개발 과정에 필요한 개발 프로세스에 필요한 내용을 정리하고 직접 개발 주제 선정, 작업 분할 구조도 작성, 시스템 요구 사항 분류, 유스케이스 다이어그램 등을 작성하고 개발할 앱의 화면을 설계해보도록 하겠다.1. 앱 개발 주제 선정모바일 시스템 앱 분야에는 여러 분야가 존재한다. 게임, 의료, 패션, 쇼핑, 배달, 지도, 중고 거래 등이 있는데, 이 중 지도 앱을 참고하여 길거리에서 붕어빵, 떡볶이, 어묵, 타코야끼, 호떡, 와플 등을 판매하는 포장마차의 위치를 지도에 표시하고, 앱 사용자들이 직접 위치를 추가할 수 있는 포장마차 위치 공유 모바일 시스템 앱을 설계하고자 한다.추가로 필터를 통하여 지역별, 음식별로 포장마차의 위치를 확인할 수 있는 기능과 포장마차의 별점과 한 줄 평을 남길 수 있는 리뷰 기능을 포함하고, 앱 사용자들이 이해하기 쉬운 UI와 UX를 고려하여 설계하도록 하겠다.2. 개발할 시스템의 작업 분할 구조도작업 분할 구조도는 앱 개발을 위해 필요한 작업을 세분화하는 작업으로 일정 기간을 예측 가능하다는 장점이 있다. 이에 따라 포장마차 위치 공유 앱에 필요한 기능인 지도 UI 기능, 포장마차 리뷰 등록 기능과 정보 등록 기능으로 크게 나누어서 작성하였다.또한, 일반 이용자뿐만 아니라 일반 음식점과 비교해 홍보 기회가 적은 포장마차 사업주들도 홍보를 할 수 있게끔 앱 내에 유료 기능을 추가하여 해당 기능을 이용한 포장마차는 리스트에 상위 노출되게끔 설정하여 앱 개발자가 수익 창출이 가능하게끔 고안하였다.3. 간트 차트를 이용한 일정표 작성간트 차트는 앱 개발에 필요한 세분된 작업의 상태 정보를 쉽게 확인하기 위하여 bar 형태로 작성되는 것으로 앞서 작성한 작업 분할 구조도를 참고하여 세분된 작업 내용을 간트 차트에 내용을 추가하여 작성하였다.4. 시스템 요구 사항 분류 - 기능적, 비기능적, 시스템 요구 사항시스템의 요구 사항의 종류로는 기능적 요구 사항과 비기능적 요구 사항이 있으며 일반적으로 기획자가 기능적 요구사항을 담당하고, 개발자는 비기능적 요구 사항을 담당하게 된다.기능적 요구 사항은 앱을 사용하게 될 사용자가 원하는 기능을 말하며 개발될 소프트웨어가 제공해야 할 기능을 말한다. 개발할 앱을 적용하자면 사용자는 지도 UI를 통하여 동네별 포장마차의 위치를 확인하거나 자신이 방문한 포장마차의 정보를 등록할 수 있어야 한다.비기능적 요구사항은 시스템이 작동되면서 가져야 할 특성을 말하며 환경, 품질, 제약 사항 등이 이에 해당한다. 예를 들면 모델링 언어는 UML, 개발 언어는 C언어, 운영체제는 IOS, 안드로이드 둘 다 사용할 수 있어야 한다면 이는 비기능적 요구 사항이 된다.5. 시스템의 흐름을 유스케이스 다이어그램을 표현유스케이스 다이어그램은 사용자의 요구를 추출하고 시스템의 기능을 나타내기 위해 세부 기능을 분석하고 개발 범위를 정해야 할 때 사용되는 것으로 액터와 시스템 간의 상호작용을 텍스트로 작성한다. 이를 토대로 개발할 모바일 앱의 관리자와 일반 사용자, 사업주로 역할을 구분한 뒤 각 역할에 필요한 사항들을 유스케이스 다이어그램으로 표현하였다. 이를 작성함으로써 사용자와 시스템과의 관계를 쉽게 확인할 수 있다는 장점이 있다.