카테고리 없음

ASAC 빅데이터 분석가 과정 13일차 (24.12.20)

junslee 2024. 12. 29. 23:46

1. Git & Github 활용 특강

  • Git의 이해 및 Github 활용, 실습

강사 소개 - 김태진

  • 두들린 ML Engineer
    - 그리팅 (Greeting)

강의 목표

  • Git이 무엇이고, 왜, 무엇을 위해, 어떤 상황에서 사용해야 하는지 이해
  • Git 기본 명령어를 이해하고 활용
  • Github에서 Repository를 만들고 여러 사람들과 협업하는 방법을 이해

버전(Version)

  • MAJOR . MINOR . PATCH (ex. version 1.3.1)

  • MAJOR : incompatible API changes
  • MINOR
  • PATCH

  • Releases : 배포하다, 출시하다, 릴리스하다

버전(Version) 관리가 필요한 이유

  • History 관리, 중간 저장 및 이전 위치 복구의 역할을 한다.

  • 버전 관리가 필요한 이유
    - 중간에 잘못되었을 때 되돌아가기 위해
    - 대체 이 코드는 누가 짠 건지 알기 위해
    - 코드가 어떻게 변경이 된 것인지,
      어떻게 개발이 되었는지 알기 위해

참고) Git 커밋 메시지 규칙

Git 커밋 메시지 규칙

 

Git 커밋 메시지 규칙

제목과 본문을 빈 행으로 구분한다.제목은 50글자 이내로 제한한다.제목의 첫 글자는 대문자로 작성한다.제목 끝에는 마침표를 넣지 않는다.제목은 명령문으로 사용하며 과거형을 사용하지 않

velog.io


버전(Version) 관리

  • 1인 개발은 로컬 컴퓨터에서 관리하는 것만으로 충분

  • 하지만 여러명이 같이 관리한다면..?

Git

  • 분산 버전 관리 시스템, 여러 명의 개발자가 하나의 소프트웨어를 효율적으로 개발 및 관리를 도와준다
  • 프로젝트 파일의 변경 사항을 추적하고 팀원들과 협업을 원활하게 지원한다

Git은 왜 어려운가?

  • 서로 다른 개발자가 추가 혹은 변경한 이력을 하나의 프로젝트로 통합해야 한다.
  • 회사에 들어가 굴러봐야 적응이 된다.

Github

  • Git을 사용하는 소프트웨어 프로젝트를 저장, 관리할 수 있는 원격 저장소, 서비스
  • Git은 버전관리 시스템일 뿐 저장은 어디든지 가능
    (Gitlab / Github / Bitbucket)
  • 버전관리 시스템은 혼자 개발한다 해도 꽤 유용
    - 코드가 모인 저장소는 포트폴리오로 제격이다.

SourceTree

  • SourceTree와 GitHub를 활용하면 명령어 없이도 Git의 주요 기능을 손쉽게 사용할 수 있으며, 팀원들과의 협업을 원활히 진행할 수 있다.
  • SourceTree는 GUI 기반의 Git 클라이언트로, 명령어 대신 시각적으로 Git을 관리할 수 있다. 

정리

- 개인 및 여러 사람들이 하나의 소프트웨어를 효율적으로 개발하기 위한 시스템

- github는 Communication의 창고로 이용할 수 있다.


Github 실습

  • github 설치
  • sourcetree 설치

markdown 문법 익히기

마크다운(Markdown) 사용법

 

마크다운(Markdown) 사용법

마크다운(Markdown) 사용법. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 


Commit

  • 파일 변경 사항을 저장하는 작업
    - 변경 내역에 대한 스냅샷을 생성하며, 각 커밋은 고유한 식별자를 가진다
    - 메시지를 통해 변경 내용을 기록하며, 이후 변경 기록을 추적할 수 있다

Branch

  • 독립적인 작업 흐름을 나타낸다
    - 기본적으로 생성되는 브랜치는 main(또는 master)이며, 새로운 기능 개발이나 버그 수정을 위해 별도의 브랜치를 생성하여 작업한다
    - 브랜치를 사용하면 동시에 여러 작업을 진행하면서 충돌을 최소화할 수 있다

Push

  • 로컬 저장소에서 작업한 내용을 원격 저장소(GitHub)로 업로드하는 작업
    - 팀원들이 작업 결과를 공유받을 수 있도록 업데이트한다.

Pull

  • 원격 저장소의 변경 내용을 로컬 저장소로 가져오는 작업이다
    - 팀원들이 작업한 내용을 통합할 때 사용한다.

Merge

  • 다른 브랜치의 변경 내용을 현재 브랜치에 통합하는 작업이다
    - 충돌(conflict)이 발생할 수 있으며, 이를 해결한 뒤 병합을 완료한다

SourceTree와 GitHub의 연결 과정

  1. GitHub 계정 연동
    SourceTree에서 도구 > 옵션 > 인증으로 이동한다
    계정 추가(Add Account)를 클릭하여 GitHub 계정을 추가한다
    계정 유형: GitHub
    인증 유형: OAuth
  2. 클론(Clone) 또는 저장소 생성
    GitHub 저장소를 복제(Clone): GitHub에서 기존 저장소를 SourceTree로 가져온다
    SourceTree에서 "원격" 탭 선택 > 클론 URL 입력 > 로컬 경로 지정 후 클론 실행
    새 저장소 생성: SourceTree에서 새 로컬 저장소를 생성한 뒤 GitHub에 푸시하여 원격 저장소를 만든다
  3. 브랜치 관리 및 협업
    SourceTree에서 "브랜치" 탭에서 새 브랜치를 생성하고 전환하며 작업을 진행한다
    로컬 브랜치 작업 후, 변경 사항을 커밋하고 Push 버튼으로 원격 저장소에 업로드한다

팀 프로젝트에서의 활용

  1. 초기 설정
    - 팀장이 GitHub에 중앙 저장소를 생성한다
    - 팀원들은 해당 저장소를 SourceTree를 통해 클론하여 작업 환경을 설정한다
  2. 브랜치 전략
    - main 브랜치는 배포 가능한 코드만 포함한다
    - 각 팀원은 개별 작업 브랜치를 생성하여 개발 작업을 진행한다
    기능 추가: feature/기능명
    버그 수정: bugfix/버그명
  3. 작업 흐름
    - 각자 브랜치를 생성하여 작업 시작:
    git checkout -b 브랜치명 또는 SourceTree UI로 생성
    - 작업 완료 후 변경 사항 커밋:
    변경 내용을 확인 후 "Commit" 버튼 클릭
    - 원격 저장소로 Push:
    작업 내용을 팀원들과 공유하기 위해 Push 실행
    - Pull Request 생성:
    GitHub에서 Pull Request(PR)을 열어 코드 리뷰 요청
    - 코드 리뷰 및 Merge:
    팀장이 PR을 확인하고 Merge
  4. 충돌 해결
    - 여러 팀원이 동일 파일을 수정하면 충돌이 발생할 수 있다
    - SourceTree에서 충돌 파일을 확인하고 직접 수정 후 "Resolve Conflicts"를 클릭하여 해결한다
    - 해결된 내용을 커밋하고 Push한다

주의사항

  • 작업 시작 전 Pull: 항상 원격 저장소의 최신 내용을 가져온다
  • 작업 단위 커밋: 작은 단위로 자주 커밋하여 변경 이력을 명확히 유지한다
  • 명확한 커밋 메시지: 팀원들이 이해할 수 있도록 메시지를 작성한다
    예) "Fix: 로그인 오류 수정", "Add: 회원가입 API 구현"
  • 충돌 방지: 동일 파일 작업 시 사전에 팀원들과 조율한다

2. 세미나 특강 - 데이터와 나의 커리어를 엮는 실전 전략

강사 소개

류채윤
커리어무브 대표
마이오퍼 IT 헤드헌터



이력서, 자기소개서, 포트폴리오 작성법

  • 이력서 작성 팁
    - 교육사항: 무엇을 배웠고 무엇을 했는지 명확히 작성

    - 핵심 역량: 직무 관련 기술 및 능력을 강조

    - 프로젝트: 역할, 주요 기능, 느낀 점 및 성과 작성
    Skill Set, 수상 내역 포함

    - 자기소개서 구성:
    직무 선택 계기 (스토리 중심)
    역량 성장 과정 (교육 및 경험)
    지원 동기 및 포부 (회사와 직무에 대한 관심 및 준비 내용)
    전문성 및 노력 경험 (팀워크, 문제 해결 사례 등 포함)

    - 포트폴리오 작성법:
    항목별로 강점 정리 (기술 역량, 문제 해결 능력 등)
    프로젝트별 역할과 성과 명확히 기술

채용 트렌드와 취업 준비 전략

  • 채용 공고 사이트:
    - 원티드
    - 프로그래머스
    - 링크드인 (현직자 정보 및 채용 공고 활용)
    - 인디드

  • 자기소개서 차별화:
    - 개인적 구성 및 개성 강조
    - 블로그나 기술 글 작성으로 전문성 부각

  • 경력 개발:
    - 기술 블로그 운영 (AI 관련 논문 리뷰 등)
    - 다양한 기업 지원 및 지속적 학습

취업이 어려운 이유와 해결 방안

  • 자격요건에 석사 학위와 경력이 포함되어도 망설이지 말고 지원
  • 경력직에 도전하여 역량 증명
  • 꾸준한 채용 공고 탐색 및 준비

직무와 기업 선택 전략

  • 기업 유형:
    - IT: 데이터 엔지니어 중심
    - SI: 고객사 파견 및 빠른 채용, 다소 제한적인 업무
    - DS: 데이터 중심 회사

  • 직무 분류:
    - 경영 직군 vs 개발 직군
    - 핵심은 직무와 기업의 조화

5. 인간의 행복과 이직 전략

  • 행복의 3대 요소:
    - 일을 통한 성취감
    - 관계
    - 사랑

  • 위생 요인 vs 동기 요인:
    - 위생 요인: 불만 요소 해결
    - 동기 요인: 개인적 성취와 성장

  • WHY를 중심으로 사고하고 설득력을 키울 것

이력서 작성요령

  • 데이터 기반 소통과 팀워크 강조 (예: Design Thinking 프로젝트 사례)
  • 꾸준한 학습과 블로그로 전문성 어필

마무리

  • 취업 준비는 개인의 성향과 역량을 이해하고, 체계적으로 채용 공고 탐색, 이력서 및 자기소개서 작성, 그리고 전문성 강화를 통해 진행해야 한다
  • 팀워크와 소통 역량, 데이터 활용 경험도 적극적으로 활용하자