Android Developer

[BCSD] 1.Git, Git-flow, OOP - 2019.01.28

졸려질려 2019. 1. 28. 21:21
반응형

Git 와 Git-flow

Git

  • 분산 소스코드 관리 방식
  • 소스코드 주고받기가 필요 없음
  • 병렬 개발 가능
  • 버전 관리 용이
    • < 용어 설명 >
    • 저장소 : 로컬 저장소, 원격 저장
    • 체크아웃 : 특정 시점이나 브랜치의 소스코드로 이동
    • 스테이지 : 작업한 내용이 올라가는 임시 저장 영역
    • 커밋 : 작업한 내용을 로컬 저장소에 저장하는 과정
    • 태그 : 커밋의 임의 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
    • 푸쉬 : 로컬 저장소의 내용 중 원격 저장소에 반영되지 않은 커밋을 보내는 과정
    • 풀 : 원격 저장소에 있는 내용중 로컬 저장소에 반영되지 않은 내용을 가져오는 과정
    • 브랜치 : 커밋을 단위로 구분된 소스코드 타임라인에서 분기해서 새로운 커밋을 쌓을 수 있는 가지를 만드는 것
    • 병합 : 하나의 브랜치는 다른 브랜치와 합치는 과정

Git-flow

  • 소프트웨어의 소스코드를 관리하고 출시하기 위한 '브런치 관리 전략'
  • 꽤 오래전에 나온 전략 -> 단점 보완 : github-flow, gitlab-flow
  • 주요 브랜치
    • 배포(Master) 브랜치
      • 배포 했거나 배포 준비된 코드는 'origin/master' 에 두고 관리
      • master 브랜치에 병합 == 새버전 배포
      • master 브랜치에서 커밋 될 때 git hook 스크립트를 걸어서 자동으로 빌드하여 운영서버로 배포
    • 개발(Develop) 브랜치
      • 배포하기 위해 관리하는 코드는 'origin/develop' 에 두고 관리
      • 프로젝트를 진행하는 개발자들이 함께 보며 업무를 진행하는 브랜치
      • develop 브랜치의 코드가 안정화되고 배포할 준비가 되면 master 브랜치로 병합하고 배포버전으로 태그
  • 보조 브랜치
    • 기능(Feature) 브랜치
      • 배포하려고 하는 기능을 개발하는 브랜치
      • 시작 브랜치 : develop / 병합 브랜치 : develop /
        브랜치 이름 규칙 : master, release, hotfix 를 제외한 것
    • 출시(Release) 브랜치
      • 실제 배포할 상태가 된 경우에 생성하는 브랜치
      • master 브랜치를 통해 배포하기로 함 -> master 브랜치에 병합
      • 배포된 기능에 반영될 수 있어야 함 -> develop 브랜치에 병합
      • 시작 브랜치 : develop / 병합 브랜치 : develop, master /
        브랜치 이름 규칙 : release-*
    • 긴급수정(Hotfix) 브랜치
      • 미리 계획되지 않은 배포를 위한 브랜치
      • master 브랜치에 생성해둔 태로부터 긴급 수정 브랜치 생성
      • 시작 브랜치 : master / 병합 브랜치 : develop, master /
        브랜치 이름 규칙 : hotfix-*

OOP

  • = Object Oriented Programming, 객체 지향 프로그래밍
  • 기본 구성 요소
    • 클래스(Class) = 객체 지향 프로그램의 기본적인 사용자 정의 데이터형
    • 객체(Object) = 클래스의 인스턴스(실제 메모리상에 할당된 것)
    • 메서드(Method) = 객체에 명령을 내리는 메시지
  • 특징
    1. 자료 추상화
      • 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것
    2. 상속(다중 상속)
      • 클래스가 2개 이상의 클래스로부터 상속 받을 수 있게 하는 기능 ( NO JAVA )
    3. 다형 개념
      • 어떤 한 요소에 여러 개념을 넣어 놓는 것 ( = 오버라이딩, 오버로딩 )
      • 프로그램 안의 객체 간의 관계를 조직적으로 나타낼 수 있다.
    4. 동적 바인딩
      • 실행 시간 중에 일어나거나 실행 과정에서 변경될 수 있는 바인딩
      • 프로그램의 한 개체나 기호를 실행 과정에서 여러 속성이나 연산에 바인딩함으로써 다형 개념을 실현한다.
  • 장점
    • 강한 응집력 : 클래스에 하나의 문제 해결을 위한 데이터를 모아 놓은 데이터형을 사용함
    • 약한 결합력 : 클래스 간에 독립적으로 디자인함으로써 결합력을 약하게 할 수 있다.
반응형

'Android Developer' 카테고리의 다른 글

[Android] ListView, Navigation Drawer  (0) 2019.03.24
[Android] Fragment  (0) 2019.03.13
[Android] Naming  (0) 2019.03.01
[Android] 정의, 버전 및 특징, 액티비티  (0) 2019.02.23
[BCSD] 2. DataStructure - 2019.01.28  (0) 2019.01.28