μ λν https://github.com/DHyeonJ
λνμΈ https://github.com/hyensssu
κΉμμ§ https://github.com/kimpalpal
λ°μ§ν https://github.com/orasio3477
νλ μ¬νμμ μ°λ¦¬λ μμ£Ό μ€νΈλ μ€μ νλ μΌμμ μ§λ©΄νκ² λ©λλ€.
λν νμ€μ μ°¨λ³μ΄ λ무νλ μΈν°λ· 곡κ°μ λν νΌλ‘λκ° μμΉνκ³ μμ΅λλ€.
μ΄λ° μν©μμ μμ€ν κ²μ μλ‘μ κΈμ μ μΈ λ©΄μ μΈμ νκ³ μμνλ κ²μ΄ μ€μνλ€κ³ μκ°νμμ΅λλ€.
μΉκ΅¬λ μ΄λ¬ν νμμ±μ μΆ©μ‘±μν€κΈ° μν΄ νμνκ² λμμ΅λλ€.
π λ©μΈ νμ΄μ§: μ°Έμ¬κ° νλ°ν μ μ ( λκΈ μμ± νμ, μ’μμ κ°μ₯ λ§μ κΈ μμ±μ)λ λ©μΈμ λνΉλμ΄ νμΈ ν μ μμ΅λλ€.
πλ―Έμ νμ΄μ§ : λ§€μΌ μλ‘μ΄ λ―Έμ 4κ°μ§λ₯Ό μ μνμ¬ μΌμμνμμλ μΉμ°¬μ λλ μ μλλ‘ ν©λλ€.
πλ§μ΄νμ΄μ§ : λ΄κ° μμ±ν κΈ, λ΄κ° μ’μμ λλ₯ΈκΈ, λ―Έμ μ°Έμ¬ νν©μ νμΈ ν μ μμ΅λλ€.
- λ©μΈνμ΄μ§
- μΉκ΅¬λ¦¬μ€νΈ ( κ²μν νμ΄μ§)
- μΉκ΅¬ μμ± νμ΄μ§ ( κ²μκΈ μμ±)
- μμ±/μμ νμ΄μ§
- νμκ°μ
- λ‘κ·ΈμΈ
- λ§μ΄νμ΄μ§
- λ―Έμ νμ΄μ§
maindevfeat- header
- footer
- ListPage
- myPage
- λ³ΈμΈ κΈ°λ₯ ꡬνν λΈλμΉ push νκΈ° β
git push origin feat/comments - λ³ΈμΈ κΈ°λ₯ ꡬνν λΈλμΉμ dev λΈλμΉ pull λ°κΈ° β
git pull origin dev - μΆ©λ μμΌλ©΄ ν΄κ²° ν λ³ΈμΈ λΈλμΉμ push ν¨ β
git push origin feat/comments - λ³ΈμΈ λΈλμΉμμ devλ‘ PR λ λ¦Ό
- PR 리뷰 ν, 2λͺ μ΄μ μΉμΈ μ merge λ²νΌ νμ±ν
- Feat: μλ‘μ΄ κΈ°λ₯ μΆκ°
- Fix: λ²κ·Έ μμ
- Style: μ½λ formatting, μΈλ―Έμ½λ‘ λλ½, μ½λ μ체μ λ³κ²½μ΄ μλ κ²½μ°
- Chore: μ€μ λ³κ²½ λ± κΈ°ν λ³κ²½μ¬ν
- Design: HTML, CSS λ± μ¬μ©μ UI λμμΈ λ³κ²½
- Resolve: μΆ©λ ν΄κ²°
Companion.tsx;// ν΄λλͺ
api;
components;
// νμΌλͺ
(μ»΄ν¬λνΈ μ΄μΈ)
configStore.ts;
index.ts;// ν¨μλͺ
const findCompanion = () => {};
// λ³μλͺ
const [name, setName] = useState('');
let joinedCompanion = [john, karina];<h1 class="main-title">λν ꡬν¨</h1>- μ€νμΌ νμΌ import
import * as St from β./κ²½λ‘'- κ° html νκ·Έλͺ
div: 'μ»΄ν¬λνΈλͺ
' Box
section : 'μ»΄ν¬λνΈλͺ
'Section
ul : 'μ»΄ν¬λνΈλͺ
' List
li : 'μ»΄ν¬λνΈλͺ
' Item
p : 'μ»΄ν¬λνΈλͺ
' Paragraph
span : 'μ»΄ν¬λνΈλͺ
' Span.sample {
/* position κ΄λ ¨ */
position: absolute;
top: 0;
left: 0;
/* display κ΄λ ¨ */
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
/* size κ΄λ ¨ */
width: auto;
height: auto;
/* margin, padding */
margin: 0 auto;
padding: 12px;
/* background κ΄λ ¨ */
background-color: #ffffff;
/* border κ΄λ ¨ */
border: 1px solid #ffffff;
border-radius: 12px;
/* font κ΄λ ¨ */
font-size: 24px;
font-weight: 700;
text-align: center;
/* animation κ΄λ ¨ */
transform: translate(10px, 100%);
transition: 300ms;
}μ»΄ν¬λνΈ νμΌλͺ μ νμ€μΉΌ μΌμ΄μ€(PascalCase)λ₯Ό μ¬μ©νλ€.
MainComponent.jsx;
Route.jsx;μ»΄ν¬λνΈλ₯Ό μ μΈν ν΄λ, νμΌλͺ μ μΉ΄λ© μΌμ΄μ€(camelCase)λ₯Ό μ¬μ©νλ€.
components;
modules;
configStore.js;ν¨μλͺ μ μΉ΄λ© μΌμ΄μ€(camelCase)λ₯Ό μμΉμΌλ‘ νλ€.
function nameOfFunction() {
// ...some logic
}μμλ λͺ¨λ λλ¬Έμλ‘ μ°λ©° λμ΄μ°κΈ°λ _λ‘ μ²λ¦¬νλ©°, κ°μ²΄νμ μ κ²½μ° μΉ΄λ© μΌμ΄μ€λ₯Ό μ μ©νλ€.
const SOME_VALUE = 1;
const people = {
name: 'κΉμλ°',
age: '26',
};ν΄λμ€λͺ μ μΌλ°₯ μΌμ΄μ€(kebab-case)λ₯Ό μμΉμΌλ‘ νλ€.
<h1 class="main-title">μ€λ λ©λ΄ μΆμ²</h1>