brunch

똑똑한개발자가 일하는 방법

똑똑한개발자에서 업무효율을 위한 약속!

by 지피티맨

안녕하세요!

똑똑한개발자입니다 :)

https://toktokhan.dev/



코로나19가 기승을 부리면서 정말 다들 지쳐계실 것 같습니다 ㅜㅜ

우리 그래도 끝까지 힘을 내봅시다! :)

sticker sticker


오늘은!!

IT 업계의 신규 개발자분들에게!

또는 개발자를 꿈꾸는 분들에게!

그리고 개발자라는 직업이 궁금하신 분들에게!

아주 유용한 정보를 공유하려고 합니다!




바로 '똑똑한개발자'의 개발팀이 업무에 사용하는 프로그램과 개발언어입니다!


우선, 첫 째로 Github는 일종의 개발자들이 진행했던 개발 내용들을 다른 개발자와 쉽게 공유할 수 있도록 공간을 제공하는 서비스입니다! Git 과 헷갈리는 분들이 있는데, 깃은 분산형버전관리시스템(DVCS)으로 누가, 언제, 어디서, 어떤 소스코드를 수정하고 작업했는지 한 번에 관리해주는 소프트웨어입니다. 그리고 깃허브가 이러한 작업을 다른 팀원들과 공유할 수 있도록 해주는 공간인 것이지요!


둘 째로, Django와 React는 개발언어입니다! 개발언어는 개발사들마다 다르게 사용하는 경우도 많은데, 똑똑한개발자는 현재 이 두 언어를 중점적으로 사용하고 있습니다 :)

장고와 리엑트의 장점으로는 효율성, 비용절감, 높은 확장성 등이 있습니다!




깃헙

Github

Git Flow (개인작업시)

스크린샷 2020-11-26 오후 5.49.58.png


Team - Flow (협업시)

스크린샷 2020-11-26 오후 5.50.10.png



Commit Message Rule


개요


커밋 제목 : [ 작업 액션 ] [ 작업 단위 ]

[( Init, Add, Fix, HotFix, Improve, ...)] 중 택일 + [ 작업 단위에 대한 개요 ]


커밋 설명 : 설명

[설명] : 추가 상세 설명 내용은 커밋 제목 하단에 내용으로 추가한다.


작업 액션

[Init] : 해당 작업을 처음 시작 할 때 또는 해당 작업에 대한 커밋을 처음 진행 할 때

[Add] : 이미 해당 작업에 대한 INIT 이 이뤄지고 난 뒤 새로운 무언가를 추가 할 때 (기능, 디자인 등을 추가할 때)

[Fix] : 기존의 작업 내용을 수정해야 할 때 (기능, 디자인 등을 수정할 때)

[HotFix] : 이미 배포된 작업에 대해 급하게 수정을 해야할 때, 즉 최고 우선순위의 Fix 작업

[Imporve] : 기존의 작업 내용을 고치는 개념이 아니라 향상시키고자 할 때 (코드 최적화, 쿼리 최적화, 기능 개선, 디자인 개선)


예시


Init 패션 태그 뷰셋

Add 소셜로그인 Facebook API

Fix Facebook 소셜로그인 Email Field validation 오류

HotFix 소셜 계정 이미지 does not exist 오류

Improve 도시락 태그 api 쿼리 코드 리팩토링



과정

스크린샷 2020-11-26 오후 5.59.52.png


git checkout - b

새로운 브런치를 생성하면서 동시에 해당 브런치로 이동

- 브런치는 최신 업데이트가 된 develop 에서 시작합니다.


git add - p

코드 블럭 단위 또는 파일 단위 로 add 를 할 수 있는 옵션 (CLI)

y : 해당 hunk 를 add

n : 해당 hunk 는 스킵

q : 그만두기

a : 해당 파일 전체를 add

d : 해당 파일 전체를 스킵


git commit - v

커밋을 vi 에디터로 진행하는 옵션

첫번째 줄은 title 두번째 줄부터 설명


git rebase

git push 를 하기전에, develop 브런치의 변경사항을 확인해서 기존 브런치와 결합하는 과정입니다. merge 와 다른 점은 변경된 사항을 현재 commit 된 소스코드 뒤로 배치하여, push 예정인 변경사항이 최신 변경사항으로 적용될수 있게 도와주는 역할을 합니다. git log 가 깔끔하게 정리되는 장점이 있습니다!


마무리

브런치의 push 가 마무리 되면, github 사이트로 가서 pull request를 날려주시면됩니다 :)





코드 컨벤션


Django

import는 알파벳 순 으로 정렬한다.

스크린샷 2020-11-26 오후 6.07.47.png



Class = Carmel Case, Extra = Snake Case

스크린샷 2020-11-26 오후 6.08.38.png



filter와 get의 결과에 대한 변수명은 아래와 같이 작성하며, 3개 이상의 파라미터가 필요한 경우 띄어쓰기를 진행한다.

3개 이상의 파라미터가 있어 tuple로 작성한 경우 마지막에 , 를 작성한다.

스크린샷 2020-11-26 오후 6.09.15.png



kwargs.get 에 default 설정하고 ''대신 None을 사용한다.

스크린샷 2020-11-26 오후 6.09.57.png



Class 사이는 2번, Class 내의 함수에서는 1번 띄어쓴다.

스크린샷 2020-11-26 오후 6.10.28.png



Static, Media 파일을 project 밖으로 꺼내고 저장소에 올리지 않는다.

log는 한글로 명시하며, print를 이용하여 각 def마다 디테일하게 설정하고, uwsgi에서 찍힌 로그를 확 인한다.

log를 찍는 목적은 이후 서비스 중 에러가 일어났을 때 해당 과정을 트래킹하기 위해서이다.

때문에 어떤 함수가 실행되었는지 작게는 어떤 기능이 일어나고 있는지를 명시해야한다.

Data가 변경되는 Create, Update, Delete 앞, 뒤로는 log가 필요하며, 어떤 데이터 값이 어떻게 변경되어지는지 상세한 로그를 기록해야한다.



React

프로젝트 구조

- containerpages를 기반으로 작성하며, styled 파일을 따로 두어 관리합니다.

스크린샷 2020-11-26 오후 6.12.51.png



코드 컨벤션

컴포넌트 파일명은 Upper Camel Case로 작성한다. 예) MainCard

변수명은 Lower Camel Case로 작성한다. 예) mainTitle

스크린샷 2020-11-26 오후 6.13.32.png




지금까지 똑똑한개발자만의 효율적이고 높은 퀄리티를 자랑하는 비법을 소개해드렸습니다!

개발자들이 사용하는 프로그램에 궁금하셨던 분들에게, 큰 도움이 됐길 바라면서 ~

지금까지 똑똑한개발자였습니다!

sticker sticker



https://toktokhan.dev/


keyword
작가의 이전글스타트업 '똑똑한개발자' 브랜딩