전체 글 8

[2025 하계 모각코] 모각코 회고

C언어와 CS 기초를 배우기 위해 이번 모각코 활동에 참여하였다.지난 6회차를 회고하며 느낀 것들을 작성해보려고 한다. 1. C언어C언어 관련해서는 아직 부족한 점이 너무 많은 것 같다.학습 시간이 그렇게 많지 않다는 점도 있고 실제로 코드를 작성해본 것도 많지 않기 때문이다.하지만 C언어를 배우기 위해 스탭별로 메모리 관리, 포인터 등 여러 CS 개념을 학습하여C 언어를 통해 CS 기초를 배운다는 취지는 매우 성공적인 것 같다. 2. CS 기초원래 CS 기초에 대해 거의 문외한이라고 해도 될 정도로 모르고 있었다.고등학교때 단지 인공지능에 관심이 있고 코딩도 어느정도 배운 것 뿐이다.코딩도 C를 배울 생각은 안해서 CS 기초에 대해 접할 기회도 별로 없었고 관심도 없었다.그러나 이번에 C를 통해 CS ..

모각코 2025.08.17

[2025 하계 모각코] 6회차 활동 결과 - 운영체제와 운영체제의 구조

활동 목표: 운영체제 학습 활동 결과: 1. 운영체제운영체제에 대한 내용은 매우 크지만 하나의 포스트로 정리하는 만큼 얕게 배워보려고 한다. 1.1. 운영체제란운영체제(Operating System)는 컴퓨터 시스템의 핵심적인 소프트웨어로 컴퓨터의 하드웨어를 관리해주는 역할을 한다.컴퓨터를 키면 가장 먼저 실행되는 프로그램으로 사용자와 컴퓨터 하드웨어 사이의 인터페이스 역할을 한다. 1.2. 운영체제의 종류운영체제의 종류로는 시장에 따라 임베디드, 서버, 모바일, 데스크탑 으로 나뉘어져 있으며 Windows, Linux, Unix를 보편적으로 사용한다. Unix는 C언어 기반으로 Windows를 제외한 거의 모든 운영체제를 포괄하고 있다. 대표적으로 macOS, Linux가 있다. Windows는 편..

모각코 2025.07.31

[2025 하계 모각코] 5회차 결과 - 구조체

활동 목표: 구조체 학습 활동 결과: 1. 구조체 1.1. 구조체의 개념구조체란 여러 자료형을 가진 변수를 하나로 묶어 사용하는 것을 말한다.Python을 배우고 C를 공부하고 있는 입장에서 처음 봤을 때 Class와 유사하다고 생각하였다.결과적으로는 데이터 묶음이라는 형식 측면에서 유사하고 Python의 객체 지향 형식을 지원하지 않는다는 차이가 있다.한 마디로 정의하자면, 구조체는 여러 자료형의 묶음을 하나의 단위로 여려 변수에서 접근할 수 있도록 해 주는 것이다.. 연산자를 통해 구조체 내의 변수에 접근할 수 있다.구조체를 선언하는 방법은 아래와 같다.#include #include struct Student{ // 구조체 선언 char name[50]; int id; float ..

모각코 2025.07.29

[2025 하계 모각코] 4회차 결과 - 메모리 구조와 동적 메모리 할당

활동 목표: 동적 메모리 학습 활동 결과: 1. 메모리 구조 동적 메모리에 대해 알기 위해서는 메모리 구조에 대해 알아야 한다고 생각했다.메모리는 그저 하나의 저장소가 아닌 다양한 메모리 공간을 제공해준다.전체적인 구조는 4가지로 나뉜다.1. 코드(text) 영역2. 데이터(data) 영역3. 스택(stack) 영역4. 힙(heap) 영역 1.1. 코드(text) 영역실행할 코드의 기계어 코드(컴파일된 프로그램 명령어), 제어문, 함수, 상수 등이 저장된다. 1.2. 데이터(data) 영역전역 변수, 정적 변수 등이 저장된다.아직 이 부분에 대해 제대로 배우진 않았는데 가볍게 설명하면 C언어의 지역 변수는 함수 호출이 끝날 때 메모리에서 사라지지만 전역 변수와 정적 변수는 프로그램이 시작될 때 생성되..

