Day 1: Team Ground Rule - boostcampwm-2021/android05-boomerang GitHub Wiki

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • Android Studio Arctic Fox 2020.3.1. Patch 3.
  • JDK 1.8
  • Android SDK
    • max: 30
    • min: Not Yet

Team Ground Rule

  • ๋ฏธํŒ… ๋ฐฉ๋ฒ•: Zoom ํšŒ์˜์‹ค 37
  • ์ง€๊ฐ ๊ด€๋ฆฌ: ์•„๋ฌด๋„ ์ง€๊ฐ์„ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค -ํ˜ธ์ŠคํŠธ๋ผ๋‹ค๋ฌด์Šค's ์˜ˆ์–ธ -
  • ๋ฐฉํ–ฅ์„ฑ: ํ˜‘์—… ์ค‘์‹ฌ!!

ํ”ผ๋“œ๋ฐฑ ๋ฐฉ์‹

  1. ํ”ผ๋“œ๋ฐฑ์€ ์นญ์ฐฌ๋ถ€ํ„ฐ! (ex. Pull Request ๋ฆฌ๋ทฐ)
  2. ์ƒ๋Œ€๋ฐฉ ์˜๊ฒฌ์„ ์กด์ค‘!

์ฝ”๋“œ ๋ฆฌ๋ทฐ

  • ์ปจ๋ฒค์…˜ ๊ทœ์น™ ๋ฆฌ๋ทฐํ•˜๊ธฐ
  • ์ฝ”๋“œ์—์„œ ์˜๋„๊ฐ€ ๋Š๊ปด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ธ๊ธ‰ ๋ฐ ๋ณธ์ธ์˜ ์ƒ๊ฐ ์ž‘์„ฑํ•ด์„œ ๋ฆฌ๋ทฐํ•˜๊ธฐ
  • ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์€ ์ž์œ ๋กญ๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐฉ์‹

๋ฐ์ดํ„ฐ: ์ •๋ณด์˜ ์„ฑ๊ฒฉ์„ ์˜๋ฏธํ•œ๋‹ค (Database์šฉ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค) ๊ณ ๋ คํ•  ์‚ฌํ•ญ: ์‹ ๋ขฐ์„ฑ

์‹ ๋ขฐ์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ

  • ๊ตฌ๊ธ€ ๊ณต์‹๋ฌธ์„œ ํ™œ์šฉ
  • ๊ตฌ๊ธ€ ์•ˆ๋“œ๋กœ์ด๋“œ ์œ ํŠœ๋ธŒ ์ฑ„๋„ ๋™์˜์ƒ ํ™œ์šฉ
  • ๊ตฌ๊ธ€ Medium ๊ธ€ ํ™œ์šฉ
  • ๊ตฌ๊ธ€ Github ํ™œ์šฉ
  • ์ฝ”ํ‹€๋ฆฐ ๊ณต์‹๋ฌธ์„œ ํ™œ์šฉ
  • Stackoverflow ํ™œ์šฉ (๋‹ค์ˆ˜์—๊ฒŒ ๊ฒ€์ฆ๋œ ์ •๋ณด, ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•œ ์ •๋ณด)

์ด์Šˆ ๋ฌธ์„œํ™” ๋ฐ ๋ฐ๋ชจ ์ค€๋น„

๋ชฉ์š”์ผ 5์‹œ์— ์ฝ”๋“œํ”„๋ฆฌ์ง•์— ๋“ค์–ด๊ฐ„๋‹ค 30๋ถ„ ~ 1์‹œ๊ฐ„ ๋‚ด 1์ฃผ๊ฐ„ ๊ฒช์€ ์ด์Šˆ๋ฅผ ๋ฌธ์„œํ™”ํ•œ๋‹ค 30๋ถ„ ~ 1์‹œ๊ฐ„ ๋‚ด ๋ฐ๋ชจ ๋™์˜์ƒ ์ดฌ์˜ ๋ฐ ์–˜๊ธฐํ•  ๋ถ€๋ถ„ ์ •๋ฆฌํ•œ๋‹ค

์ด์Šˆ ์ „๋žต

์ด์Šˆ๋Š” Task ๋‹จ์œ„ ๊ด€๋ฆฌ

