π€ 25λ 6μ νκ³
μλ‘ β
6μ 1,2μ£Όμ°¨λ κ³ λ―Όμ΄ μλΉν λ§μλ ν μ£Όμ΄λ€.
λ λ§μ λ€μν λ¬Έμ λ₯Ό λ§λκ³ μΆμλ°,,, νμ¬ νλ‘μ νΈλ μ¬λ¬ μν©μ΄ κ°μκΈ° λμκ² μκ² λκ»΄μ Έμ μ¨μ ν μ§μ€νμ§ λͺ»νλ€. μ΄λ° μν©μλ λ§€μΌ κ°μ¬νλ €κ³ νμμλ λΆκ΅¬νκ³ κ°λ§μ΄ μμλ κ² κ°λ€.
νμ§λ§ 6μ 2μ£Όμ°¨ μ¬μ νλ μΉκ΅¬, κ°λ°μ μ λ°°λλ€κ³Ό 컀νΌμ±μ νλ©΄μ λλ κ²μ κ²°κ΅ "λ κ³ κ°μ λ¬Έμ λ₯Ό ν΄κ²°ν΄μ€ κ²½νμ΄ μμ΄?"λΌλ μ§λ¬Έμ λν λ΅λ³μ μ°Ύλ κ²μ΄ μ€μνλ€λ κ²μΌλ‘ μλ ΄νλ€.
νμ¬ λ€λκ³ μλ νμ¬μμ λ μΌμ μν΄μΌ νλ€λ κ²μ λ€μ λκΌλ€.
"λλ μΌλ§λ κ³ κ°μ μ κ²½μΌλκ°..."
"λλ κ³ κ°μ μ΄ν΄νκΈ° μν΄ μΌλ§λ λ Έλ ₯νλκ°..."
νκ³ ν΄λ³΄λ©°, 6μ 3μ£Όμ°¨λΆν°λ κΈ°μ μ νμ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λ μλ―Όν κ°κ°μΌλ‘ λμκ°λ €κ³ νλ€.
μ΄λ° λ§₯λ½μΌλ‘ μκ° λ ν¬νΈ κΈ°λ₯μ μ μνμκ³ κ°λ°νκΈ° μμνκ³ μ΄ν μλ‘μ΄ κΈΈμ΄ μ΄λ¦¬κΈ° μμνλ€.
"κ·Έλ¬λ μ΄λλ λ κ΅°λ°μ μλ₯ ν©κ²©μ λ°κ² λλ€." μ΄λΌ??
6μ Action Pointβ
- μκ° λ¦¬ν¬νΈ μμ± λ° μ μ₯ κΈ°λ₯ ꡬννκΈ°
- ν¨λ© λμμΈ μμ€ν μ 무 νλ‘μΈμ€ μ μ°©
- κ°μ²΄ μ§ν₯μ μ€ν΄μ μ§μ€ μ½κ³ μκ° μ 리
- λ¨μ ν μ€νΈ κΈ°μ μ± μ½κ³ μκ° μ 리 -> νλ‘ νΈμλ κ°μ₯ λ§λ§ν λ‘μ§λΆν° λ¨μ ν μ€νΈ μ μ©νμ!
- Next.js μ€ν°λλ₯Ό ν΅ν΄ Insight μ 리ν΄μ 곡μ νκΈ° (μκ°μμ΄ μ€ν°λ κΈμ§)
- λ€νΈμν¬ κ³΅λΆλ₯Ό ν΅ν΄ μ¬κ³ λ₯Ό νμ₯μμΌλ³΄μ
- XSSμ λν΄ νμ΅ λ° κ²°κ³Όλ¬Ό μ 리
- CSRFμ λν΄ νμ΅ λ° κ²°κ³Όλ¬Ό μ 리
- OAuthμ λν΄ κΉμ΄ νμ΅ λ° κ²°κ³Όλ¬Ό μ 리
κ³ννμ§ μμμ§λ§ ν΄λΈ κ²
- λ κΈ°μ¬ν μ μλ νκ²½μΌλ‘ μ΄μ§
곡λΆλ λΉμ₯ νμνμ§ μλ€κ³ μκ°ν΄μ μ°μ μμλ₯Ό λ―Έλ€λλλ... 체ν¬νμ§ λͺ»ν κ²λ€μ΄ λ§λ€. νμ§λ§ κ°μ₯ μΉμ΄νκ² μ° ν λ¬μ΄μλ€.
λ κ΅°λ° μ΅μ’ ν©κ²©μ νκ³ λλμ μ μ λ§ κ³ κ°μ λ¬Έμ λ₯Ό ν΄κ²°ν΄λ³΄λ κ²½νμ μ²ν 무μλ³΄λ€ κ·νꡬλλ₯Ό λκΌλ€. μ΄μ λ―ΈμΉ λ―μ΄ κ³ κ°μ μ΄ν΄νλ λ° μ§μ€νλ €κ³ νλ€. κ²°κ΅ ν λͺ μ΄λΌλ κ³ κ°μ κ³ κ°μ΄λ€.
λ³Έλ‘ β
μκ° λ¦¬ν¬νΈ κΈ°λ₯ κΈ°ν λ° κ°λ°β
μ΄κ² 무μμΈκ° μΆμ κ² κ°μ κ°λ¨νκ² λΆλ¦Ών¬μΈνΈλ‘ λΉμ μν©μ μ 리ν΄λ³΄λ €κ³ νλ€.
μ°μ λΉ λ₯΄κ² λ§λ νλ‘ν νμ λΆν° μ΄ν΄λ³΄μ.
μ μ΄ κΈ°λ₯μ μ μνκ³ κ΅¬ννκ² λλβ
-
Problem
- κ°μ μμ° κΈλ±λ½μΌλ‘ μΈν΄ κ³ κ° λ¬Έμ νμ£Ό, μλλ‘ μΈν΄ λλ£λ€ μ μ μμ§ λͺ»νλ λ¬Έμ λ°μ!
-
Action
- κ³ κ°μ λΆλ§μ λν΄ μ μ λμνλ λ°©μμΌλ‘ μκ° λ¦¬ν¬νΈ κΈ°λ₯ μ μ (κ³Όκ±°μ μλνλ€κ° μ§μνμ§ λͺ»νλ κΈ°λ₯)
- νμ§λ§ κ³ κ°μ΄ λ§μ, μΌμΌμ΄ μκ° λ¦¬ν¬νΈ λ°ννλ κ²μ΄ νμ€μ μΌλ‘ μ΄λ ΅λ€λ μ견
- κ·Έλ λ€λ©΄ λμ보λ λ΄μμ μλν κΈ°λ₯ μ μ λ° κ΅¬ν
- νμ§λ§ κ³ κ°μ΄ λ§μ, μΌμΌμ΄ μκ° λ¦¬ν¬νΈ λ°ννλ κ²μ΄ νμ€μ μΌλ‘ μ΄λ ΅λ€λ μ견
- κ³ κ°μ λΆλ§μ λν΄ μ μ λμνλ λ°©μμΌλ‘ μκ° λ¦¬ν¬νΈ κΈ°λ₯ μ μ (κ³Όκ±°μ μλνλ€κ° μ§μνμ§ λͺ»νλ κΈ°λ₯)
-
Result
- μκ° λ¦¬ν¬νΈ κΈ°λ₯μ ν΅ν΄ 리ν¬νΈ μμ± μκ° 480λΆ => 2λΆ (99.6% κ°μ)
- κ²°κ³Όμ μΌλ‘ κ³ κ° μλ λΉλ μ μ λλΉ νκ· 30건 => 12건 (60% κ°μ)
κΈ°λ₯ κΈ°νβ
κΈ°νμ μμν΄λ³΄μλ€.
1. μκ° λ¦¬ν¬νΈλ₯Ό μμ±νλ μ΄λ€ μ λ³΄κ° ν¬ν¨λμ΄μΌ νλ κ±°μ§?
μ°μ κ³Όκ±°μ νμ€ν 리λ₯Ό μ°Ύμ보기 μμνκ³ κ³Όκ±°μ μκ° λ¦¬ν¬νΈ pptλ₯Ό λλ£μκ² λ°μλ€. κ·Έλμ λμ μΌλ‘ μ²λ¦¬ν κ²λ€κ³Ό μ μ μΌλ‘ μ²λ¦¬ν κ²λ€μ λΆλ¦¬νκ³ λ°μ΄ν°λ₯Ό μ 리νκΈ° μμνλ€. μμΈν λ΄μ©μ μμ±νκΈ΄ μ΄λ ΅μ§λ§ μμ£Ό κ°λ¨νκ² μ 리ν΄λ³΄λ©΄, μ°λ¦¬ μ¬λ΄ νμ± κ³μ’λ κ½€ λ§λ€. μ°μ 리ν¬νΈλ κΈ°κ΄κ³Ό 1λ1 λ§€μΉλλ κ²μ΄ μλλΌ κ° κΈ°κ΄ μλμ μλ κ³μ’λ€κ³Ό 1λ1 λ§€νλλ κ²μ λ°κ²¬νλ€.
νλμ κ³μ’λ₯Ό μμ±ν μ΄νλ‘ μμ΅ κ·Έλν, μμ΅κ³Ό κ΄λ ¨λ λ°μ΄ν°λ₯Ό 보μ¬μ€μΌ νλ€. κ·Έλ°λ° μ΄ λ°μ΄ν°λ? μ΄λ»κ² ν보ν κ²μΈκ°... λμ보λ λ΄μ ν©λΏλ €μ Έ μμ΄μ νλ‘ νΈμμ μ‘°ν©μ ν΄μΌ νλ€.
2. μ΄λ»κ² λ§λ€μ΄μΌ μ¬μ©ν λ νΈνκ³ μ¦μ λλ£λ€μ΄ μ¬μ©ν μ μμκΉ?
κ°μ₯ μ¬μμΌ νλ€. νλμ νμ
λμ΄μΌ νλ€.
μ... μ΄κ² κ°μ₯ μ΄λ €μ λλ° μ°μ μ΄ κΈ°λ₯μ΄ μ€μ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ΄ λλμ§ νμ νκΈ° μν λ¨κ³μ΄κΈ°μ λ§ λ©μ§κ² λ§λ€ νμκ° μμκ³ μ λ§ λμμ΄ λλμ§λ§ νμ νλ©΄ λλ€. κ·Έλμ μμ κ°μ΄ λ§λ€μλ€.
κ°λ¨ν νλ‘μ°λ λ€μκ³Ό κ°μλ€.
report Tab ν΄λ¦ --> κ³μ’ μ ν -> export
μ°μ κ³μ’λ₯Ό μ νν΄μΌ νκ³ κ·Έλ¦¬κ³ export ν μ μλ λ²νΌμ΄ νμνλ€κ³ μκ°νλ€.
Q. κ·Έλ λ€λ©΄ exportλ κ²°κ³Όλ¬Όμ μ΄λ€ ν¬λ§·μΌλ‘ export λμ΄μΌ νλμ§ κ³ λ―Όμ΄μλ€.
μ°μ PDFλ‘ λ³νλλλ‘ κ΅¬ννλ€. κ·Έλ κ² κ΅¬ννλ λ¬Έμ κ° μκ°λ³΄λ€ 볡μ‘ν΄μ‘λ€. pdfλ‘ λ³ννλλ‘ νλ μλ²½νκ² κ΅¬νν΄μΌ λλ κ²μ λ°κ²¬νλ€. μλνλ©΄ μμ νκΈ°κ° μ΄λ ΅κΈ° λλ¬Έμ΄μλ€. κ·Έλ¦¬κ³ pdfλ‘ λ³νν λ CSSκ° λ°μμ΄ μ λλ λ¬Έμ κ° λ°μνλ€. κ·Έλμ ν루μ λ κ³ μνμλ€. κ³Όκ°νκ² λ€μ μκ°ν΄λ³΄κΈ° μμνλ€. μνλ κ²°κ³Όλ¬Όμ pdfμ΄μ§λ§ μ°μ λ°μ΄ν°λ§ 볡μ¬ν μ μλλ‘ ppt νμμΌλ‘ export λλλ‘ ν μ μμκΉ? μΆμ΄μ μλν΄λ΄€λλ° μ°μ pptx μ½κ² λ³νν μ μλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμκ³ μ¬μ©ν΄λ³΄λ μ°μ μ΄κ² λ§λ€λ μκ°μ΄ λ€μλ€. κ·Έλ¦¬κ³ κ²°κ³Όμ μΌλ‘ μ΄κ² λ μ μ©νλ€.
ꡬννλ€ λ³΄λ λ΄κ° λ§λλ κ²μ μλ³ λ¦¬ν¬νΈλΌλ κ²μμ λ€μ μκ°νλ€... κ·Έ λ§μΈ μ¦μ¨ νΉμ κ³μ’μ μνλ μμ μ νν μ μμ΄μΌ νκ³ ν΄λΉ μμ λ°μ΄ν°λ§ νν°ν΄μ κ·Έλνμ ν μ΄λΈλ‘ ννν΄μΌ νλ€λ κ²μ΄λ€. μ΄λΌ... μ‘°κΈμ© 볡μ‘ν΄μ§κΈ° μμνλ€.
κ·Έλμ νλ‘μ°κ° μμ λλ€.
report Tab ν΄λ¦ --> κ³μ’ μ ν --> μ μ ν -> export
κ·Έλ°λ° μΆκ°μ μΌλ‘ μ¬μ©νλ μ μ₯μμλ λμΌλ‘ λ°μ΄ν°κ° λ§λμ§ λ―Έλ¦¬ νμΈνκ³ μΆμ μ μμ κ² κ°μλ€. κ·Έλμ λλ£μκ² λ¬Όμ΄λ³΄λ νμΈν μ μμΌλ©΄ μ’κ² λ€λ νΌλλ°±μ μ¦μ λ°μ μ μμλ€.
κ·Έλμ λ νλ‘μ°κ° μΆκ°λλ€.
report Tab ν΄λ¦ --> κ³μ’ μ ν --> μ μ ν -> ν΄λΉ 리ν¬νΈ λ΄λΆ νμ΄μ§μ λ λλ§ νΉμ export
λ΄κ° μκ°νλ κ²μ μ΄κ² μλλ° μκ°λ³΄λ€ κΈ°λ₯μ΄ λ³΅μ‘ν΄ λ³΄μλ€. νΈμΈμ₯λ΄νκ² 1μ£ΌμΌλ§μ κ²°κ³Όλ₯Ό 보μ΄κ² λ€λ λ§μ΄ κ±°μ§μ΄ λ κ² κ°λ€λ λλμ΄ λ€μλ€. νμ§λ§ μ΄κ² μμΌλ©΄ λλ£μκ² λμλ κ² κ°μμ κΈ΄μ₯μ λμ§λ§ λ μ€λ λ€.
κΈ°λ₯ κ°λ°β
1. κ·Έλμ ꡬνμ μ΄λ»κ² ν 건λ°??
μ°μ κ·Έλνλ μκ°λ³΄λ€ κΈλ°©λλ€.
export const AumChartForReport = () => {
const { isMobile } = useDevice();
const { data: accountList } = useSuspenseQuery(AccountQueries.getAdminAndStaffAccountsQuery());
const uniqueStrategies = getUniqueFieldValues(accountList, 'strategy');
const { getFilteredAums } = useHistoricalAumWithStore();
const result = queryTotalEquityByDate(getFilteredAums());
const sortedList = result.sort((a, b) => a.timestamp - b.timestamp);
const { filteredData, timeRange, handleTimeRange } = useDurationFilter(
sortedList,
(item) => item.timestamp,
);
const { data: organizationList } = useSuspenseQuery(OrganizationQueries.getAdminOrgQuery());
const { filters, handleStrategy, handleOrganization } = useFilterByDomain();
return (
...
)
}
λΉμ¦λμ€ λ‘μ§μ μλ²½νμ§ μμ§λ§ μ΄λ μ λ 컀μ€ν ν μΌλ‘ λΆλ¦¬λ₯Ό μλ νλ€. κ·Έλμ ν΄λΉ ν λ§ λ³΅μ¬ν΄μ μλ‘μ΄ View μ»΄ν¬λνΈλ₯Ό λ§λ€μ΄λ³΄λ λ°λ‘ λμνλ κ²μ νμΈνλ€.
μ€νΈ!!?
κ·Έλ¦¬κ³ ν΄λΉ κ·Έλνλ₯Ό html2canvas
λΌλ λΌμ΄λΈλ¬λ¦¬λ‘ DOMμ μ΄λ―Έμ§λ‘ λ³νν΄μ pptμ λνλλλ‘ νλ€.
κ·ΈλΌ νλ¨ ν μ΄λΈκ³Ό κ·Έμ λ§λ λ°μ΄ν°λ?
μκ°λ³΄λ€ μ΄ λΆλΆλ μμνλ€. κΈ°μ‘΄μ μμ΅λ₯ νΈλνΉ κΈ°λ₯μ ꡬννλ©΄μ ꡬννλ λ‘μ§μ μ¬νμ©ν μ μμλ€. λΉμμλ μμ΅λ₯ μ μ νν λ μ§ κΈ°μ€, μΌ, μ, μ°λ λ³λ‘ κ³μ°νλ λ‘μ§μ λ€λ₯Έ λ°μ μ¬μ©ν μ§ λͺ°λμ§λ§ λΉμ κ³ λ―Όνλ©΄μ ꡬνν κ² λμμ΄ λ§μ΄ λκ³ μλ€. μμ ν¨μμ μΈμλ 3κ° μ΄νλ‘ μ’νκ³ λ΄λΆμμλ ν κ°μ§ μΌλ§ νλλ‘ νκ³ λͺ μλμ ν΄λ¦° μ½λμμ λμ¨ commandμ queryλ₯Ό λΆλ¦¬νμ¬ ν¨μλ₯Ό λ§λλ κ² ν΅μ¬μ΄μλ κ² κ°λ€.
- commandλ λ΄λΆμμ μνλ₯Ό λ³κ²½νκ³ Return κ°μ΄ μλ ν¨μ
- queryλ λ΄λΆμμ μνλ₯Ό λ³κ²½νμ§ μκ³ Return κ°μ κ°λ ν¨μ
λλ©μΈ μ§μμ μꡬνλ λ‘μ§μ΄λΌ κ°λ¨ν 곡μ ν΄λ³΄λ©΄,
const PerformanceSection = ({
filteredDailiesBySelectedMonth,
filteredDailiesFromInception,
}: {
filteredDailiesBySelectedMonth: Dashboard['dailies'];
filteredDailiesFromInception: Dashboard['dailies'];
}) => {
const earliestDailyFromInception = getEarliestTimestamp(filteredDailiesFromInception);
const earliestDailyFromMonth = getEarliestTimestamp(filteredDailiesBySelectedMonth);
const latestDaily = getLatestTimestamp(filteredDailiesFromInception);
const returnValue = calcReturnMonthAndYearToDate({
dailies: filteredDailiesBySelectedMonth,
selectedDate: dayjs.unix(latestDaily.updatedTimestamp).toDate(),
key: "month",
});
const mdd = calculateMaxDrawdown(filteredDailiesBySelectedMonth);
const inceptionMdd = calculateMaxDrawdown(filteredDailiesFromInception);
return (
...
)
}
ν΄λΉ ν¨μλ€μ λ€ κ³μ° ν¨μμ΄λ€. κ·Έλμ λ¨μ ν μ€νΈλ‘ λ‘μ§μ΄ μ λμνλμ§ κ²μ¦νκ³ μκ³ κ·Έλμ μμ¬νκ³ λλ£μκ² μμΉλ λ‘μ§λλ‘ λμνλ€κ³ λ§ν μ μκ² λλ€.
μ΄λ° λ°©μμΌλ‘ μ¬νμ©νλ μκ°λ³΄λ€ ꡬνμ΄ μ΄λ ΅μ§ μμλ€.
pptxgenjsλ₯Ό νμ©ν΄μ νλ©΄μ 보μ΄λ ν μ΄λΈμ΄ νΌνΌν°λ‘ exportν λλ λμΌνκ² λνλλλ‘ νλ€.
4. μ΄λ»κ² κ°μ νλ©΄ μ’μκΉ? (λ―Έλ λλ£μκ² μ λ¬ μμ )
μ°μ μ§κΈμ 머리μμ μλ μμ΄λμ΄λ§ ꡬνν΄λμ μνμ΄λ€.
λ¨Όμ λ μ§κΈμ PPTλ‘ exportν΄μ μ΄λ₯Ό pdfλ‘ λ³΅μ¬ λΆμ¬λ£κΈ°ν΄μ κ³ κ°μκ² μλ³ λ¦¬ν¬νΈλ₯Ό 보λ΄μ§λ§ μμ PDFλ‘ λμ€λλ‘ ν μ μμ κ² κ°λ€. νμ§λ§ μκ°λ³΄λ€ λ λλ§μ΄ μ λλ‘ μ λλ λ¬Έμ κ° λ°μν μ μλ€. μ΄λ΄ κ²½μ°λ μλ²μμ ν΄λΉ κΈ°λ₯μ ꡬνν΄μ ν΄κ²°ν μ μμ κ² κ°λ€. κ°λ Ή puppeteerλ₯Ό μ¬μ©νλ©΄ μλ²μμ Chromiumμ νμ©νμ¬ κΈ°λ₯μ ꡬνν μ μμ κ² κ°λ€. κ·Έλ¬λ©΄ λ μ ννκ² μ΄λ―Έμ§λ DOMμ PDFλ‘ λ°κΏ μ μμ§ μμκΉ μκ°ν΄λ³Έλ€.
μ μ κ° μ κ·Όν μ μλ νμ΄μ§μ μλ³ λ¦¬ν¬νΈ μ체λ₯Ό 보μ¬μ€λ μ°Έ μ’μ κ² κ°λ€κ³ μκ°νλ€.
μ§κΈμ μΉμ΄λΌ νΈμ μλ¦Όμ ꡬνν μ μλ€. PWAλ‘ νλ©΄ κ°λ₯μ νκ² μ§λ§ κ³ κ°λ€μ΄ μνμ§ μμμ λ°κ²¬ν΄μ κ·Έλ κ²λ νμ§ λͺ»νλ€. κ·Έλ λ€λ©΄ κ°λ¨ν μ±μ λ§λ€μ΄μ νΈμ μλ¦Όμ ν΅ν΄ 리ν¬νΈλ₯Ό μ 곡νλ λ°©μλ μ΄λ¨κΉ μΆλ€. μ΄κ² κ³ κ°λ€μ΄ μνλ κ²μΌκΉ κ³ λ―Όν΄λ³Έλ€.
νμ΄λμ 첫 μ΄μ§ 무μ¬ν Clearβ
24λ 6μ 13μΌμ ν¨μ³λ¦¬μ¦λ©μ€λΌλ λ무 κ°μ¬ν νμ¬λ₯Ό λ§λ μ μ¬νκ² λλ€. λΉμ DND IT μ°ν© λμ리 κ²½ν, κ°μΈ νλ‘μ νΈκ° μμμ§λ§ μ€λ¬΄ κ²½νμ΄ μλ λλ₯Ό λ―Ώμ΄μ£Όκ³ κΈ°νλ₯Ό μ€ νμ¬λ€. μ λ§ νλ€ λ κ·Έ κΈ°μ΅μ μκ³ ν΄λ³΄λ©΄ κ°μ¬λ₯Ό μμ μκ° μμ κ² κ°λ€.
κ·Έλ‘ λΆν° 1λ μ΄ μ§λ μ§κΈ κ°κ°μ§ λ κΈ°μ¬ν μ μλ λμμ κ°μΈμ μΌλ‘ λ§μ μ±μ₯μ ν μ μλ νμ¬μ λ¬Έμ΄ μ΄λ Έκ³ μ΅μ’ μ€νΌλ₯Ό λ°κ² λλ€. μ€μ μ΄μ§μ μ΄μ μ€ κ°μ₯ ν° μ΄μ λ λ κΈ°μ¬ν μ μλ νκ²½μ΄κΈ° λλ¬Έμ΄λ€. μ΄μ§ν νμ¬λ μ체 νλ«νΌ μλΉμ€ νμ¬λ‘ κΈ°μ¬ν μ μλ κ²λ€μ΄ λ©΄μ μ ν΅ν΄ λ€μ΄λ§ λ΄λ 5κ°μ§μλ€. λμ ν λ§€λ ₯μ μ΄μ§ μμ μ μμλ€. λ무 κ°μ¬νλ€.
μ§μ¬μΌλ‘ κ°μ¬νκ³ κ·Έ λ§μμ 7μμ΄μ μ νννκ³ λ§λ¬΄λ¦¬νλ €κ³ νλ€. 7μμ λ΄ μΈμμμ κ°μ₯ μ°¨λΆνκ³ μ¦κ±°μ΄ ν λ¬μ΄ λ κ² κ°λ€. κΈ°λν΄λ³Έλ€.
μΈμμΈκ³μ μμ± μ€μΈλ° μ‘°κΈ λ μ μ¨λ³΄μ!!
κ²°λ‘ β
μ΄λ² ν λ¬κ° μΌνλ©° μ¬λ¬ κ²½νμ νλ©° κ°λ°μλ λ§μ μκ°μ μ¬μ©νμ§ λͺ»νμ§λ§
λλ κ²μ κ²°κ΅ κΈ°μ¬ μ€μ¬μ μ¬κ³
κ° μ€μν¨μ λκΌλ€.
μ§μμλ νμ¬μμλ λμκ²λ μ€μ€λ‘ κΈ°μ¬νλ μΆμ μ΄μμΌκ² λ€κ³ λ€μ§ν΄λ³Έλ€. λ μ κ·Ήμ μΌλ‘ λ μ£Όλμ μΌλ‘ μ΄μλ΄μΌκ² λ€.
7μμλ μ§λ 1λ κ° νλ κ²λ€μ μ 리ν΄λ³΄κ³ λΆμ‘±νλ κ²λ€μ 볡기νλ©° λ€μ μ€ν μ μ€λΉνλ μκ°μ κ°μ Έλ³΄λ €κ³ νλ€. μΈμμμ λ무 κ·ν μκ°μΌ κ² κ°λ€. λΆλͺ¨λκ³Ό κ·Έκ° λͺ» λ΅λ μΉμ²λ€ μμ¬λλ€μ μ°Ύμλ΅ μμ μ΄λ€.
λͺ¨λ κ°μμ μμΉμμ νμ΄ν
7μ Action Pointβ
κ°λ° κ΄λ ¨
- νμ¬ κ°μΈμ μΌλ‘ μ§ννκ³ μλ μΉ΄ν μ€μκ° μ 보 μ‘°ν νλ‘μ νΈ νλ©΄ ꡬν
- λ©΄μ μμ λ¬Όμ΄λ΄€λ DDD 곡λΆν΄μ λΈλ‘κ·Έ μ 리νλ©° μ΄ν΄νκΈ°
μΌμ κ΄λ ¨
- ν¨λ© μΈμμΈκ³ λ° λ§λ¬΄λ¦¬ μ§νλ‘κ² νκΈ°
- 1λ κ° νλ κ²λ€ μ 리νμ¬ κ²½λ ₯ κΈ°μ μμ μ 리νκΈ°
- 건κ°ν 루ν΄μΌλ‘ ν΄μνλ©° 1kg κ°λνκΈ°
- λΆλͺ¨λ λͺ¨μκ³ μμΌμ μ¦κ±°μ΄ μκ° λ³΄λ΄κΈ°