[카카오테크 부트캠프] 5/14 TIL: Git, GenAI, 객체지향

주영진·2026년 5월 14일
post-thumbnail

1. Git

Git은 컴퓨터의 변경사항을 추적하고 버전을 관리하기 위한 도구로, 여러 사용자 간의 파일 작업을 조율하는 분산 버전 관리 시스템이다. GitHub는 이 Git 저장소를 지원하는 오픈소스 웹 서비스이다.

1-1. 버전 관리 시스템의 종류

  • 중앙 집중식 버전 관리 시스템 : 여러 사용자가 하나의 서버에서 파일을 수정하는 방식. 네트워크 의존도가 높아 오프라인 환경에서 취약하다. (ex. Google Docs)
  • 분산 버전 관리 시스템 : 프로젝트의 전체 히스토리를 각 사용자의 로컬에 복제하여 네트워크 없이도 버전 관리가 가능한 방식. Git이 이에 해당한다.

1-2. 주요 Git 명령어

명령어설명
git init로컬 디렉토리에 Working Directory 생성
git remote원격 저장소 연결 및 관리
git add파일을 Staged 상태로 변경
git commitStage의 변경사항을 History에 저장
git push변경사항을 원격 저장소에 업로드
git clone원격 저장소를 로컬에 복제 (자동으로 .git 생성, init 불필요)
git pull원격 저장소의 최신 내용을 로컬로 가져와 병합
git log커밋 기록 확인
git diff파일 변경사항 확인
git stash변경사항 임시 저장
git restore커밋되지 않은 변경사항을 마지막 상태로 되돌림
git revert이미 push된 특정 커밋을 취소 (히스토리 보존)
git reset특정 커밋 상태로 완전히 되돌림

💡 git push 전에 git pull을 먼저 하는 습관을 들이자.
💡 git add .은 현재 위치 하위의 모든 파일을 staging하므로 보안 파일이 포함되지 않도록 주의.

1-3. Git Branch 병합 방식

  • 3-way merge : 두 브랜치의 최신 커밋과 공통 조상 커밋, 총 3개를 참고하여 병합하는 정석적인 방식
  • Fast-forward merge : main 브랜치에 변경사항이 없을 때, 작업 브랜치를 그대로 main으로 전진시키는 방식
  • Squash and merge : 작업 브랜치의 여러 커밋을 하나로 압축(squash)한 뒤 병합하는 방식

1-4. origin vs upstream

  • origin : 현재 로컬에서 작업 중인 원격 저장소 (보통 본인 fork 레포)
  • upstream : 변경사항의 기준이 되는 원본 저장소 (fork해온 원본 레포)

git push -u origin main-u--set-upstream의 약자로, 로컬 브랜치와 원격 브랜치를 추적 관계로 연결한다.


2. Generative AI

  • Harness Engineering : 단순 프롬프트 엔지니어링을 넘어, AI 모델을 직접 제어하고 행동 제약을 설정하며 개선 순환을 포함하는 시스템 설계 방식. Context Injection, 할루시네이션 방지 가이드라인, Feedback Loop의 세 요소로 구성된다.

  • 생각의 사슬 / 생각의 나무 (Chain/Tree of Thought) : AI가 문제를 단계적으로 분석하고 추론할 수 있도록 프롬프트에 단계적 지시를 내리는 프롬프트 엔지니어링 기법


3. 객체지향 프로그래밍 (OOP)

절차지향 vs 객체지향

  • 절차지향 : 코드를 순서대로 절차적으로 실행
  • 객체지향 : 공통 요소를 묶은 클래스를 기반으로 객체(속성 + 동작)를 생성하여 모듈화

주요 개념

  • 생성자 : 객체 생성 시 자동으로 호출되어 초기화를 수행하는 특수 메서드
  • 메서드 vs 함수
    • 메서드 : 클래스 내부에 종속되어 동작
    • 함수 : 클래스 외부에서 독립적으로 동작

상속 (Inheritance)

자식 클래스가 부모 클래스의 필드와 메서드를 물려받아 재사용 및 확장할 수 있는 기능. 객체지향 4대 원칙 중 하나.

  • 조건 : 반드시 ~is a 관계가 성립해야 함 (자식은 부모다)
  • 주체 : 요청의 주체는 자식 클래스
  • 개념 : 부모의 필드 및 메서드가 자식에게 복사되는 방식
profile
'개발사(社)' (주)영진

0개의 댓글