본문 바로가기
비개발자의 개발 지식 스터디/개발 프로세스

개발 코드 통합하기

by 열정주니어 2023. 7. 18.
반응형

개발 코드 통합하기

  • 개발자들이 제품 개발을 위해 코드를 다 작성한 후, 프로젝트에 코드를 통합하는 과정 필요
    • 웹, 앱, 서버 등 특정 목적을 수행하는 프로그램을 위한 소스코드들이 모여있는 공간을 프로젝트라고 하며 여러명의 개발자들이 하나의 프로젝트를 바라보고 코딩을 하게 됨
    • 최종적으로 코드가 합쳐져야 프로젝트에 제대로 개발자들이 짠 코드가 반영됐다고 할 수 있음

  • 소스코드 빌드 & 테스트 실행, 코드 리뷰를 안(못)하는 기업들도 많음 -> 코드를 합치려면 코드 충돌만 해결해도 가능

 

프로젝트 빌드 & 테스트 실행

  • 개발자가 짠 코드가 최종적으로 원격 프로젝트 저장소에 저장되기 전에 프로젝트 빌드와 테스트 실행이 먼저 실행
  • 프로젝트 빌드: 개발자들이 짠 코드를 바탕으로 실행가능한 프로그램을 만드는 것을 의미
    • 개발자가 개발한 프로젝트는 사용자들이 이용하는 서버(웹, API 등)에서 제대로 실행되어야 함
    • 만약 프로젝트에 문제가 생기면 사용자들은 해당 서버를 이용할 수 없게 되어 큰 타격을 입을 수 있음
    • 따라서 업데이트된 프로젝트가 실제 유저가 이용하는 서버(운영환경)에 배포되기 전에 미리 가상 컴퓨터 공간에서 프로젝트를 빌드해서 실행시켜 보는 것이 중요
    • 이렇게 되면 문제가 생길 경우 미리 개발자들이 문제를 해결할 수 있게 되어 실제 서비스에 영향을 미치는 사태를 방지할 수 있음
  • 프로젝트 빌드가 진행되면서 동시에 개발자들이 짜놨던 테스트 코드가 실행
    • 테스트 코드를 실행해서 통과되지 못한 테스트가 있다면 개발자들이 미리 확인해서 코드를 수정할 수 있음

CI (Continuous Integration)

  • CI 툴: 프로젝트를 가상 환경에서 빌드(실행)해주고 테스트 코드도 실행시켜주는 자동화 툴
    • CI 툴은 내부 컴퓨터 환경에서 프로젝트 소스코드를 통해 프로그램을 실행시켜주는 프로젝트 빌드를 알아서 해줌
    • 프로젝트 빌드와 함께 테스트 코드 동작을 시켜 보며 문제가 없는지를 같이 확인해줌
    • 대표적인 CI 툴로 CircleCI, Travis CI 등이 있음
  • CI 아래의 프로세스를 가짐
    • 코드를 짜고
    • 프로젝트를 빌드하고 테스트를 실행한 후
    • 프로젝트 저장소에 코드를 합침

 

코드 리뷰하기

Github에서의 코드 리뷰

  • 보통 개발자들은 본인의 코드를 최종적으로 프로젝트에 반영하기 전에 코드리뷰를 거침
  • 코드리뷰: 다른 개발자들이 직접 본인의 코드를 확인하는 과정
    • 코드를 보면서 에러가 날 수 있는 부분들, 회사의 코딩 컨벤션을 잘 지켰는지 등을 확인하고 리뷰를 남김
    • 리뷰 후 해당 리뷰를 코드에 적용하고 다시 리뷰를 요청하는 방식으로 진행
    • 보통 코드리뷰는 github이나 bitbucket 같이 소스코드를 저장하고 관리해주는 서비스에서 진행
  • 개발자가 혼자거나 초기 스타트업은 코드리뷰를 하지 않고 빠르게 코드를 병합하기도 함

 

코드 충돌 해결하기

코드 충돌 상황

  • 코드 충돌은 두 명 이상의 작업자가 동일한 파일을 작업했을 때 주로 발생
    • 하나의 프로젝트를 여러명의 개발자들이 개발하다 보면 같은 파일을 동시에 수정하는 경우가 많음
    • 보통 Git에서는 동일한 파일을 수정하더라도 알아서 코드를 병합해줌
    • 그러나 특정한 상황에서는 병합 과정에서 코드 충돌이 발생함
    • 그 때는 개발자가 직접 수정을 해서 코드를 병합해야 함
  • 코드 충돌이 해결되면 업로드 후 코드 빌드, 테스트, 리뷰를 다시 거쳐 코드 충돌이 없는지 확인 후 코드 통합

 

QA

  • QA: 최종적으로 개발자들이 열심히 짠 코드가 프로젝트에 적용되면 해당 제품이 잘 동작하는지 확인하는 작업
    • 보통 큰 기업에서는 QA 엔지니어 가 QA를 체계적으로 진행
    • 반면 규모가 작은 스타트업에서는 제품 팀에서 직접 사용해보며 문제를 찾음
    • QA를 하면서 기존 디자인에 맞게 잘 만들어졌는지, 버튼이나 API가 잘 동작하는지 등 개발된 제품을 전반적으로 확인
  • 개발자들이 테스트 코드를 작성하는 것도 일종의 QA이긴 하지만 테스트 코드만으로 제품의 완성도를 평가하기는 어렵기 때문에 사람이 보통 추가로 QA 작업을 진행함
  • 요새는 HBSmith 같이 QA를 자동으로 해주는 서비스들도 나오고 있음
  • QA 작업을 해서 문제가 있는지 없는지를 확인하고 문제가 생기면 다시 코드를 고쳐 코드 통합 과정을 반복함

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 프로세스' 카테고리의 다른 글

서비스 배포하기  (0) 2023.07.18
제품 개발하기  (0) 2023.07.17