PR & Commit ์ „๋žต

PR์€ ํƒœ์Šคํฌ ๋‹จ์œ„ ์ž‘์„ฑ ๋ชจ๋“  PR์— ๋ฆฌ๋ทฐ์š”์ฒญ Merge๋Š” ์ž‘์„ฑ์ž๊ฐ€!

PR ์ œ๋ชฉ

  • ์ด์Šˆ์˜ ๋ฒˆํ˜ธ ๋ช…์‹œํ•˜๊ธฐ
  • PR ์ œ๋ชฉ๊ณผ ์ด์Šˆ ์ œ๋ชฉ ๋™์ผ์‹œํ•˜๊ธฐ

GitHub ๋ธŒ๋žœ์น˜ ์ „๋žต

Branch ์ข…๋ฅ˜:

  • master(==main):
    • ํ•œ ์ฃผ๋งˆ๋‹ค release๋ฅผ ๊ฑฐ์ณ ๋ฐ๋ชจ์˜์ƒ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ธŒ๋žœ์น˜
    • ์ฃผ์ฐจ๋ณ„ tagging
  • release:
    • ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋ฉˆ์ถ”๊ณ  ๋ฒ„๊ทธ ์ˆ˜์ • ํ›„ master๋กœ ๋ณด๋‚ด๋Š” ๋ธŒ๋žœ์น˜
    • naming: release/*
  • develop:
    • ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • feature ๋ธŒ๋žœ์น˜์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‚ฌํ•ญ๋“ค์„ ๋ชจ์œผ๋Š” ๋ธŒ๋žœ์น˜
  • feature:
    • ์„ธ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • ๊ฐ feature ๋ณ„๋กœ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • naming: feature/*

UI

๊ณ ๋ ค์‚ฌํ•ญ: ์ ‘๊ทผ์„ฑ, CustomView, MotionLayout

  • Material Design ์ ์šฉ

Github ์‚ฌ์šฉ๊ทœ์น™:

Backlog: Issue, Projects ํƒญ ํ™œ์šฉ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ: Projects์˜ ์นธ๋ฐ˜๋ณด๋“œ ํ™œ์šฉ

  • image

    feat, fix, docs(READ ME), style(cmd+alt+L), refactor, test, build(gradle), chore(ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ), revert

Git Commit Template ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ Conflict๋Š” IDE์—์„œ ํ•ด๊ฒฐํ•˜๊ธฐ -> Rebase, Merge ๋‘ ๋ฐฉ๋ฒ• ํ™œ์šฉํ•ด๋ณด๊ธฐ

Naming Convetion

Android Studio์—์„œ Warning์„ ๋‚ ๋ ค์ฃผ์ง€ ์•Š๋„๋ก~~

XML Convention

UI Component Naming Rules Example
View snake_case TextView: tv
ViewGroup snake_case LinearLayout: container

ex) [์ปดํฌ๋„ŒํŠธ]_ [ํ™”๋ฉด]_ [๊ธฐ๋Šฅ]_[item] btn_main_submit_id btn_main_submit_password

ํŒŒ์ผ๋ช… Naming Rules Example
fragment_ snake_case fragment_[main]
activity_ snake_case activity_[main]
item_ snake_case item_[์“ฐ๋Š” ๋…€์„์˜ id]
menu_ snake_case menu_[์“ฐ๋Š” ๋…€์„์˜ id]
Drawable naming Rules Example
background snake_case background_[์“ฐ๋Š” ๋…€์„์˜ id]

Coding Convetion

Method

ํ•จ์ˆ˜ Naming Rules
get -> return ๊ฐ’ ์กด์žฌํ•ด์•ผํ•จ
set -> ์†์„ฑ/์„ค์ • ๋“ฑ๋ก
fetch -> from server
load -> from db
Boolean์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ -> is/has ๋ฌธ๋งฅ์ƒ ์•Œ์•„์„œ ํŒ๋‹จ
nullable -> [OrNull]

Varaible

๋ณ€์ˆ˜ Naming Rules
Boolean ํƒ€์ž… -> is/has ๋ฌธ๋งฅ์ƒ ์•Œ์•„์„œ ํŒ๋‹จ