모각코 2025.07.24

[2025 하계 모각코] 3회차 활동 결과 - C언어 포인터

활동 목표: 포인터 학습 활동 결과: 1. 포인터 포인터란 메모리 주소를 저장하는 변수이다. 처음에 포인터에 대한 개념을 들은 것은 파이썬을 배우던 도중이었다. 파이썬의 list를 변수에 저장할 때 변수에 그 위치를 저장한다고 배웠다.li1 = [1, 2, 3]li2 = li1li1[1] = 5print(li2)>> [1, 5, 3] C에서 포인터는 메모리 주소를 저장한다.*로 포인터 변수를 선언하고 그 뒤에는 메모리 주소를 가리키는 &를 사용한다.예를 들어 아래와 같이 포인터 변수를 선언했으면 ptr은 a의 주소를 나타내고 *ptr을 사용해 주소의 값을 역참조할 수 있다.#include int main(){ int a = 10; int *ptr = &a; printf("%d\n"..

모각코 2025.07.22

[2025 하계 모각코] 2회차 활동 결과 - C언어 표준과 전처리기(선행처리기)

활동 목표: C언어 표준 문법과 함수 및 라이브러리 학습 활동 결과 1. C언어 표준 문법 표준 문법이라고 표기를 해두었는데 사실은 코딩 규칙에 관한 것을 학습하고 싶었다.함수나 변수 명명법이나 들여쓰기 등에 관한 규칙 말이다.언어마다 각 언어에 맞는 스타일대로 코드를 작성하는 것 또한 중요하기 때문이다. - 작성법프로그램의 시작은 main 함수를 호출하여 시작한다.블록 구조({}) 를 사용하며 문장 단위로 세미콜론(;)을 사용하여 끝맺는다. - 명명법영문자와 숫자의 조합으로 만든다.명칭의 첫 문자는 문자나 언더바(_)여야 한다.특수문자를 사용하면 안 된다.(단, 언더바(_)는 사용 가능)문자 사이에 공백이 있으면 안 된다.예약어를 사용하면 안 된다.영문자 대문자와 소문자는 구분되어 사용된다.명칭의 길..

모각코 2025.07.15

[2025 하계 모각코] 1회차 활동 결과 - C 언어 개발환경 및 기본 문법

활동 목표: C언어 개발환경 설정 및 기본 문법 학습 활동 결과 1. C언어 개발환경 설정 - C언어는 Python이 인터프리터를 사용하는 것과 달리 컴파일러를 사용한다. 컴파일러와 인터프리터의 차이 인터프리터 - 프로그램을 한 줄씩 읽어 실행시킨다. python과 같은 High Level 언어들이 주로 인터프리터를 사용한다.컴파일러 - 프로그램을 한 번에 읽어 실행시킨다. C, JAVA 등과 같은 비교적 Low Level 언어들이 주로 컴파일러를 사용한다.프로그램을 한 줄씩 읽어 실행시키기 때문에 인터프리터는 속도가 상대적으 느리다는 단점이 있다. 하지만 프로그램 수정이 간단하다는 장점이 있다. 컴파일러는 프로그램을 한 번에 읽어 한 번에 실행시키기 때문에 속도가 빠르다. 하지만 프로그램을 수정하려면 ..

모각코 2025.07.15

[2025 하계 모각코] 모각코 활동 계획

목표C언어와 CS기초 배우기!C언어 학습운영체제컴파일러 회차별 목표1회차: C언어 개발환경 설정 및 기본 문법 학습2회차: C언어 표준 문법과 함수 및 라이브러리 학습3회차: 포인터 학습4회차: 동적 메모리 학습5회차: 구조체 학습6회차: 운영체제 학습 원래 4회차가 동적 메모리와 구조체 학습, 5회차가 컴파일 과정 학습 이었는데4회차까지 진행하면서 컴파일 과정에 대해 생각보다 많은 정보를 알게 되었고4회차인 동적 메모리만으로 분량이 매우 많았기 때문에부득이하게 컴파일 과정 회차를 수정하였습니다 ㅠ

모각코 2025.07.14