파이썬 2일차(스캠)
Markdown
Command Line Intrface
명령어를 통해 사용자와 컴퓨터가 상호 작용하는 방식
Kernel,커널 : 운영체제의 핵심이 되는 컴퓨터 프로그램
shell 프로그램 : 인터페이스의 역할을 코드로 하는 것(kernel과 user 사이)
인터페이스 : 사용자와 커널 사이에 대화를 하는것(대체로 GUI)
우리는 이걸 CLI 로 실행라인에서 하겠다.
왜 CLI를 사용해야 할까?
GUI는 CLI에 비해 사용하기 쉽지만 단계가 많고 성능을 상대적으로 더 많이 소모
많은 서버 / 개발 시스템이 CLI를 통한 조작 환경을 제공함
. : 핸재 디렉토리
.. : 현재의 상위 디렉토리 (부모)
~ : 자기홈 // 주로 리눅스 or 서버 에서만 사용, 윈도우에서는 사용 잘 안함
- Unix : 이 운영체제를 위해 C 언어가 만들어짐, 유료
- Linux : 유닉스가 비싸서 만들어진 단어, 유닉스 계열 운영 체제, 오픈소스임, bash가 리눅스용 쉘
- C 언어 : D 언어를 계승한것
- B 언어 : B 언어를 계승한 것
- GNU(그누) : GNU’s Not UNIX 의 줄임말, 운영체제의 하나이지 컴퓨터 소프트웨어의 모음집
Git 도 리누스 토르발스가 만듬(리눅스 만든사람)
git bash :
ls : 현재 디렉토리의 리스트보기
ls -al : 현재 디렉토리의 파일 자세히 보기
touch : 파일 만들기
mkdir : 하위 디렉토리 만들기
cd 디렉토리 : 디렉토리로 이동함
pwd : 현재 위치
rm : 파일 삭제(디렉토리는 삭제 못함), 리눅스는 삭제하면 끝 == 신중하게 사용해야함
- -r : 리커시브, 디렉토리 삭제하기위해 사용
.파일이름 : 숨김 처리 됨
ctrl + l : 터미널 로그 클리어
drwxr-xr-x
절대 경로:
root에서부터 시작하는 것
상대경로 ( 주로 사용됨)
현재 작업하고 있는 디렉토리를 기준으로 계산된 상대적 위치를 작성하는 것
파일시스템
FAT : File Allocation Table, 이전의 파일 시스템
FAT32: 이전의 파일 시스템
NTFS : New Technology File System, C드라이브 속성 보면 나옴, 윈도우는 이 시스템 사용
터미널에서
//상대 경로 식, 해당 폴더내에서 실행
python test.py // VScode에선 가급적 이런식으로 실행해라
> hello
=> PATH를 설정해놨기 때문에, 파이썬 실행기가 같은 파일안에 없어도 실행이 가능함
// 절대 경로 식, 에디터나 IDE에서 실행 버튼 눌렀을 때
C:/Users/SSAFY/AppData/Local/Programs/Python/Python39/python.exe c:/Users/SSAFY/Desktop/algorism/CLI/test.py
> hello
=> 코테할때 비추하는 방법, 상대경로를 고려하지않기때문에 미디어파일들 간의 오류 발생할 수 있음
오늘의 CS
C++ : 학자들이 만든것
- Visual C ++
C++++ = C# : 회사들이 만든것, 자바의 장점과 C++의 장점을 가져왔다고 주장함, 윈도우 프로그램 만들때 쉬움(마이크로소프트에서 만들었기 때문)
Oracle이 MySQL을 인수했음, JAVA 개발회사 인수함
코드의 ‘변경 이력’을 기록 하고 ‘협업’을 원활하게 하는 도구
git은 Local과 Remote 둘다 포함하는 개념
버젼관리 가 중요 키워드
Local
Remote : github, gitlab 등
Local 의 흐름
중앙 vs 분산
중앙 집중식 : 버젼은 중앙 서버에 저장되고, 중앙 서버에서 파일을 가져와 다시 중앙에 업로드
분산식 : 버젼을 여러개의 복제된 저장소에 저장 및 관리, 한 서버가 터져도 다른서버가 멀쩡하니 괜찮다.
- 중앙 서버에 의존하지 않고도 동시에 다양한 작업을 수행할 수 있음
- 개발자간의 작업 충돌을 줄여주고, 개발 생산성 향상
- 중앙 서버의 장애나 손실에 대비하여 백업과 복구가 용이
- 인터넷에 연결되지않은 환경에서도 작업을 계속할 수 있음
- 변경 이력과 코드를 로컬 저장소에 기록하고, 나중에 중앙 서버와 동기화
역할
코드의 버젼(히스토리)를 관리
개발되어 온 과정 파악 및 이전 버젼과의 변경 사항 비교
흐름도
- Working Directiry : 실제 작업 중인 파일들이 위치하는 영역
- Staging Area : Working Directory에서 변경된 파일 중, 다음 버전에 포함시킬 파일들을 선택적으로 추가하거나 제외할 수 있는 중간 준비 영역
- (Local) Repository : 버전 이력과 파일들이 영구적으로 저장되는 영역, 모든 버전과변경 이력이 기록됨
- (Remote) Repository
흐름도
git init
: 로컬 저장소 설정(초기화) ⇒ git의 버전 관리를 시작할 디렉토리에서 진행
중첩해서하면안됨
git add
: 변경사항이 있는 파일을 추가, 하나~다수 가능
git commit
: 해당 시점의 버전을 생성하고 변경 이력을 남기는 것
폴더에서 git init
하면 깃이 생성되고, .git
폴더 생성 됨(숨김파일로 되있음)
상용버젼이 master 로 표현됨

