목록분류 전체보기 (83)
모노산달로스의 행보

기초 캡스톤 디자인 프로젝트 캡스톤 디자인이란? 돌 산을 쌓을 때 가장 윗부분을 캡스톤이라고 합니다. 지금 까지 배운 내용들을 통해 모두가 힘을 모아서 마지막 윗부분을 만드는 것, 그것이 바로 캡스톤 디자인입니다. 경기대학교에서 컴퓨터공학부 3학년이라면 모두가 기초 캡스톤에 참여합니다. 실력이 좋은 사람, 자신이 없는 사람, 자신의 능력을 모르는 사람 등 모두가 팀을 이루어 결과물을 발표하고 경쟁합니다. 글쓴이 또한 2024년 3학년을 맞이하여 기초 캡스톤에 참여하게 되었습니다. 해당 포스트는 3월부터 6월까지 경기대학교에서 수행한 기초캡스톤 프로젝트 진행 과정을 필자 시점으로 정리한 내용입니다. 긴 글이 되어 두 개로 나누어 작성하게 되었습니다. 기초 캡스톤 프로젝트를 끝내며 (1/2)후반 작업 본..

기초 캡스톤 디자인 프로젝트 캡스톤 디자인이란? 돌 산을 쌓을 때 가장 윗부분을 캡스톤이라고 합니다. 지금 까지 배운 내용들을 통해 모두가 힘을 모아서 마지막 윗부분을 만드는 것, 그것이 바로 캡스톤 디자인입니다. 경기대학교에서 컴퓨터공학부 3학년이라면 모두가 기초 캡스톤에 참여합니다. 실력이 좋은 사람, 자신이 없는 사람, 자신의 능력을 모르는 사람 등 모두가 팀을 이루어 결과물을 발표하고 경쟁합니다. 글쓴이 또한 2024년 3학년을 맞이하여 기초 캡스톤에 참여하게 되었습니다. 해당 포스트는 3월부터 6월까지 경기대학교에서 수행한 기초캡스톤 프로젝트 진행 과정을 필자 시점으로 정리한 내용입니다. 긴 글이 되어 두 개로 나누어 작성하게 되었습니다. 기초캡스톤 프로젝트를 끝내며(2/2) 팀 결성 총팀원..

애자일 프레임워크. 스크럼 해당 포스트는 경기대학교 소프트웨어 공학 강의의 도움을 바탕으로 작성되었습니다. 소프트웨어는 개발은 팀을 만들고 인원들이 서로 협업하면서 이루어집니다. 이러한 소프트웨어 개발을 위하여 다양한 방법론이 제시됩니다. 구조적 방법론, 객체 지향 방법론, CBD 개발 방법론 등 필요에 따라 알맞은 방법론을 선택할 수 있습니다. 이번 포스트에서는 애자일 개발 방법론에 대하여 알아보고 K-scrum을 통한 실제 경험을 공유해 보겠습니다. Agile Software Development 애자일 개발 방법론이란 이름 뜻 그대로 재빠르게(Agile) 최소한의 실행 가능한 제품(minimum viable product)을 출시하는 것을 기본으로 합니다. 이후 유저의 행동이나 피드백을 받아..

Software Engineering - 시스템 모델링(System Modeling) 해당 포스트는 경기대학교 소프트웨어 공학 강의 자료를 바탕으로 작성되었습니다. 시스템 모델링 시스템 모델링이란 시스템에 대한 다양한 추상 표현 또는 추상 모델을 개발하는 것을 의미합니다. 각각의 추상 모델은 시스템의 서로 다른 뷰 또는 관점을 나타냅니다. 이러한 추상 모델은 그래픽 기호(주로 UML)를 통해 나타냅니다. 이러한 추상 모델은 시스템의 이해를 원활하게 만들고 고객과의 의사소통에 유용하게 사용됩니다. 큰 그림으로 전체 구조를 파악할 수 있기 때문에 토론의 촉진 수단 혹은 시스템의 문서화에 기여합니다. 혹은 코드 생성에 활용하기도 합니다. 모델링이란? 모델링이란 한마디로 '추상화(abstraction)'라고 정..

C programming -큐(Queue) 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 큐란? 스택은 선형 자료구조로서 First In First OUT (FIFO) 규칙을 따릅니다. 즉, 처음에 들어온 요소가 가장 먼저 제거된다는 뜻입니다. #define MAX 10 int queue[MAX]; int front, rear; void put(int k) { // rear가 한계를 넘지 않았으면 queue[++rear] = k; } int get() { // 큐가 비어있지 않으면 return queue[front++]; } 큐의 기본적인 구현은 위와 같습니다. 스택과 마찬가지로 배열..

C programming -스택(Stack) 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 스택이란? 스택은 선형 자료구조로서 Last In First OUT (LIFO) 규칙을 따릅니다. 즉, 마지막에 들어온 요소가 가장 먼저 제거된다는 뜻입니다. 마치 접시들이 쌓여있는 모습이라고 생각하면 됩니다. #define MAX 10 int stack[MAX]; int top; int push(int t) { if (top >= MAX-1) { printf(“Stack overflow\n”); return -1; } stack[++top] = t; return t; } int pop() { ..

C programming - 연결 리스트 (Linked List) 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 연결 리스트란? 연결리스트는 노드라고 불리는 구조체들의 체인으로 이루어져있습니다. 각 노드는 다음 노드를 가리키는 포인터를 가지고 있습니다. 연결 리스트는 삽입 삭제가 편리하고 메모리를 효율적으로 관리할 수 있습니다. 해당 포스트에서는 실제로 C언어를 통해 연결 리스트를 구현하면서 공부해보겠습니다. 연결 리스트 노드 생성과 삽입 가장 먼저 구조체 노드를 정의하겠습니다. struct node { int value; struct node *next; }; 노드는 값과 다음 노드..

C programming - 동적 메모리 할당 리눅스 환경에서 네트워크 프로그래밍을 공부하기 위해서 C언어를 다시 복습해야 할 필요성을 느꼈습니다. 따라서 이번 기회에 배열부터 전처리기까지 내용들을 정리하겠습니다. 동적 메모리란? 프로세스의 메모리 구조는 위와 같이 4개로 구분됩니다. 그중에서 힙 영역은 프로그램이 실행되는 동안 동적으로 메모리를 할당할 수 있는 영역을 의미합니다. 힙 영역의 특징으로서 프로그래머가 요구할 경우 런타임 중에 동적 메모리 할당이 이루어집니다. 그렇다면 왜 동적 메모리 할당을 요청할까요? int array[5]; array[0] = 10, array[1] = 20, array[2] = 30; int array[2]; array[0] = 10, array[1] = 20, arr..