.. Cover Letter

전체 글 207

4. 프로세스와 스레드의 차이

이 글은 다음의 강의를 수강하여 정리 및 복습하는 글임을 밝힙니다. http://kocw.or.kr/home/cview.do?mty=p&kemId=1223639&ar=relateCourse 시스템 프로그래밍 기초 이 교과목은 컴퓨터 하드웨어 시스템과 운영체제 기반에서 프로그래밍 언어를 어떻게 사용하는지에 관한 기초에 대해서 학습한다. www.kocw.net 프로세스 프로세스란 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미한다 (코드의 조각) 1. 프로세스는 자신만의 스택을 가진다. 2. 프로세스는 자신만의 메모리를 가진다. 3. 프로세스는 자신만의 파일입출력 테이블 4. 프로세스는 고유의 아이디를 가진다 (PID) 프로세스를 생성하는 것은 fork()라는 system call에 의해서 부모의 프로세스에..

3. 메모리 관점에서 C언어 이해하기

이 글은 다음의 강의를 수강하여 정리 및 복습하는 글임을 밝힙니다. http://kocw.or.kr/home/cview.do?mty=p&kemId=1223639&ar=relateCourse 시스템 프로그래밍 기초 이 교과목은 컴퓨터 하드웨어 시스템과 운영체제 기반에서 프로그래밍 언어를 어떻게 사용하는지에 관한 기초에 대해서 학습한다. www.kocw.net VS 에서 C언어 파일을 하나 만들어주세요. 참조, 주소 연산자 & 해당 연산자는 Reference operator 라고 부릅니다. 한국어로는 참조연산자 혹은 주소연산자라고 합니다. 간단하게 변수를 선언하고, 변수의 주소를 확인하자면 다음처럼 할 수 있습니다. 초기화는 안되었지만, 정적으로 메모리를 할당받은 상태이기 때문에 주소값은 나오는 상태입니다...

(실무리눅스)Vi 사용법

이번 시간에는 Vi 에디터 사용법에 대해서 알아봅니다. 사실 저는 윈도우의 메모장과 비슷한 gedit을 즐겨쓰는데, 리눅스를 사용하는 사람들은 주로 VIm editor를 사용한다고 합니다. Vi Eidtor는 두 가지의 모드가 존재합니다. 1. Command mode - 커서를 움직일 수 있습니다. - 단어를 찾을 수 있습니다. - editing mode로 전환할 수 있습니다 2. Editing mode - 수정하거나 단어를 삽입합니다. Vi를 실행해봅시다. 우선 작업공간을 하나 만들어줍시다. 폴더이름은 vi로 하겠습니다. 여기서 다음의 명령어를 입력하면 실행이 가능합니다. vi test 다음과 같은 화면이 나오는데, 어떻게 나가야할지 막막합니다. 처음에 들어가면 Command mode 로 동작합니다. ..

2. C언어의 컴파일 과정 이해하기

이 글은 다음의 강의를 정리 및 복습하는 글임을 밝힙니다. 또한 면저 준비시에 활용합니다. http://kocw.or.kr/home/cview.do?mty=p&kemId=1223639&ar=relateCourse 시스템 프로그래밍 기초 이 교과목은 컴퓨터 하드웨어 시스템과 운영체제 기반에서 프로그래밍 언어를 어떻게 사용하는지에 관한 기초에 대해서 학습한다. www.kocw.net C언어의 개발과정을 이해해보자. 주요한 키워드는 다음과 같다. - Edit - Preprocess - Complie - Link - Load - Execute 1. Edit 코드를 직접 수정하는 단계이다. 예를 들자면 VScode로 코드를 수정하는 과정이다. 2. Preprocess 선처리라고 하며, 코드를 분리하고 컴파일러에게..

1. 시스템 프로그래밍 개요

이 글은 다음의 강의를 정리 및 복습하는 글임을 밝힙니다. http://kocw.or.kr/home/cview.do?mty=p&kemId=1223639&ar=relateCourse 시스템 프로그래밍 기초 이 교과목은 컴퓨터 하드웨어 시스템과 운영체제 기반에서 프로그래밍 언어를 어떻게 사용하는지에 관한 기초에 대해서 학습한다. www.kocw.net 임베디드 SW의 커리큘럼 Programming Language : C언어, C++ 을 공부해야한다고 합니다. -> System Programming : 코드가 컴퓨터 시스템에서 어떻게 동작되는가를 배운다고 합니다. -> Data Structures : 자료구조 -> Operating Systems : 운영체제 -> Microprocessor : (하드웨어) 마..

들어야할 강의랑 뭐하고 먹고살지

1. 시스템 프로그래밍 기초 (진행 중) 시스템 프로그래밍 기초 - 한양대학교 | KOCW 공개 강의 시스템 프로그래밍 기초 이 교과목은 컴퓨터 하드웨어 시스템과 운영체제 기반에서 프로그래밍 언어를 어떻게 사용하는지에 관한 기초에 대해서 학습한다. www.kocw.net 2. 운영체제 운영체제론 - 강서대학교 | KOCW 공개 강의 운영체제론 운영체제라는 주제에서는 CPU, Memory, I/O 등의 컴퓨터 자원을 효율적으로 관리하는 방법들과 사용자에게 인터페이스를 제공하는 기능들에 대해 공부한다. www.kocw.net 3. 그리고 교양의 형태로 다음의 과목을 수강한다. 소프트웨어공학 - 동국대학교 | KOCW 공개 강의 소프트웨어공학 사용자 요구를 찾아내고 정리하여 적합한 소프트웨어 설계안을 구성하고..

(C)string을 swap하는 함수를 만들어주세요.