git status
: 현재 로컬 저장소의 파일 상태 보기

관리가 안되서 보여줄게 없다.
git add .
후 git status

git commit -m ‘first commit’
최초 git 설정 시 ( 언제든지 변경 가능)
git config —global
user.email
“메일주소”
git config —global
user.
name “유저네임”
git config —global -l
: 내용 확인 (-l 은 -list 의 약자)
git log
: commit history 확인 후 q
로 나가기 git log --oneline
한줄로 나오게 만듬
문서 수정 후 git status

git init
주의사항
- git 로컬 저장소 내에 또다른 git 로컬 저장소를 만들지 말 것
- 즉, 이미 git 로컬 저장소인 디렉토리 내부 하단에서 git init 명령어를 다시 입력하지 말 것
- git 저장소 안에 git 저장소가 있을 경우 가장 바깥 쪽의 git 저장소가 안쪽의 git 저장소의 변경사항을 추적할 수 없기 때문
로컬
Markdown
일반 테스트로 문서를 작성하는 간단한 방법
주로 개발자들이 텍스트와 코드를 작성해 문서화하기 위해 사용
확장자 명 .md
https://www.notion.so/ko-kr/help/keyboard-shortcuts
기준 : MarkText
https://github.com/marktext/marktext
각종 태그들
# : Header 태그
1. : 순서가 있는 리스트
- : 순서가 없는 리스트
```: 코드블럭
` : 텍스트에서 한 줄 내외의 코드를 쓰고싶을 때
** : 굵게 (볼드체)
* : 기울림 (이텔릭)
> : 블럭쿼터 (주석)
--- : 전체 한 줄 긋기
~~ : 취소선 // notin에선 안됨
[링크이름](링크경로 or 링크 주소) // notin에선 안됨
 // notin에선 안됨
각 종 단축키
ctrl + E : 마크다운 적용/ 적용 X 온오프
ctrl + L : 이미지나 링크 틀을 만들어주는것
Code block & Inline code block
일반 텍스트와 달리 해당 프로그래밍에 언어에 맞춰서 테스트 스타일을 변환
개발에서 마크다운을 사용하는 가장 큰 이유
```: 코드블럭
` : 텍스트에서 한 줄 내외의 코드를 쓰고싶을 때
print
링크(link) & 이미지
특정 주소를 사용해 다른 페이지로 이동
이미지의 너비와 높이는 마크다운으로 조정가능
ctrl + L : 링크 틀 ( []() ) 를 만들어줌
[google](https://www.google.com)

- 절대 경로 / 상대경로 잘 구분하자
글씨체
** : 굵게 (볼드체)
* : 기울림 (이텔릭)
~~ : 취소선
> : 블럭쿼터 (주석)
dfadfa
굵게 기울기 ~취소선~