자바스크립트 기초, git 기초

현지·2025년 9월 24일
0

자바스크립트 클래스

자바스크립트에선 클래스를 처음 써 보았는데 자바와는 달리 먼저 필드를 선언해주지 않아도 this.name = name와 같이 생성자에서 초기화하는 코드만 있으면 자동으로 필드가 생성된다. 그러나 가독성을 위해 코드에서는 클래스 상단에 필드를 선언해주었다.

match() 함수

문자열에서 정규표현식(Regex) 과 일치하는 부분을 찾아주는 함수

  1. 정규표현식에 g 플래그가 없는 경우
    • 그룹(전체 매칭된 문자열)을 포함한 첫 번째 일치 정보를 배열로 반환
const str = "월10-13";
const result = str.match(/([가-힣]+)(\d+)-(\d+)/);
console.log(result);

// [
//   '월10-13',
//   '월',
//   '10',
//   '13'
// ]
  1. 정규표현식에 g 플래그가 있는 경우
    • 일치한 문자열들만 배열로 반환 (그룹은 안 줌)
const str = "a1 b2 c3";
const result = str.match(/\d/g); // 숫자 찾기 (g: 전체 탐색)
console.log(result); // ['1', '2', '3']

구조 분해 할당

배열이나 객체에서 값을 추출해서 변수에 한 번에 할당하는 문법

const arr = ["A", "월10-11 / 화10-11"];

const [attendee, rawTime] = arr;

console.log(attendee); // "A"
console.log(rawTime); // "월10-11 / 화10-11"

git의 흐름

  • git clone 명령을 사용해 원격 리포지토리를 로컬 리포지토리에 복사하여 로컬 저장소를 생성한다.
  • 복사한 위치에 .git폴더가 들어간 폴더가 생성된다.
  • 로컬 저장소의 해당 폴더에서 작업한 파일들을 git addgit commit을 통해 버전 관리가 가능해진다.
  • git push origin main를 통해 로컬 저장소에서 커밋 내역을 서버로 보내고, 서버는 받은 커밋을 저장하고 HEAD를 이동시켜 새로 수정된 파일을 기존 원격 저장소의 메인 브랜치에 반영한다.

git 내부 동작

  • Working directory안에 있는 파일들 중에서 git add 된 파일은 Staging area로 등록되어 깃이 해당 파일을 버전으로 관리함(tracked 상태가 됨).
  • git add시, 파일 내용을 바탕으로 blob객체가 생성되어 SHA-1 해시가 계산되고, 그 해시값을 기준으로 .git/objects/ 디렉토리에 blob객체가 저장된다. (앞 2자리는 디렉토리 이름, 나머지 38자는 파일 이름으로 사용)
  • 이때 이에 대한 포인터 정보를 .git/index에 기록한다.
  • Git은 내용 기반 저장 방식으로 해시된 값을 사용하므로, 파일의 내용이 동일한 경우 똑같은 해시값이 생성되고 .git/objects에 중복 저장되지 않는다.
  • git commit시, tree 객체가 생성되어 디렉토리 구조(파일명, blob 해시 등)를 저장하고, commit 객체가 생성되어 해당 tree, 작성자, 메시지 등을 저장한다. 이 객체들도 .git/objects에 저장되어 HEAD 포인터는 이 새로운 commit을 가리키게 된다.

VSCode와 터미널 차이

  • VSCode의 터미널과 외부 터미널은 기본적으로 동일한 실행 환경을 사용
  • 터미널은 CLI인 반면에 VSCode는 GUI와 결합되어있어 디버깅, 버전관리 등의 기능이 용이함.
  • VSCode는 IDE 환경으로 보조 기능이 강화된 실행 환경
    • IDE란? -> 통합 개발 환경
    • 코드 에디터, 빌드 도구, 디버거 등 다양한 기능들을 제공하는 개발용 도구
profile
헤맨만큼 내 땅이다

0개의 댓글