ETC
-
Github와 Repository란? Github에서의 협업에 관한 모든 것ETC/Git & Github 2024. 1. 26. 02:09
GitHub와 Repository GitHub는 Git을 기반으로 하는 웹 기반 호스팅 서비스로, 개발자들이 버전 관리 및 협업을 위해 사용하는 대표적인 플랫폼이다. GitHub에서의 저장소는 개발 프로젝트의 모든 파일과 폴더, 커밋 기록, 이슈, 브랜치 등의 정보를 포함한다. GitHub에서의 협업 GitHub를 통해 다수의 개발자가 함께 작업할 수 있다. 보편적인 방법으로는, 각 개발자는 별도의 브랜치를 만들어 개발하고, pull request로 메인 브랜치로 병합해서 변경 사항을 통합하는 과정으로 개발한다. 1. GitHub의 이슈 GitHub의 이슈(Issue)는 버그 리포트, 기능 제안, 개발자들 간의 토론 등을 추적하는 데 사용된다. 미션의 체크포인트와 같은 방식으로 사용해도 좋다. 2. Gi..
-
버전관리 도구 Git이란? Git의 내부구조 파헤치기ETC/Git & Github 2024. 1. 26. 02:04
VSC & Git https://git-scm.com/book/ko/v2/시작하기-버전-관리란%3F 버전 관리 시스템(VCS)은 소스 코드의 변경 이력을 관리하고, 팀원 간의 협업을 용이하게 해주는 도구이다. VCS는 크게 로컬 VCS, 중앙집중식 VCS, 그리고 분산 VCS로 나눌 수 있다. Git은 분산 VCS로서, 각 개발자의 로컬 환경에 모든 프로젝트의 전체 버전과 변경 이력을 복제하여 관리한다. Git의 내부 구조 지옥에서 온 GIT : git의 원리 소개 Git - Git 개체 Git의 내부구조 Git은 내부적으로 Content-addressable 파일시스템으로 동작한다. 이는 데이터를 Blob(내용)과 Tree(디렉토리 구조) 객체로 저장하며, 커밋(Commit) 객체는 변경 사항과..
-
[C,C++] C에서 함수의 데이터 전달 방법(Call-by-Value, Call-by-Reference)ETC/[C, C++] 2022. 4. 25. 00:24
값을 전달하는 법(Call-by-Value) ex) 매개변수의 값을 증가시키는 함수 1. 증가할 값의 복사본을 매개변수로 넘겨주고 2. 함수에서 새로운 주소에 있는 변수에 그 값을 입혀서 연산을 진행한 다음 3. 반환 값이 있을 시 그 증가된 값을 기존 변수에 저장. 기본적으로 함수를 호출할 때 데이터를 전달하는 방법은 값의 복사본을 주고 사용하고 다시 받아오는 방법이다. 주소를 전달하는 법(Call-by-Reference) void adding(int *pa){ *p+=5; } int main(){ int a=0; adding(&a); printf("%d\n",a);/5 } 이것도 사실 참조자가 아니라 주소를 가지고 넘기는 것이기 때문에 Call-by_Reference라 보기 어렵고 이것 또한 Call..
-
[C,C++] 변수의 종류(지역, 전역, 정적 ,레지스터)ETC/[C, C++] 2022. 4. 24. 23:55
지역변수 함수 내 시작 부분에서 선언 함수가 끝날 때까지 사용 가능 함수가 호출돼서 명령이 실행되면 메모리에 잡혔다가 함수가 반환될 때 사라짐. 자동 초기화는 되지 않고 쓰레기 값이 있음. int main(){ int a=3, b=8; printf("%d, %d\n",a,b);//3 8 {//지역변수 temp 설정 int temp; temp=a; a=b; b=temp; } printf("%d, %d\n",a,b);//8 3 return 0; } 두 값을 바꾸려고 {} 안에서 temp라는 변수를 임시적으로 사용하는 모습. 전역 변수 함수 바깥에서 선언, 프로그램 시작할 때 저장공간 확보되고, 끝날 때 저장공간 사라짐. 선언하면 자동으로 0으로 초기화됨. 모든 함수들이 자유롭게 데이터 공유 단점 프로그램 오..
-
[C,C++] 문자열 함수(strcpy, strncpy, strlen, strcat, strncat, strcmp, strncmp)ETC/[C, C++] 2022. 4. 22. 22:03
strcpy() #include char str1[20]="watermelon"; char str2[20]="orange"; char *sp1="melon"; char *sp2=str2; printf("%s\n",str1); //strawberry strcpy(str1,"orange");//첫번째: 저장할 위치, 두번째: 복사할 문자열의 위치 strcpy(str1,str2);//orange strcpy(str1,sp1);//melon strcpy(str1,sp2);//orange strcpy(sp2,sp1);//melon printf("%s\n", strcpy(str1, "orange")); //orange strcpy() 두 번째 인자에 문자열을 넣어줘도 어차피 첫 번째 문자의 주소로 바뀌니까 문자열을..
-
[C,C++] 문자열과 포인터ETC/[C, C++] 2022. 4. 22. 21:05
포인터와 문자열 출력(printf) int main(){ printf("%s", "rain"); } 컴파일러는 rain을 문자열 자체로 처리하는 것이 아닌 별도의 메모리에 보관을 하고, 시작 위치 값으로 처리해버린다. [0] [1] [2] [3] r a i n \0 문자열은 그래서 항상 첫번째 문자의 주소 값으로 바뀌게 된다. int main(){ printf("%c", *"rain"); } 문자열은 주소 값이니까 간접 참조 연산자 *를 붙일 수 있게 된다. 따라서 출력 값: r int main(){ printf("%c", *("rain"+3)); } 주소에 + 3을 하게 되면 가리키는 공간의 형태(char) 만큼 곱해서 더해짐. r의 주소 값 +(3*4)가 되는 것이다. 따라서 출력 값: n 여기서 *..