간단하게 a와 b를 서로 바꿔주는 swap 함수를 만들어주세요. main 함수는 주어집니다. int main() { const char* a = "abcd"; const char* b = "12345"; printf(a); //"abcd" printf(b); //"12345" str_swap(); printf(a); //"12345" printf(b); //"abcd" } str_swap()에 들어갈 매개변수는 자유롭게 설정하시길 바랍니다. 아마 가장 유명한 문제가 아닐까 싶습니다. 이 문제를 푸는 방법을 설명드리겠습니다. 우선 다음의 문자열 선언에 대해 이해할 필요가 있습니다. const char* a = "abcd"; abcd 라는 문자열 리터럴을 가리키는 포인터 변수 a입니다. 보통 우리가 stri..

(C++) 초급 2장. 연산자 오버로딩(연산자 중복) 복습하기(1/2)

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

(C++) 초급 1장. 연산자 오버로딩(연산자 중복) 복습하기

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

배송로봇 모니터링 프로그램 만들기 2장 설계의 구체화

대충 컨셉은 모두 설계가 되었습니다. Git 생성 brainKimDu/Making-a-serving-robot (github.com) GitHub - brainKimDu/Making-a-serving-robot Contribute to brainKimDu/Making-a-serving-robot development by creating an account on GitHub. github.com 일단 깃부터 만들고 시작하도록 합시다. 프로젝트 세부 설계 큰 그림으로 보자면 다음의 그림과 같습니다. 이제 설계를 해야할 것은 각각의 모듈을 어떻게 구현할 것이고, 각 모듈이 어떻게 통신을 해야하고, 어떻게 구현을 해낼건지 조사를 진행해야겠습니다. 들어가기 전 UML과 아키텍처 설계를 조금 진지하게 공부해보고자..

배송로봇 모니터링 프로그램 만들기 1장 프로젝트 설계

프로젝트 목적 - ROS 활용능력을 키우기위함 - 소프트웨어 아키텍처 설계 능력을 기르기 위함 - C++ 객체지향 능력을 향상시키기 위함 - 기존의 코드들을 재활용하면서 접근하여 하나의 완성작을 만들어보고자 함. 프로젝트 기간 2023년 6월 28일부터 7월 30일까지 업무 외 별도로 진행 프로젝트 인원 개인 프로젝트 프로젝트 설계 요구사항 1. 시뮬레이션 상에서의 서빙로봇을 만들고 싶습니다. (로봇은 한 대만 사용합니다.) 2. 손님은 키오스크에서 주문을 진행함. (키오스크에서 객체지향의 특징이 잘 드러나게 설계할 것) 3. 그리고 손님이 자리에 앉으면 주방에서 음식이 만들어지고, 로봇이 이를 손님에게 전달함. 4. 남은 배터리 용량, 로봇의 현재위치, 로봇의 현재 명령 수행과정 등등을 모니터링할 수 ..

4. 아두이노로 알아보는 임베디드 시스템의 동작원리

참고도서 : 임베디드 엔지니어 교과서, 와타나베 노보루, 제이펍, 2020 책을 내용을 참고하였으며, 추가 정보가 필요할 경우 ChatGPT와 구글 검색을 활용합니다. 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. 이전 시간에 FreeRTOS를 깔아보고 아두이노에 적용까지 해보았습니다. 이번 시간에는 IDE에 작성한 코드가 어떻게 Arduino까지 전달이 되는지 알아보도록 하겠습니다. 임베디드 소프트웨어 임베디드 소프트웨어는 두 가지로 나눌 수 있습니다. 운영체제를 사용하는 타입과 운영체제를 사용하지 않는 타입입니다. 일반적으로 아두이노가 운영체제가 없이 동작하며(FreeRTOS의 경우 제외) 라즈베리 파이가 운영체제가 있게 동작을 합니다. 운영체제가 없는 경우는 동작이 단순한 경우일 ..

3. 임베디드 시스템의 개념, 특징, 구성

참고도서 : 임베디드 엔지니어 교과서, 와타나베 노보루, 제이펍, 2020 책을 내용을 참고하였으며, 추가 정보가 필요할 경우 ChatGPT와 구글 검색을 활용합니다. 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. 임베디드 시스템이란? 임베디드 시스템이란 마이크로 컴퓨터를 탑제한 기계나 장치를 의미합니다. 기존의 PC와 다른점이라고 한다면, 임베디드 시스템에서 입력은 센서를 통해 얻은 정보가 될 수 있고, 출력은 화면에 출력하거나 모터를 동작하는 등의 제어 신호에 해당할 수 있습니다. 임베디드 시스템의 특징 창문으로 들어오는 빛의 양이 적으면 전등을 켜고, 많으면 전등을 끄는 시스템이 있다고 생각을 해보겠습니다. 이 경우에 다음과 같은 특징을 가질 것입니다. 1. 임베디드 시스템은 외부..

ROS2로 turtlebot3 제어하기 6장. A* 알고리즘 탐구

참고자료 https://choiseokwon.tistory.com/210 파이썬 A* (A-star) 최단 경로 찾기 알고리즘 A* 길 찾기 알고리즘은 1968년에 Peter Hart, Nils Nilsson, Bertram Raphael에 의해 최초 공개됐다. 우선 Node 클래스는 아래와 같이 구현될 것이며, 아래 클래스를 보고 글을 읽으면 좀 더 편할 것이다. class Nod choiseokwon.tistory.com 코드 참고는 다음의 블로그를 참고하였습니다. 파이썬으로 작성되었으며, C++로 작성된 코드는 후에 시간이 남는다면 작성하도록 하겠습니다. A* 알고리즘이란? 최단거리 탐색알고리즘으로 가장유명한 알고리즘입니다. Grid Map (모논종이) 상에서 8방향의 방향성에 대해 장애물을 고려하..