
뭔가 정말 개발자가 할 것 같은 전문적인 스멜이 나는 것을 배웠다. CLI, 텍스트 터미널을 통해 사용자와 컴퓨터가 상호작용하는 방식을 말한다. 터미널은 입출력을 가능하게 해주는 소프트 or 하드웨어를 뜻하는데 나는 보고 이것 저것해보면서 나와 컴퓨터의 채팅창이라는 생각이 들었다. 내가 컴퓨터한테 원하는 걸 채팅으로 치면 컴퓨터가 그걸 실행시켜서 대답해준다느 느낌을 받았다. CLI의 장점으론 빠르고 강력하고 접근성이 좋다. 서버관련 작업을 할 때 유용하다고 한다!
폴더? 디렉토리?
언뜻봤을 때 디렉토리가 뭔가 좀 더 있어보이고 어렵고 전문적으로 보였다. 하지만 찾아보니 디렉토리는 파일을 묶어놓은 끈 같은 느낌이고 폴더는 그릇이라고 보면 된다. 폴더에는 파일뿐만아니라 특수한 환경(네트워크, 내컴퓨터 등)까지 담을 수 있기 때문이다.
루트 디렉토리(/): 폴더 경로에서 뒤로 계속가면 나오는 폴더가 나온다
홈 디렉토리(~): 사용자 폴더에서 username 폴더
rm을 통해 데이터를 삭제하면 휴지통에 가지 않는다!
sudo: 관리자 권한 부여 *가능한 최소로 사용하자
chown owner: group file 파일의 소유자 확인
개발은 혼자 할 수 없다. 물론 모든걸 잘하면 혼자서 할 수 있겠지만 그래도 효율성이 많이 떨어질 것이다. 그래서 개발을 하기 위해서 다들 협업을 해야하기 때문에 코드를 수정하는 행위는 결코 피할 수 없다. 협업을 하기 위해선 내가 수정한 내용을 파트너가 알아야하고 파트너가 수정한 내용을 내가 알아야한다. 그리고 실수를 했을 때 이전 내용을 불러와야 할 때도 있다. 이러한 과정을 수월하게 도와주는 것이 버전관리 시스템이다.
Working directory에서 작업 -> Staging Area에 추가(git add, 아무리 add해도 Git저장소에 영향 x, 징검다리 역할, 한 곳에 몰아서 기록하지 않고 나누어 기록 할 수 있어 버그를 추적하기 수월) -> Local Repository에 추가(git commit, working directory에 변경된 사항은 적용 x, 오직 Staging Area의 내용만 가져옴) -> Remote Repository로 보내기(git push, 수정한 clone을 보내줌, 최종본 제출 느낌)
git add 파일명
git commit -m "메세지"
git reset HEAD^: 파일명
git push origin(remote) master(branch)
git pull origin master
Branching: 가지치기
Merging: 가지합치기
Master Branch: 큰 맥락
Develop Branch: 개발과정 (테스트 서버 느낌)
Feature Branch: 하나 하나의 기능
•
•
•
필요에따라 Branch 추가(위로 갈 수록 안정성을 향상시켜야 한다)
새롭게 알게 된 사실
toString() vs String()
두개 다 숫자를 문자열로 바꿔주는건 맞다. 하지만 toString은 숫자를 입력하면 진법으로 변환해준다.
ex)
let num = 123;
console.log(num.toString(2)) // "1111011"
절대경로: 집 주소, 사이트 주소같은 걸 뜻한다
대전 서구 둔산북로...
http://gogole.com
상대경로: 현재 위치한 곳에서 생성한 경로
Desktop/Velog/Jay에 위치하고 있으면 Velog는 상대적으로 전 폴더(부모폴더)가 된다
rm -r: 폴더삭제
GitHub에서 zip으로 다운받으면 터미널을 통해 작업할 수 없다(.git)이 없어서
권한이 없는건가?
true: 1로 취급한다
false: 0으로 취급한다
ex)
let num = 123;
console.log(num + true) // 124
let isItTrue = num + false
console.log(isItTrue) // 123
num === isItTrue // true
const는 새로운 요소를 추가, 삭제가 불가능하다
하지만 객체를 const로 선언하면 속성을 추가하거나 삭제 가능하다
..why? 객체는 주소를 할당하고 있기 때문!