[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고 엔코아 AI 캠퍼스에서 첫 주는 Orientation과 하루 일정의 교육이 이루어 지다 보니, 이번 주가 본격적인 첫 주라고 봐야 할 것 같다. 정말 시간이 눈 깜짝할 사이에 지났다. 이번 주는 AI 개발자의 가장 기본이 되는 Python Programming 능력을 다지고, 실제 데이터 분석 의 핵심인 데이터 수집과 전처리 기술을 습득하는 매우 중요한 시간이었다. Python의 핵심 문법부터 라이브러리를 활용한 실무 기술까지, 적지 않은 양을 학습했고, 학습한 것들을 정리해 본다. 1. Python Programming 문법 가장 먼저 프로그래밍의 기초가 되는 변수와 제어문을 시작으로 코드의 재사용성을 높여주는 함수와 복잡한 데이터를 효율적으로 다루기 위한 자료구조를 학습했다. (1) Python 핵심 문법 정리 - 제어문 : if, for, while 등 조건에 따른 흐름 제어 및 반복 작업 수행 - 자료구조 : 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set) 등 데이터 특성에 맞는 저장 및 관리 - 함수(Function) : 코드의 논리적 단위 분리, 매개변수와 반환 값을 활용한 코드 재사용성 극대화 # 자료구조와 함수 활용 예시 def process_data(data_list): result = {} for item in data_list: if item not in result: result[item] = 1 else: result[item] += 1 return result data = ['apple', 'banana', 'apple', 'orange', 'banana'] count_result = process_data(data) print(count_re...

안전한 협업을 위한 git 브랜치(Branch) 가이드

안전한 협업을 위한 git 브랜치(Branch) 가이드

git의 핵심 기능 중 하나인 '브랜치(Branch)'는 여러 작업을 동시에 진행하거나 협업할 때 필수적인 개념이다. 개발을 하다 보면 작업 중인 기능 외 다른 버그 수정의 필요성이 있거나, 기능을 실험적으로 구현해 보고 싶은데 메인 코드가 손상되면 안되는 상황에서 사용하는 것이 바로 '브랜치(Branch)'이다.

브랜치(Branch)를 활용해 안전하게 버전을 관리하고 발생할 수 있는 충돌(Conflict)을 해결하는 방법에 대해 확인해 보자.


1. 브랜치(Branch) 정의

브랜치는 '나뭇가지'라는 뜻이다. 메인 코드 줄기(Main/Master)에서 갈라져 나와, 독립적인 작업 공간을 만드는 것이다.

브랜치를 사용하면 여러 명이 협업해서 프로젝트를 작업해도 서로의 코드에 영향을 주지 않는다. 내 브랜치에서 코드를 엉망으로 만들어도, 메인 코드는 깨끗하게 유지된다. 이처럼 브랜치 만큼 안전한 실험 공간은 없다.


2. 브랜치 활용 3단계 핵심 명령어

브랜치를 다루는 가장 기본적인 흐름은 다음 3단계이다.

(1) 브랜치 생성 및 이동

git branch <이름>  으로 생성하고,  git checkout <이름>  (또는  git switch <이름> )

(git bash) branch - checkout
(2) 독립적인 작업

- 이동한 브랜치에서 코드를 수정하고 index에 등록(Add)하고 커밋(Commit) 한다. 이 커밋들은 메인 브랜치와는 별개의 작업물이 된다.

(3) 병합(Merge)

- 작업이 완료되면 메인 브랜치로 이동해  git merge <이름>  실행을 통해 작업을 합친다.

(git bash) Merge


3. 브랜치 병합 시, 발생하는 충돌(Conflict) 해결

작업(브랜치)을 합칠 때, 서로 다른 사람이 같은 파일의 같은 부분을 수정했다면, git은 충돌 부분의 해결이 될 때까지 합치는 작업을 멈춘다.

충돌은 다음 단계를 거쳐 해결한다.

(1)  git status  로 충돌 파일 확인.

(2) 파일을 열어  <<<<<<< HEAD  와  >>>>>>>  사이의 코드를 확인.

(3) 원하는 코드만 남기고 기호 부분을 삭제 후 저장.

(4)  git add  와  git commit  으로 수정 완료를 기록.

이 과정은 코드를 리뷰하고 최종 상태를 결정하는 '의사 결정 과정' 이다.

(git bash) merge failed


4. GitHub와 브랜치 연계 (Pull Request의 중요성)

GitHub에서 브랜치를 사용할 때의 핵심은 Pull Request이다. 로컬 컴퓨터에서 작업한 브랜치를 GitHub에 Push한 뒤, 관리자에게 브랜치 병합(Merge)를 요청하는 과정이다.

@ 코드 리뷰

-  PR(Pull Request) 과정에서 팀원들이 코드를 보고 의견을 남긴다. 이를 통해 버그를 미리 잡고 코드의 품질을 높일 수 있다. 실무에서는 이 PR 문화가 곧 팀의 실력이 된다.

(vscode) code review


브랜치(Branch)를 배웠을 때, 작업을 불필요하게 복잡하게 만든다고 생각했었다.

하지만, 팀 프로젝트를 하게 된다면 어떨까? 

팀 프로젝트를 하는데 브랜치가 없다면 메인 코드가 과연 안전할 수 있을까?

그렇지 않을 것이다. 아무리 조심해서 작업한다고 해도 메인 코드가 온전히 안전한 상태를 유지한다는 것은 불가능 할 것이다.

브랜치를 나누고, PR을 올리고, 팀원들과 코드를 리뷰하는 과정은 처음엔 번거롭고 불편하게 느껴질 수 있지만, 이 과정 덕분에 팀 프로젝트는 더욱 안정화 되고, 팀원 모두 성장할 수 있을 것이다.

충돌이 났을 때 기계적으로 기호를 지우지 않고, 팀원들의 코드를 분석해 보고 개발 의도 등을 고민해 보면 브랜치는 단순한 도구가 아니라, 협업을 통해 더 나은 코드를 만드는 과정 그 자체라는 것을 알 수 있다.

앞으로 혼자 작업을 하더라도 브랜치를 나누고 스스로 PR을 하는 습관을 가져 보자.

#branch #checkout #git #github #pullrequest #push #add #commit #codereview #status #switch #merge #conflict

댓글

이 블로그의 인기 게시물

[SK네트웍스 family 엔코아AI캠퍼스] 나의 목표는 머신러닝 엔지니어다.

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 3주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고