λ°°ν¬ μ€λΉ μλ£
2μ°¨ λ°λͺ¨λ°μ΄λ₯Ό κΈ°μ€μΌλ‘ ν루μ€ν°λμ ν΅μ¬ κΈ°λ₯μ λͺ¨λ μμ±λμλ€. μ€ν°λλ₯Ό κ°μ€νκ³ μ°Έμ¬νκ³ μ§ννκ³ κΈ°λ‘μ 보λ κ²κΉμ§ λͺ¨λ κ°λ₯νλ€. νμ§λ§ μμ¬μ λ μ μ λ°°ν¬λ₯Ό νμ§ μμκΈ° λλ¬Έμ 2μ°¨ λ°λͺ¨λ°μ΄μμ μ€μ λ‘ λμνλ μλΉμ€λ₯Ό 보μ¬μ£Όμ§ λͺ»νλ κ²μ΄λ€. μ¬μ§μ΄ ν΄λΌμ΄μΈνΈμ μλ²μ μ°λλ νμΈνμ§ μμ μ΄λ€ μλ¬κ° μλμ§ νμ λ λͺ»ν μνμλ€. λλ¬Έμ 2μ°¨ λ°λͺ¨λ°μ΄κ° λλ μ΄ν μ°μ μ μΌλ‘ ν΄μΌν μΌμ΄ λ°λ‘ λ°°ν¬λ₯Ό μλ£νμ¬ μ€μ μ¬μ©μλ€μ΄ ν루μ€ν°λ μλΉμ€λ₯Ό μ΄μ©ν μ μκ² λ§λλ κ²μ΄μλ€.
μ€ν°λ κ°μ€, μ§νμ λν μΆκ° μμ μ λ§λ¬΄λ¦¬ ν λ€, ν΄λΌμ΄μΈνΈμ μλ²λ₯Ό λ°°ν¬ μλ£νμκ³ , μ€μ λ°°ν¬κ° μ λμλμ§ νμΈμ ν΄λ³΄μμ§λ§ μμλ... μμλλ‘ μ μ λμμ νμ§ μμλ€. λ΄κ° 맑μλ λΆλΆμΈ κΈ°λ‘ νμ΄μ§μμλ ν΅μ μλ¬κ° λνλ¬κ³ , κ°μ€ νμ΄μ§μμλ μλ¬κ° λνλ¬λ€. λν μΊμλ νμ λ¨μμμκΈ° λλ¬Έμ μλ‘κ² λ°°ν¬λ₯Ό ν λλ§λ€ μΊμλ₯Ό μλμΌλ‘ μ§μμ€μΌ νλ λ²κ±°λ‘μμ΄ μμλ€.
μ λ¬Έμ κ° μκ²ΌμκΉ?
νλ²μ μλλ‘ λ°°ν¬λ₯Ό μ±κ³΅νμ§ λͺ»νλ€. λ μ νν λ§ν΄μ μλ²μ api ν΅μ μ΄ μ μ΄λ£¨μ΄μ§μ§ μμλ€. μ¬κΈ°μλ μ¬λ¬ λ¬Έμ λ€μ΄ μμλ€. μ΄λ° λ¬Έμ λ€μ λ§μ£Όνκ³ ν΄κ²°νλ κ³Όμ μ μ 리ν΄λ³΄κ³ μ νλ€.
λμ¨ν νμ
ν루μ€ν°λ νλ‘μ νΈμμλ typescriptλ₯Ό μ¬μ©νκ³ μλ€. νμ μ€ν¬λ¦½νΈμ μ₯μ μ€ νλλ λ°νμμμμ μ€λ₯λ₯Ό 미리 μ μ μμ΄ μ€λ₯λ₯Ό 빨리 νμ νκ³ ν΄κ²°ν μ μλ κ²μ΄λ€. νμ§λ§ μ΄λ¬ν μ₯μ λ μΌλ§λ μ νν νμ μ μ¬μ©νλλ? μ λ°λΌ μ₯μ μΌλ‘ λ€κ°μ¬ μλ μκ³ λ¨μ μΌλ‘ λ€κ°μ¬ μ μλ€. νμ μ€λ₯κ° μμ΄ νμ μ΄ μ ννλ€κ³ μκ°νμ¬ λ€λ₯Έ κ³³μμ λ¬Έμ λ₯Ό μ°ΎλλΌ μκ°μ μλΉνλ κ²μ΄ λνμ μΈ λ¨μ μ΄λΌκ³ ν μ μλ€.
κ·Έλ λ€λ©΄ μ΄λ€ κ³Όμ μμ λμ¨ν νμ μΌλ‘ μΈν΄ λ¬Έμ κ° λ°μνμκΉ? λ°λ‘ μ€ν°λ κ°μ€κ³Όμ μ΄λ€. μ½λλ₯Ό μ΄ν΄λ³΄κΈ° μ , μ€ν°λλ₯Ό κ°μ€νκΈ° μν΄μ 3κ°μ§μ κ°μ΄ νμνλ€. μ€ν°λ μ΄λ¦, μ¬μ΄ν΄ νμ, μ¬μ΄ν΄ λΉ νμ΅ μκ°μ΄ κ·Έκ²μ΄λ€. μ΄λ₯Ό apiλ₯Ό ν΅ν΄ μλ²λ‘ μ μ‘ν΄μΌ νλ€. λ€μμ΄ μ΄μ ν΄λΉνλ μ½λ(μ€λ₯κ° λ°μνλ μ½λ)μ΄λ€.
1. requestCreateStudy: μ€ν°λ κ°μ€μ μν api μμ² ν¨μ
export const requestCreateStudy = async (
studyName: string,
totalCycle: number,
timePerCycle: number,
) => {
const response = await http.post(`/api/studies`, {
body: JSON.stringify({ name: studyName, totalCycle, timePerCycle }),
});
// ...
};
2. createStudy: μ€ν°λ κ°μ€νκΈ°λ₯Ό ν΄λ¦νλ©΄ μ€νλλ ν¨μ, requestCreateStudyκ° μ€νλλ€.
const createStudy = async (
studyName: string,
timePerCycle: number,
totalCycle: number,
) => {
try {
// ...
return await requestCreateStudy(studyName, totalCycle, timePerCycle, accessToken);
} catch (error) {
// ...
}
};
μ΄ λμ μ΄ν΄λ³΄μ. μ°μ requestCreateStudyν¨μλ 3κ°μ 맀κ°λ³μλ₯Ό κ°μ§λ€. μ΄λ λ€μκ³Ό κ°λ€.
- studyName: string νμ μΌλ‘ μ€ν°λ μ΄λ¦μ ν΄λΉνλ€.
- totalCycle: number νμ μΌλ‘ μ€ν°λμ μ΄ μ¬μ΄ν΄ νμμ ν΄λΉνλ€.
- timePerCycle: number νμ μΌλ‘ μ¬μ΄ν΄ λΉ νμ΅μκ°μ ν΄λΉνλ€.
λλ¬Έμ requestCreateStudyν¨μλ₯Ό μ¬μ©νλ κ³³μμλ 3κ°μ μΈμλ₯Ό μ λ¬ν΄μΌ νλ€. μ΄μ΄μ createStudyν¨μλ₯Ό 보면, requestCreateStudyν¨μλ₯Ό νΈμΆνκ³ 3κ°μ μΈμλ₯Ό μ λ¬νκ³ μλ€. νμ§λ§ μ΄κ³³μμ api ν΅μ μ€λ₯κ° λνλ¬λ€. κ·Έ μ΄μ λ μ‘°κΈλ μμΈν μ΄ν΄λ³΄λ©΄ μ μ μλ€. μ λ¬ν΄μΌ ν μΈμμ μμκ° μλͺ»λμκΈ° λλ¬Έμ΄λ€. μ¦, totalCycleλ₯Ό λκ²¨μΌ ν μ리μ timePerCycleλ₯Ό λκΈ°κ³ μκ³ timePerCycleλ₯Ό λκ²¨μΌ ν μ리μ totalCycleλ₯Ό λκΈ°κ³ μλ€.
μ΄λ° μ€λ₯λ₯Ό λΉλ μ΄μ μ μ μμ§ λͺ»νμκΉ? κ·Έ μ΄μ λ λ°λ‘ totalCycle, timePerCycle λͺ¨λ numberνμ μ΄κΈ° λλ¬Έμ΄λ€. λ¬Όλ‘ λλ€ numberκ° λ§λ€. νμ§λ§ κ°μ΄ μλ‘ λ€λ₯΄λ€. λ€μμ κ°κ°μ μΈμκ° κ°μ§ μ μλ κ°λ€μ΄λ€.
- totalCycle: 1, 2, 3, 4, 5, 6, 7, 8
- timePerCycle: 20, 25, 30, 35, 40, 45, 50, 55, 60
νμ€ν λ€λ₯Έ κ°μΌ λΏ λλ¬ μλΉμ€ λ΄μμ μ ν΄μ§ κ°λ€μ΄λ€. λλ¬Έμ μ΄λ₯Ό numberνμ μΌλ‘ κ΄λ¦¬νλ κ²λ³΄λ€ μμλ‘ λ§λ€μ΄ μ λμ¨μΌλ‘ κ΄λ¦¬νλ κ²μ΄ μ’λ€. μ΄λ₯Ό μ μ©νμ¬ μ€λ₯λ₯Ό ν΄κ²°ν μ μμλ€. λ€μμ μ΄λ₯Ό μ μ©ν μ½λμ΄λ€.
// Constants
const TOTAL_CYCLE_OPTIONS = [1, 2, 3, 4, 5, 6, 7, 8] as const;
const STUDY_TIME_PER_CYCLE_OPTIONS = [20, 25, 30, 35, 40, 45, 50, 55, 60] as const;
// Types
type TotalCycleOptions = (typeof TOTAL_CYCLE_OPTIONS)[number]; // 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
type StudyTimePerCycleOptions = (typeof STUDY_TIME_PER_CYCLE_OPTIONS)[number]; // 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60
// API
export const requestCreateStudy = async (
studyName: string,
totalCycle: TotalCycleOptions, // νμ
μ μ©
timePerCycle: StudyTimePerCycleOptions, // νμ
μ μ©
) => {
const response = await http.post(`/api/studies`, {
body: JSON.stringify({ name: studyName, totalCycle, timePerCycle }),
});
// ...
};
// Hooks
const createStudy = async (
studyName: string,
totalCycle: TotalCycleOptions, // νμ
μ μ©
timePerCycle: StudyTimePerCycleOptions, // νμ
μ μ©
) => {
try {
// ...
return await requestCreateStudy(studyName, totalCycle, timePerCycle, accessToken);
} catch (error) {
// ...
}
};
μ΄μ totalCycleκ³Ό timePerCycleμ νμ μ λμ¨ν numberκ° μλλΌ μλΉμ€μ μ ν νΉμ κ°μ λͺ¨μ(μ λμ¨)μ΄λ€. μμ κ°μ μ½λμμλ μΈμμ μμκ° μλͺ»λμμ κ²½μ° μ€λ₯λ₯Ό μλ €μ£Όμ΄ λΉλ μ μ μ€λ₯λ₯Ό 미리 νμ νκ³ ν΄κ²°ν μ μλ€.
μμ λ¬Έμ λ₯Ό μ°Ύλ κ²λ μκ°μ΄ κ±Έλ Έλ€. νμ μ§μ μ λ¬Έμ κ° μλ€κ³ μκ°νμ¬ λ€λ₯Έ κ³³μμ λ¬Έμ λ₯Ό μ°ΎμΌλ € νκΈ° λλ¬Έμ΄λ€. λ¬Όλ‘ numberλ νμ μ΄ μλͺ»λ κ²μ μλλ€. νμ§λ§ νΉμ κ°μ΄ μ ν΄μ‘λ€λ©΄ numberλΌλ λμ¨ν νμ 보λ€λ μ λμ¨μΌλ‘ λ§λ€μ΄ νμ μ μ’νλ κ²μ΄ μ’λ€.
λͺ μΈλ₯Ό μ 보μ
μ΄λ² λ¬Έμ λ μ½κ² ν΄κ²°ν μ μλ λ¬Έμ μ΄λ€. μ½κ² ν΄κ²° μ μμΌλ©΄μ κ°μ₯ λ§μ΄ λνλλ λ¬Έμ μ΄λ€. λ°λ‘ ν΄λΌμ΄μΈνΈμ μλ²μ μΌμΉνμ§ μλ apiμ£Όμ νΉμ request body, response bodyμ΄λ€. μ΄λ¬ν λ¬Έμ λ apiλ¬Έμνκ° μ λμ§ μκ±°λ λͺ μΈκ° μ λ°μ΄νΈλμμ§λ§ 곡μ§κ° μλμ΄ νμΈμ λͺ»ν λ, νΉμ λͺ μΈλ₯Ό μ λλ‘ μ½μ§ μμμ κ²½μ°μ λ°μνλ€. κΈ°μ μ μΈ λ¬Έμ κ° μλλΌ λ¨μν ν΄λ¨Ό μλ¬μ΄κΈ° λλ¬Έμ λͺ¨λ νμμ΄ μ΄λ₯Ό μ€μνμ§ μλλ‘ λ Έλ ₯μ ν΄μΌ νλ€κ³ μκ°νλ€.
μ무νΌ, μ΄λ²μ λ΄κ° 맑μ μ€ν°λ κΈ°λ‘ νμ΄μ§μμλ λ€μκ³Ό κ°μ λ κ°μ apiκ° μ¬μ©λλ€.
- μ€ν°λμ λ©νλ°μ΄ν°λ₯Ό λΆλ¬μ€λ api: api/studies/studyId/metadata;
- μ€ν°λμμ μ€ν°λ κΈ°λ‘μ λΆλ¬μ€λ api: api/studies/studyId/members/memberId/content
μ΄μ€ μ€λ₯κ° λνλ¬λ apiλ μ€ν°λμμ μ€ν°λ κΈ°λ‘μ λΆλ¬μ€λ apiμ΄λ€. apiμ£Όμλ λ§λ€. νμ§λ§ μλ΅ λ°μ΄ν°μ νμ μ΄ μλ‘ λ¬λλ€. λ€νν λ°°ν¬νκΈ° μ λͺ μΈλ₯Ό μ΄ν΄λ³΄λ€κ° μλ‘ λ€λ₯Έ μ μ μ°Ύμ μμ μ νμλ€. κ³Όμ°... λ΄κ° μ²μμ μ λͺ» λ³Έ κ²μΈμ§, μλλ©΄ μ€κ°μ λͺ μΈκ° λ°λ κ²μΈμ§λ λͺ¨λ₯΄κ² μ§λ§ κ·Έλλ λΉ λ₯΄κ² λ¬Έμ λ₯Ό ν΄κ²°ν μ μμλ€.
λ€μμ λ΄κ° μ΄κΈ°μ μμ±ν μ€ν°λμμ μ€ν°λ κΈ°λ‘μ μλ΅ νμ μ΄λ€.
type MemberRecordContent = {
cycle: number;
plan: {
toDo: string;
completionCondition: string;
expectedProbability: string;
expectedDifficulty: string;
whatCanYouDo: string;
};
retrospect: {
doneAsExpected: string;
experiencedDifficulty: string;
lesson: string;
};
};
νμ§λ§ μ€μ λ‘ λ€μκ³Ό κ°μ νμ μ μλ΅μ΄ μ¨λ€.
type MemberRecordContent = {
content: {
cycle: number;
plan: {
toDo: string;
completionCondition: string;
expectedProbability: string;
expectedDifficulty: string;
whatCanYouDo: string;
};
retrospect: {
doneAsExpected: string;
experiencedDifficulty: string;
lesson: string;
};
}
};
`content` ν€κ° μκ²Όκ³ ν΄λΉ ν€μ κ°μ cycle, plan, retrospectκ° λ΄κ²¨ μ¨λ€. κ°μ²΄ μμ²΄λ‘ μ€λλ ν€μ λ΄κ²¨μ μ€λλμ μ°¨μ΄μ΄λ€. λ΄κ° `content`λ₯Ό λ³΄μ§ λͺ»νλ κ²μΌκΉ? λ무 κΈ°λ³Έμ μΈ μ€μλΌ μ‘°κΈ μ΄μ΄λ μμ§λ§ μλ²μμ 보λ΄μ£Όλ μλ΅ νμ μ λ§κ² μμ νμλ€. λ€μμ μ΄μ ν΄λΉνλ PRμ΄λ€.
https://github.com/woowacourse-teams/2023-haru-study/pull/158
λ€μλΆν΄ λͺ μΈμ λν μ€μλ₯Ό νμ§ μλλ‘ κΌΌκΌΌνκ² μ€μ¨κ±°λ₯Ό νμΈν΄μΌκ² λ€.
μΉ μ κ·Όμ±(μ²μ μ¬μ©ν΄λ³΄λ 보μ΄μ€ μ€λ²)
3μ°¨ μ€νλ¦°νΈμμλ κΈ°λ₯ κ°λ°λΏ μλλΌ μΉ μ κ·Όμ±λ μ κ²½μ μ°λ©° κ°λ°μ ν΄μΌ νλ€. μ΄μ€ κ°μ₯ μ½κ³ κΈ°λ³Έμ μΈ κ²μ μ μ©νμλ€. λ°λ‘ νμ΄μ§ μΈμ΄ νμ, μλ©ν± νκ·Έ μ¬μ©, λ μ΄λΈ μ κ³΅μ΄ κ·Έκ²μ΄λ€. λΏλ§ μλλΌ ν루 μ€ν°λμ ν΅μ¬ κΈ°λ₯μ 보μ΄μ€ μ€λ²λ‘λ§ μ¬μ©ν μ μλλ‘ κ΅¬νμ ν΄μΌ νλ€.
보μ΄μ€ μ€λ²λΌλ κΈ°λ₯μ μ€μ μΉ μ κ·Όμ± κ°μμμ μ²μ μ¬μ©ν΄λ³΄μλ€. μ²μ μ¬μ©νλ κ²μ΄μ΄μ κ·Έλ°μ§ κ΅μ₯ν λΆμμ°μ€λ½κ³ μ΄λ €μ λ€. κ·Έλ λ€λ©΄ μ§κΈκΉμ§ 보μ΄μ€ μ€λ²λ₯Ό μ¬μ©νμ§ μμλ μ΄μ λ 무μμΌκΉ? λ¨μ§ μ΄λ₯Ό μ¬μ©ν νμμ±μ λλΌμ§ μμκΈ° λλ¬Έμ΄λ€. κ΅³μ΄ λ³΄μ΄μ€ μ€λ²λ₯Ό μΌμ μΉ μλΉμ€λ₯Ό μ΄μ©νμ§ μμλ μΆ©λΆνλ€. νμ§λ§ 보μ΄μ€ μ€λ²κ° λ°λμ νμν μ¬λλ€μ΄ μλ€. λ°λ‘ μκ°μ₯μ μΈλ€μ΄λ€. κ·Έλ€μ μ리λ₯Ό ν΅ν΄ νμ¬ μ΄λ€ λ²νΌ μμ μλμ§, ν΄λΉ νμ΄μ§μμλ μ΄λ€ μμ μ ν μ μλμ§ μμμΌ νλ€.
μμ§ μ΄μνκΈ΄ νμ§λ§ λμ κ°κ³ λ ν루 μ€ν°λμ ν΅μ¬ κΈ°λ₯μ μ¬μ©ν μ μλλ‘ κ°μ μ νμλ€. μ΄ λΆλΆμ 룩μκ° μ§ννμκ³ PRλ₯Ό ν΅ν΄ μ΄λ»κ² μ§νμ νλμ§ μ μ μμλ€.
https://github.com/woowacourse-teams/2023-haru-study/pull/248
aira(Accessible Rich Internet Application) νκ·Έλ₯Ό μ μ ν μ¬μ©νλ©΄ νμ μ¬μ©νμ¬ νμ¬μ μμμ μ΄λν λλ§λ€ νμ¬ μμΉμ λν μ€λͺ μ λ€μ μ μλ€. μ¬λ¬ μ’ λ₯κ° μκΈ° λλ¬Έμ μ΄λ₯Ό μ μ λ¦¬ν΄ λ³Ό νμκ° μλ€κ³ μκ°νλ€. νλ κΉμ μΉμ κ·Όμ±μ λν΄μλ μ μ 리λ₯Ό ν΄λ³΄μμΌκ² λ€.... κΈ μ¨μΌμ§...
λ€μμ μ€μ μΉ μ κ·Όμ± κ°μμμ μ¬λ¬ μ½μ§μ μλν μ½λκ° λ΄κΈ΄ λ ν¬μ΄λ€. κ·Έμ€ μ¬λ°λ μ½λλ₯Ό κ°μ Έμλ€.
https://github.com/nlom0218/a11y-airline/tree/nlom0218
μ `div` νκ·Έ λ΄μ `text`λ λ¨μ§ 보μ΄μ€ μ€λ²λ₯Ό μν κ°μ΄λ€. μ¦, νλ©΄μλ 보μ¬μ§μ§ μκ³ `text`κ° μ λ°μ΄νΈλ λλ§λ€ 보μ΄μ€ μ€λ²λ₯Ό ν΅ν΄ `text`μ λ΄μ©μ λ€μ μ μλ€. μ‘°κΈ λ μ΄λ€ μν©μ΄μλμ§ μ€λͺ μ λΆμ΄μλ©΄, μ±μΈ μΉκ°μ μκ° μ¦κ°, κ°μν λλ§λ€ ν΄λ¦μ΄ μ λμλμ§ μλ €μ£Όλ μν μ νλ€. λν μ΅μ, μ΅λ μΈμμκ° λμμ λλ μλ €μ€λ€.
λμμ μ λμ§λ§ λκ° μ΄μνλ€. μ‘°κΈλ μΈλ ¨λκ² λ°κΎΈκ³ μΆμ λ§μμ΄ λ€μλ€. λλ¬Έμ λ€μκ³Ό κ°μ λ°©λ²λ μ¬λ¬ ν¬λ£¨λ€μ ν΅ν΄ μκ² λμλ€. λ€μμ μ½λμμ `input`νκ·Έλ μ¬μ©μμ λμμ λ°λΌ `count`κ° κ³μ λ°λλ€. λλ¬Έμ λ³ν λλ§λ€ `aria-label`λ₯Ό λ€μ μ½μ΄μ£ΌκΈ° μν΄ `aria-live` μμ±μ `polite`λ‘ μ νμλ€.
airaλΏ μλλΌ μΉ μ κ·Όμ±μ λν μ’μ μλ£κ° μμ΄ λ¨κΈ΄λ€. μ΄λ₯Ό ν λλ‘ μΈμ ν λ² λ μ‘κ³ κ³΅λΆν΄λ³΄μ.
https://github.com/lezhin/accessibility
8μ 4μΌ 3μ°¨ λ°λͺ¨ λ°μ΄
λ€ μ΄ κΈμ΄ λ μκ°μ λ§μμ΄ λ§€μ° μνλ€............
μ μ€ μΊ νΌμ€λ‘ μ΄λν μ§ λ²μ¨ 2μ£Όκ° νλ λ€. 3μ°¨ μ€νλ¦°νΈλ λμ΄ λ¬κ³ 3μ°¨ λ°λͺ¨ λ°μ΄λ κΈλ°© μ°Ύμμλ€. μ΄λ¬λ€κ° 곧 μλ£νλ λ μ΄ μ¬ κ±° κ°λ€.(μμ§ λΆμ‘±νλ° λ§μ΄λ€.)
μ΄λ² 3μ°¨ λ°λͺ¨ λ°μ΄μ λ°νλ λμ νμ΄λ‘κ° λ§‘κ² λμλ€. λ°λͺ¨ λ°μ΄ μ λ μ pptλ₯Ό λ§λ€λ©΄μ λ°ν μ€λΉλ₯Ό νμλ€. λ°ν μκ°μ μλΉμ€ μμ°μ ν¬ν¨νμ¬ μ΄ 15λΆμ΄λ€. μκ°λ³΄λ€ 짧μ μκ°μ΄λ€. λλ¬Έμ λ§μ λ΄μ©μ pptμ λ΄μ μ μμλ€. μ€μ λ‘ λ§μ λ΄μ©μ λ΄μλ€κ° μκ°μ΄ λ무 μ€λ²λλ λ°λμ μ λ°μ λλ₯Ό λΊ μλ°μ μμλ€. μμ½μ§λ§ λ°νμκ°λ μ§μΌμΌ νκΈ° λλ¬Έμ λ°νλ΄μ©μ κ°μΆλ¦¬κ³ κ°μΆλ Έλ€.
λ°νμ μ°¨λ‘λ μ΄ 5κ°μ§λ‘ λ€μκ³Ό κ°λ€.
- 3μ°¨ μ€νλ¦°νΈμμ λ§μ£ΌμΉ λ¬Έμ μν©
- νμ μꡬμ¬ν λ°μ
- ν루μ€ν°λμ νμ
- μμ°
- 4μ°¨ λ°λͺ¨λ°μ΄ λͺ©ν
https://docs.google.com/presentation/d/12KHuR8B-19mPafBuv-sZURkP4bWZsIQ_XjkgRr5A2A8/edit?usp=sharing
2μ°¨ μ€νλ¦°νΈ λμ λΉκ΅νμ¬ 3μ°¨ μ€νλ¦°νΈ λμλ μΆκ°λ κΈ°λ₯μ΄ μμ΄ μμ¬μμ΄ λ§μ΄ λ¨μλ€. νμ§λ§ μμ μ μΈ μλΉμ€ μ΄μλ μ¬μ©μμκ² μ’μ μλΉμ€ κ²½νμ μ£ΌκΈ° λλ¬Έμ 2μ£Ό λμ μμ ν λ΄μ©λ€μ΄ μμ½μ§λ μλ€. λ¬Όλ‘ μ§κΈλ μμν λ²κ·Έκ° μκΈ° λλ¬Έμ κΎΈμ€ν κ°μ νκ³ μλ μν©μ΄λ€. κ·Έλ λ€κ³ μμΌλ‘ κ³μ μμ μ μΈ μλΉμ€λ₯Ό λ§λ€κΈ° μν΄μλ§ νλ‘μ νΈλ₯Ό μ§ννμ§ μμ κ²μ΄λ€. λΆμ‘±ν κΈ°λ₯μ μΆκ°νλ κ²λ μκ°νκ³ μλ€. κ·Έμ€ λ€μκ³Ό κ°μ΄ μμ¬μμ λ°νμΌλ‘ λ€μ 4μ°¨ μ€νλ¦°νΈ λͺ©νλ₯Ό μΈμ λ€.
- μ€ν°λ κΈ°λ‘μ λ€μ νμΈν μ μλ€λ μμ¬μ -> λ‘κ·ΈμΈ + μμ μ μ€ν°λ κΈ°λ‘ νμ΄μ§
- ν¨κ» μ€ν°λλ₯Ό μ§ννλ€λ λλμ΄ λ€μ§ μλλ€λ μμ¬μ -> ν¨κ» μμ κΈ°λ₯ + νμ΄λ¨Έ λκΈ°ν κΈ°λ₯
2κ°μ κΈ°λ₯μ 4μ°¨ μ€νλ¦°νΈ λ λͺ¨λ ꡬννλ©΄ μ’κ² μ§λ§ μ§κΈκΉμ§μ κ²½ν μ κ·Έλ μ§ λͺ»ν νλ₯ μ΄ ν¬λ€. λλ¬Έμ μ°μ μμλ₯Ό λκ³ νλμ© μμ±ν΄ λ³΄λ €κ³ νλ€.
'π μ°μνν ν¬μ½μ€ > Level3' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ 벨3 3~4μ£Όμ°¨ νκ³ (0) | 2023.07.27 |
---|---|
λ 벨3 1~2μ£Όμ°¨ νκ³ (0) | 2023.07.10 |