본문 바로가기
교육, 대외활동, 봉사/엘리스 AI 트랙 2기

[엘리스 AI 트랙 2기] Day 3 - Gitlab, 클린 코드

by g0n1 2021. 6. 23.
728x90

Gitlab - CI/CD, Wiki, Member, Lint, Operations

CI/CD

CI(Continuos Integration): 푸쉬할 때 마다 자동으로 테스트하고 머지해줌.
CD(Continuos Deploy, Delivery) : CI에다가 배포까지 자동화 한 것
보통 CI/CD를 Jenkins라는 것을 통해 한다는데, 깃랩도 이런 기능이 있고 편리하다고 한다. 

중간에 mocha, should, supertest 와 --save-dev 옵션에 대한 이야기가 나와서 검색해보니, 앞의 세개는 TDD(Test Driven Development) 주요 라이브러리이고, 뒤의 옵션은 개발 서버에서만 작동하도록 하는 옵션이라고 한다.

Wiki

markdown문법을 사용하는 문서들을 wiki 처럼 타고 타고 들어갈 수 있게 만들어서 보통 프로젝트에 있는 README.md를 다양하게 구성할 수 있게 해주는 것 같다.
보통 깃허브는 README.md 하나에 다 들어가 있는데, 각각의 정보들을 Wiki로 참조하게끔 하면 조금 단순하게 구성할 수 있을 것 같다.

Member

그룹, 서브그룹, 멤버 등에 대해 배웠다. 그룹은 프로젝트와 멤버들을 포함하고 소그룹을 만들 수도 있다. 멤버나 그룹의 권한 조절이나 같은 그룹 내에서 팀 간 작업을 위해 사용할 수 있을 것 같다. 서브그룹과 프로젝트는 상위의 것을 상속받고, 그룹마다 액세스 레벨을 설정할 수 있는데 두번 초대된 그룹이나 멤버는 더 높은 등급의 것으로 쳐준다.

Lint

당장 실행에는 문제가 없지만 나중에 크게 돌아올 수 있는 기술부채를 미리미리 해소하는데 도와주는 기능이다. 가독성이 좋지 않은 코드, 사용하지 않는 변수, 사용해야되는데 undefined된 변수들을 알려주고 그 외에도 많은 도움을 준다. 예외 처리를 위해 주석으로 옆에 필요한 정보를 적어주면 봐준다(?).

Metrics(통계 정보 확인)

프로젝트의 커밋 횟수, 비율, 시간, 코드리뷰(MR) 이런 것들을 확인할 수 있다...
일단 크게 중요한 거 같지는 않다.

Operations(Environments, Error Tracking, Feature Flags)

Environments

스테이징 서버(테스트), 프로덕션 서버 등의 다양한 환경을 설정해서 테스트해볼 수 있게 해준다.
이것도 .gitlab-ci.yml를 통해 설정해줄 수 있다.

이전으로 롤백할 수도 있다. 

Error Tracking

sentry와 연계해 에러 발생 시 깃랩에도 로그를 남길 수 있다.

Feature Flags

특정 서비스, 기능을 on/off 할 수 있게 해준다. unleash-client를 통해 flag값을 가져와 서비스를 on/off 할 수 있나보다.

클린 코드, 읽기 좋은 코드, 의미 있는 코드

코드도 그렇지만 주석에도 좋은 주석과 나쁜 주석이 있다는 것을 알게 되었다. 옛날에 스터디나 팀플에서 주석달 때 의미없는 주석을 달았던 생각이 났다.

코드를 짤 때는 다른 사람이 봐도 한번에 알기 쉽도록(최대한 간단하고, 적당한 길이로),
주석은 읽는 사람에게 좋은 정보를 전달할 수 있도록.

그리고 if 문에 boolean, 빈 시퀀스, 접두사 등을 조건으로 걸 때 굳이 안 써도 되는 것들이 있다는 것도 알았다.

내일 내용

내일은 무려 생활 코딩의 이고잉님의 실시간 강의 ㄷㄷ
하지만 엘리스 노션을 아무리 찾아봐도 내일 실시간 강의 내용을 모르겠다...
또 나만 모르나

 

나중에 읽어볼만한 문서

https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html

 

The .gitlab-ci.yml file | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

https://www.python.org/dev/peps/pep-0008/

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

 

728x90

댓글