20th-all-rounder-team-1-web's Issues
μ€λͺ
: νμκ°μ
μ λ§μ§λ§ μ μ°¨μΈ μ΄μ© μ½κ΄ λμλ₯Ό νλ νμ΄μ§λ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: νλ νΈμ λ€μ΄κ°λ μμλ€μ μμ νΉμ μΆκ°
λΌλ²¨: π¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
κΈ°μ‘΄μ μ μ©νλ μμμμ λͺκ°μ§λ€μ΄ λ³κ²½λμ΄μ μ΄μ λν λμ μμ
μ μνν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: μ€μ νμ΄μ§μ μ κ·Όμ± μ€μ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: μ€μ νμ΄μ§μμ λ¬ΈμνκΈ° μ»΄ν¬λνΈλ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: μλ‘μ΄ κΈ°λ₯μ λν μ€λͺ
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λλ°μ΄μ±μ΄ κ±Έλ¦° μΈνμ λ°ννλ 컀μ€ν
ν
μ κ°λ°ν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
λλ°μ΄μ±μ΄ κ±Έλ¦° μΈνμ λ°ννλ 컀μ€ν
ν
μ κ°λ°ν©λλ€.
μ°Έκ³ λ¬Έν:
μ λ κ²½λ‘λ‘ νμΌμ λΆλ¬μ¬ λ,
μ λλ‘ λΆλ¬μ€μ§ μλ μ€λ₯κ° μ‘΄μ¬ν©λλ€.
μ€λͺ
: κΈ°μ‘΄μ λͺ¨λ¬μ΄λΌ μκ°νλ μμκ° μ¬μ€ νμ
μ΄λΌ νΌλμ ν΄κ²°νκΈ° μν΄ κΈ°μ‘΄ μμ
λ λͺ¨λ¬ μμλ₯Ό νμ
μΌλ‘ λ€μ΄λ°μ λ³κ²½νλ μμ
μ
λλ€.
λΌλ²¨: π
μμ
μ: μλ
νμ¬ λμ:
κΈ°μ‘΄ modalλ‘ μμ±λ λΆλΆμ λͺ¨λ popupμΌλ‘ μμ ν μμ μ
λλ€.
κΈ°λ λμ:
μΆνμ μΆκ°λ modalκ³Ό νμ€ν ꡬλΆ
ν΄λΉ λ²κ·Έλ₯Ό λ°μμν€λ λ°©λ²:
μ°Έκ³ λ¬Έν:
μ€λͺ
: μμ΄μ½μ λν μ€νλΌμ΄νΈ μ΄λ―Έμ§λ₯Ό μ μ©ν©λλ€
λΌλ²¨: β¨ | π¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: ν€λ λΆλΆ UI μμ±
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λμμΈμ λ§κ² JobSelection μ»΄ν¬λνΈλ₯Ό μμ ν©λλ€.
λΌλ²¨: β»οΈ
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ 체 νμ΄μ§μμ μ¬μ©νκ²λ μΈνμ λν κ³΅ν΅ μ»΄ν¬λνΈλ₯Ό μμ±ν©λλ€.
μ΄λ λ°λμ validationμ λν κΈ°λ₯μ΄ μΆκ°λμ΄μΌ ν©λλ€. νμ¬ μ νν μ΄λ€ μμΌλ‘ validationμ ν μ§μ λν΄ μ ν΄μ§ κ²μ΄ μμΌλ―λ‘ λμμ μν className νλλ₯Ό 쑰건 νμ μΆκ°νλ μμΌλ‘ κ°λ°ν©λλ€.
μ€λͺ
: οΏ½λ©μΈ νμ΄μ§μ λν UI μμ±
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λ°°ν¬ν awsμ λλ©μΈμ μ°κ²°ν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
λλ©μΈμ μ°κ²°νμ§ μμ awsμμ μ 곡νλ μμμ urlλ‘ μ μν΄μΌ ν©λλ€.
κΈ°λ λμ:
www.week-and.comμ urlμ μ μ©ν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: νν° μ νν λ μλ νλμμ μ»΄ν¬λνΈλ₯Ό κ°λ°ν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
νν° μ νμ μ΄λ₯Ό κ°μΈλ νλμμ κ³΅ν΅ μ»΄ν¬λνΈλ₯Ό κ°λ°ν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: μΉκ΅¬ 리μ€νΈ κ°λ‘ μ€ν¬λ‘€ μμ±
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: μ€μ νμ΄μ§μ λΉλ°λ²νΈ λ³κ²½ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λ©μΈ νμ΄μ§μμ μμ / μΉκ΅¬μ μΌμ μ λμ΄νλ μΌμ 리μ€νΈλ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
곡ν΅μΌλ‘ μ¬μ©νκ² λ λ²νΌ μ»΄ν¬λνΈλ₯Ό ꡬμ±ν©λλ€.
νλ©΄ μ 체μ κΉλ¦¬λ νμμ λ€λ λ μ΄μ΄λ₯Ό κ°λ°ν©λλ€. λ€λ λ μ΄μ΄μ μμμ μμ§ μ ν΄μ§μ§ μμμμΌλ‘ μΌλ¨ μμμ νμμΌλ‘ κ°λ°ν©λλ€.
μ€λͺ
: κ° νμ΄μ§λ€μ lazy load ν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
Home
, Intro
λ νμ΄μ§ μ λλ§ ν
νλ¦ΏμΌλ‘ λ§λ€μ΄μ lazy loadνλ ννλ‘ κΈ°λ³Έ μ½λ ꡬ쑰λ₯Ό κ°μ Έκ°λλ€. (+ react-router-dom)
lazy loadλ₯Ό μν΄μλ export default
ν€μλ μ¬μ©μ΄ νμν©λλ€. λλ¬Έμ pages
ν΄λ λ΄λΆμμμ export default
λ νμ©ν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: νΌκ·Έλ§μμ λ³κ²½λ ν°νΈ μ΄λ¦μ λ°μ ν©λλ€.
λΌλ²¨: π¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λΉλ°λ²νΈ μ°ΎκΈ° νμ΄μ§ UI μμ±
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
TypeScript μ¬μ©μ λν μΈν
μ babelμ μΆκ°ν΄μ£Όμ§ μμ
interfaceμ κ°μ typescript μμλ₯Ό μ¬μ©ν λ μλ¬κ° λ°μν©λλ€.
μ€λͺ
: μλ‘μ΄ κΈ°λ₯μ λν μ€λͺ
λΌλ²¨: π¨
μμ
μ: μ¬μ
νμ¬ λμ:
κΈ°λ λμ:
λ©μΈνλ©΄ λ μ΄μμ μ‘λ μμ
μ ν©λλ€.
μ°Έκ³ λ¬Έν:
PRμ΄ λ¨Έμ§λ μ΄νμ build ν
μ€νΈκ° μ§νλλ©΄, buildκ° μ€ν¨νμ μ λΆνμν PR νλκ° λ μ¬λΌμ€κ² λ©λλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄ PRμ λ¨κ³μμ λΉλκ° μ±κ³΅νλμ§ νμ
ν©λλ€.
μ€λͺ
: κ΄μ¬μ¬ μ ν νμ΄μ§μ λν UI μμ±
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ μμ μΌλ‘ μ°μ΄κ² λ css μμ±λ€μ μΆκ°ν©λλ€.
μ€λͺ
: reset css λΆλΆ @charset μλ¬μ²λΌ λ°μνλ μμ μμ
λΌλ²¨: π
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
ν΄λΉ λ²κ·Έλ₯Ό λ°μμν€λ λ°©λ²:
μ°Έκ³ λ¬Έν:
μ€λͺ
: μΉ΄ν
κ³ λ¦¬λ₯Ό κ΄λ¦¬νλ νμ΄μ§λ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: 보μ¬μ§λ νμ
μμλ€μ contextλ‘ μ λ¬νμ¬ λμνλλ‘ μμ ν μμ μ
λλ€.
λΌλ²¨: β»οΈ
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: κ΄μ¬μ¬ μ΅λ 3κ°λ§ μ νλλλ‘ μμ ν μμ μ
λλ€.
λΌλ²¨: π
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
ν΄λΉ λ²κ·Έλ₯Ό λ°μμν€λ λ°©λ²:
μ°Έκ³ λ¬Έν:
μ€λͺ
: λͺ¨λ¬μ λ€μ΄κ°λ μΊλ¦°λλ₯Ό λ§λλλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ΄μ λ¬μ μ 보μ μ΄ν λ¬μ μ 보λ μΌλ¨ λ°°μ νκ³ κ°λ°ν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: ν°νΈλ₯Ό μΆκ°ν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
νμ¬λ λμ체 μ¬μ©μ€
κΈ°λ λμ:
Pretendard체λ₯Ό μ¬μ©ν μ μκ² λ°κΏλλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: νμκ°μ
νμ΄μ§ UI μμ±
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
λΈλΌμ°μ κ°μ λμμΈ μ΄μλ₯Ό ν΄κ²°νκΈ° μν΄ reset.css νμΌμ μΆκ°ν©λλ€.
μ€λͺ
: οΏ½μΆκ°λ ν°νΈ μ€νμΌμ μΆκ°νκ³ ν°νΈ μμμ μΈμλ‘ λ°μ μ μκ² μμ ν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ νμ΄μ§μ κ±Έμ³μ μ¬μ©νκ² λ νμ
μ»΄ν¬λνΈλ₯Ό ꡬμ±ν©λλ€.
μ μ μνκ°μΌλ‘ μ΄λ₯Ό κ΄λ¦¬νλ©° context apiλ₯Ό μ¬μ©ν©λλ€.
μ€λͺ
: graphQL μ¬μ©μ μν΄ κΈ°λ³Έ μΈν
μ€μ
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
qraphQL μ¬μ©μ μν κΈ°λ³Έ μ€μ μμ
λ€μ μ§νν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: μμ΄μ½ μμ±μ μν κ³΅ν΅ μ»΄ν¬λνΈ κ°λ°
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μμ΄μ½ μμ±μ μν κ³΅ν΅ μ»΄ν¬λνΈ κ°λ°
μ°Έκ³ λ¬Έν:
μ€λͺ
: rest props μ μ©νλ ννμ λͺ¨μμΌλ‘ λ³κ²½
λΌλ²¨: π
μμ
μ: λκ·
νμ¬ λμ:
rest props
κ° μ μ©λμ§ λͺ»νλ ννμ μ½λμ
λλ€.
κΈ°λ λμ:
rest props
κ° μ μ©λ μ μλλ‘ μ½λλ₯Ό μμ ν©λλ€.
ν΄λΉ λ²κ·Έλ₯Ό λ°μμν€λ λ°©λ²:
μ°Έκ³ λ¬Έν:
ν€λμ νΈν°λ₯Ό ν¬ν¨νλ νμ΄μ§ λ μ΄μμμ κ°λ°ν©λλ€.
const PageLayout = ({children}) => {
return (
<header></header>
{children}
<footer></footer>
)
}
ν¬κ² λ€μκ³Ό κ°μ λͺ¨μμ΄ λ κ²μΌλ‘ κΈ°λν©λλ€.
μ€λͺ
: μ€μ νμ΄μ§μ μ¬μ΄λλ° λ©λ΄ μ»΄ν¬λνΈλ₯Ό μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μ€λͺ
: οΏ½styled component νμ
μμ
λΌλ²¨: π
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
ν΄λΉ λ²κ·Έλ₯Ό λ°μμν€λ λ°©λ²:
μ°Έκ³ λ¬Έν:
μλμμ μλ‘ μ¬λΌμ€λ λͺ¨λ¬ μ»΄ν¬λνΈλ₯Ό μμ±ν©λλ€.
μλμμ μλ‘ μ¬λΌμ€λ μ λλ©μ΄μ
μ 보ν΅μ λͺ¨λ¬ μ»΄ν¬λνΈλ€μ΄ κ°μ§λ λμμ΄λΌ μμλ‘ μμΈ‘ν κ²μΌ λΏ μ΄λ€μμΌλ‘ λ λλ§ λ μ§λ κ²°μ λ κ²μ΄ μκΈ° λλ¬Έμ λ±νκ³ λ±μ₯νλ λͺ¨μμΌλ‘ μΌλ¨ κ°λ°ν©λλ€.
λ μ΄μ΄λΌκ³ λ νμ§λ§ λͺ¨λ¬μ΄ λ μ νν ννμΈ κ² κ°μ΅λλ€. (λμμ΄λμ μν΅μ κ΄μ μμ) μ μν΄μΌν©λλ€.
μ€λͺ
: λ°°ν¬ λ°©μμ λ³κ²½νλ©΄μ λΆνμν΄μ§ νμΌλ€μ μ κ±°ν©λλ€.
λΌλ²¨: β»οΈ
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν:
μμΌλ‘ μ°λ¦¬κ° μνν μμ
λ€μ μ΄μνν©λλ€. ν΄λΉ μμ
μ μ½κ² νκΈ° μν΄μ ν
νλ¦Ώμ ꡬμ±ν©λλ€.
μ€λͺ
: μ 체μ μΈ νμ΄μ§ κ΅¬μ± (react-router-dom μ¬μ©)
λΌλ²¨: β¨
μμ
μ: μλ
νμ¬ λμ:
κΈ°λ λμ:
μ 체μ μΈ ν
νλ¦Ώ νμ΄μ§λ€μ react-router-domμ νμ©νμ¬ κ΅¬μ±ν©λλ€.
μ°Έκ³ λ¬Έν:
μ€λͺ
: νλ©΄μμ μ€λ₯Έμͺ½ μλμ κ³ μ λμ΄ μΌμ μ μΆκ°ν μ μλλ‘ νλ νλ‘ν
λ²νΌμ μ μν©λλ€.
λΌλ²¨: β¨
μμ
μ: λκ·
νμ¬ λμ:
κΈ°λ λμ:
μ°Έκ³ λ¬Έν: