CS
1. Upstream, Origin, 그리고 Local이란? 깃 개념에서 위의 3가지는 '상대적인 위치'를 나타낸다. 예를 들어 친구들과 함께 거대한 웹 프로젝트, 'Our Web'를 만든다고 치자. 친구 중 한 명이 레포를 만들 것이고, 나머지 친구들은 fork를 통해 그 레포를 자신의 깃허브 레포에 옮겨올 것이다. 그리고 이 프로젝트는 역할 분담이 있기에 fork한 저장소를 각자 개인 PC로 clone하여 개인 작업을 수행할 것이다. 이때, 한 친구가 판 Our Web의 원천이 되는 저장소를 Upstream이라고 하고, 그것을 fork한 나의 저장소를 Origin이라고 하며 Origin을 클론하여 업무를 수행하는 나의 PC를 Local이라 한다. 2. Fork부터 Pull request까지 그렇다면 ..
1. Git과 Github의 차이점 Git : 개인 컴퓨터 내에서 프로젝트의 변경된 내용을 관리하는 도구 (버전 관리 도구) Github : 코드 저장소 (like 코드계의 클라우드) Version : 특정 시점에서 프로젝트의 상태 2. Git의 4가지 영역 git은 크게 4가지 영역으로 나눌 수 있다. (1) Working Directory (modified) modified : 작업영역 개인 PC 내에서 코드를 수정하고 새로운 파일을 추가하는 등의 개인적인 수정작업을 하는 영역 (2) Staging Area (staged) staged : 준비 영역 commit하기 이전에 add된 파일들이 모여있는 영역 (3) Local Repository 파일들이 commit되어 버전이 생성된 상태로 존재하는 영역..
-목차- 1. 구조체 포인터 변수 2. 구조체 매개 변수 : "구조체 복사" vs "구조체 포인터" 3. 시간, 날짜와 관련된 C언어 표준 라이브러리 함수 1. 구조체 포인터 변수 ※ 구조체 변수 값을 swap하는 함수 만들기 #include typedef struct student { int id; char *pname; double points; } STUD; void stud_printx(STUD s) { printf("[%d:%s] = %lf\n", s.id,s.pname,s.points); } void stud_swap(STUD s1, STUD s2) { STUD tmp = s1; s1 = s2; s2 = tmp; } int main(void) { STUD s1 = {1,"Kim",100}; S..
-목차- 1. 구조체 자료형 정의 및 변수 선언 방법 2. typedef와 구조체 자료형 3. 구조체의 메모리 구조 4. 문자열 배열, 포인터와 구조체 변수에 대한 Assigment 연산 5. 구조체의 배열 1. 구조체 자료형 정의 및 변수 선언 방법 ○ 구조체 ※ 구조체는 여러 자료형의 연속된 변수들로 구성된 집합체 ex) 학생관리 프로그램의 각 학생에 대한 기록 - 이름, 학번, 나이, 전화번호, 전공 등 학생과 관련한 여러 자료 - 한 학생에 대한 여러 자료들을 개별적으로 다루기보다 하 곳에(하나의 변수로) 모아서 관리하는 것이 편리 ※ C의 구조체 구조 - 구조체는 하나 이상의 멤버/필드 변수들로 구성된다 - 각 멤버/필드 변수들은 서로 다른 자료형을 가질 수 있다 ※ 구조체는 일종의 자료형(Ty..
-목차- 1. 포인터 변수에 대한 산술(+,-) 연산 및 우선 순위 2. 배열과 포인터 3. 문자열과 포인터 4. 배열 매개 변수와 포인터 5. 문자열 입출력 함수 : gets( )와 puts( ) 1. 포인터 변수에 대한 산술(+,-) 연산 및 우선 순위 ※ 포인터 변수에 대한 덧셈, 뺄셈 연산 - 포인터 변수에 대해 정수 변수와 유사하게 + , - , ++(increment), -- (decrement) 연산을 할 수 있음. 그러나 정수 변수와는 연산 결과가 다름. #include int main(void) { int a = 1, *pa = &a; // int형 변수 a와 a의 포인터 변수 pa short b = 1, *pb = &b; // short형 변수 b와 b의 포인터 변수 pb char c ..
-목차- 1. 포인터 개념 2. 포인터 변수와 & 연산자 3. 포인터 변수와 주소의 이해 4. 포인터 활용 1. 포인터 개념 ○ 메모리 구조와 변수 ※ 메모리 - 메모리 셀이 연속해 나열되어 있는 구조 - 각 메모리 셀은 식별을 위한 주소를 가지며 셀 내에 이진 값을 저장할 수 있다 ※ Variable - 값을 저장하는 메모리 공간 - Identifier, Type, Value, Memory Size, Memory Address, Scope, Lifetime 등을 속성으로 가짐 ex) int num의 속성은? 식별자 : num, 타입 : int, 값 : 1852609611, 메모리 크기 : 4 bytes, 메모리 주소 : 0x1000 ○ 포인터 : 지시자, 가리키는 자 (변수를 가르키는 변수) 나를 변수..
-목차- 1. Structured Programming and Modular Programming 2. Some Essential Programming Guidelines 3. Style : snake_case vs CamelCase 4. 숫자 야구 게임 프로그래밍해보기 1. Structured Programming and Modular Programming ○ Structured Programming ( 주로 한 모듈 내 함수에서 나타나는 구조) - 모든 프로그램은 본질적으로 순차, 선택, 반복이라는 3가지의 제어 구조 조합으로 구성된다. - 코드에서 이러한 제어 구조가 명확히 드러날 때 코드 작성과 이해가 쉬워진다. 즉, 명확하고 퀄리티가 높고 컴퓨터프로그램의 시간적 이점이 향상된다. - C 언어는 ..
-목차- 1. C Standard Library 2. reference page 살펴보기 3. Type Casting/Conversion Operator 4. 문자 입출력 함수 getchr(), putchar() 1. C Standard Library ( C언어에서 기본적으로 사용할 수 있는 서비스 함수의 집합 ) ※ Dev-cpp의 MinGW64 폴더 안에.. - include 폴더에는 표준 라이브러리 함수 헤더(프로토타입/선언)파일이 있음 - 해당 library 서비스 함수의 definition은 미리 compile되어 object 파일로 lib 폴더 내에 저장됨 - Library 속 함수들의 설명서인 reference를 이용하는 습관은 프로그래밍 역량 배양에 중요함 - reference 즐찾하고 상..
-목차- 1. 자동변수와 정적변수 2. 변수의 속성 3. 함수 호출 시 배열 크기를 전달하는 방법 4. C 함수 특성의 이해 1. 자동변수와 정적변수 - CSV 문제 다시보기 #include int main(void) { int i; int num = 0, sum = 0; char str[] = "123,456,789"; for (i=0;str[i];i++){ if (str[i] == ','){ sum += num; num = 0; } else { num = num*10 + (str[i]-'0'); } } sum += num; printf("Sum of all values in "); printf(" CSV[%s] : %d",str,num); return 0; } 위의 코드는 5장에서 작성했던 CSV 코..