240312(화)
🌱 성장일지 9.0
책 행복한 이기주의자(웨인 다이어)
의 내용에 자극받아 시작하는 소박한 성장기록
- 살아있는 꽃과 죽은 꽃은 어떻게 구별하는가?
- 성장하고 있는 것이 살아 있는 것이다.
- 생명의 유일한 증거는 성장이다!
🧩 (10.0) 매일 공부한 것, 새롭게 알게 된 것, 간단하게라도 작성하고 싶은 것을 주관적인 생각과 함께 편하게 작성하자! 그리고 그 중에서 괜찮은 내용을 잡동사니에서 자세히 다루자!
🔨 개발관련
C 프로그래밍
프로그래밍 언어란
- 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
- 사람 - 컴파일러 - 컴퓨터
- 사람: 인간의 언어, C언어 사용 가능
- 컴파일러: C언어, 기계어 사용 가능
- 컴퓨터: 기계어, 전기 신호 사용 가능
C언어는 컴파일러와 소통하기 위한 언어
컴파일러란
- 프로그래밍 언어로 작성된 소스코드를 기계어로 번역해주는 프로그램
C언어는 UNIX 운영체제 구현을 위해 만들어진 언어이다.
컴퓨터 기종 간 호환성을 가지면서(다양한 컴퓨터에서 사용 가능하면서) 하드웨어를 직접 제어할 수 있는 언어가 필요했다고 한다.
C언어 특징
- 프로그램 이식성이 높다.
- 간단한 문법 표현으로 함축적인 프로그래밍이 가능하다.
- 저급언어의 특성을 가진 언어이다.
C 프로그램 작성 단계
- 코딩 단계: 주어진 문제에 대한 설계를 바탕으로 소스코드를 작성하여 소스파일을 생성한다.
- 소스파일은 확장자가
.c
인 파일이다. - 요즘의 컴파일러는 c, c++을 모두 지원한다. 그래서 확장자로 어떤 언어인지 구분한다.
- 컴파일 단계: 소스파일을 컴파일러를 통해 기계어로 번역하여 목적파일을 생성한다.
- 목적파일은 확장자가
.obj
인 파일이다. - 목적파일은 기계어(0과 1)로 된 파일이다.
- 목적파일은 실행파일이 아니다.
- 링크(링킹) 단계: 여러 목적파일들과 라이브러리 파일을 링커를 통해 하나의 실행파일로 만든다.
- 실행파일은 확장자가
.exe
인 파일이다. - 실행파일은 기계어로 된 파일이다.
- 실행파일은 컴퓨터에서 실행할 수 있는 파일이다.
Git
Git의 Tag
- 특정 커밋에 대한 참조를 만들어주는 것
- 커밋에 대한 참조를 만들고 이후 커밋에 따라 참조가 옮겨가지 않는다.
.git/refs/tags
디렉토리에 저장된다.
# 태그 생성 git tag <tagname> # 태그 삭제 git tag -d <tagname>
커밋에 대한 참조(이름)을 만들어 두면, 나중에 해당 커밋으로 돌아가기 쉽다.(특히나 이전 커밋으로 reset 쳤다가, 다시 돌아가고 싶을 때 유용하다.)
Git의 Branch
- 마찬가지로 특정 커밋에 대한 참조를 만들어주는 것
- 커밋에 대한 참조를 만들고 이후 커밋에 따라 참조가 옮겨간다.
.git/refs/heads
디렉토리에 저장된다.- 특정 커밋에서 여러 브랜치를 생성할 수 있다.
.git/HEAD
파일에 HEAD가 가리키는 브랜치가 저장된다.(refs: refs/heads/main
)
# 브랜치 생성 git branch <branchname> # 브랜치 생성하면서 HEAD를 해당 브랜치로 이동 git switch -c <branchname> # 브랜치 삭제 git branch -d <branchname>
하나 기억할 점! Git DB에서는 CRUD 중 U와 D가 없다. 그냥 C와 R만 있다. 즉, 언제든 다시 복구할 수 있다는 뜻이다.
🥳 감정관련
방통대 강의와 교재가 생각보다 괜찮다. 빠듯하게 들어야되겠지만, 그래도 재미있게 들을 수 있을 것 같다. 매번 배울수록 모르는 게 참 많다는 걸 느낀다. 배우는 행위는 매일 조금씩 꾸준히지만, 성장은 계단식이라는 것을 기억하자.