| name | four-step-pattern |
| description | Four-step sentence pattern for national research reports. Defines mandatory writing structure: task declaration, problem definition, solution approach, and technical details. |
Four-Step Pattern Skill
Overview
This skill defines the mandatory 4-step sentence pattern for writing national research report sections. Each subsection (1.1, 1.2, 2.1, etc.) must follow this pattern to meet PhD-level professionalism and national agency submission requirements.
The 4-Step Pattern
Step 1: Task Declaration (์ฐ๊ตฌ ๊ณผ์ ์ ์ธ)
Pattern:
- ๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋ [๊ธฐ์ ๋ถ์ผ]๋ฅผ ์ํ [๊ฐ๋ฐ ์์คํ
๋ช
] ๊ฐ๋ฐ์
Rules:
- Must start with "๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋"
- [๊ธฐ์ ๋ถ์ผ]: Technical domain (e.g., "๊ตด์ฐฉ๊ธฐ ์์จํ", "์ค์๊ฐ ์ ์ด", "๊ฐํํ์ต ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์ ")
- [๊ฐ๋ฐ ์์คํ
๋ช
]: Specific, technical system name (e.g., "CAN ํต์ ๊ธฐ๋ฐ ๋ค์ค ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ตํฉ ์์คํ
")
- Must end with "๊ฐ๋ฐ์"
Examples:
- "๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋ ๊ตด์ฐฉ๊ธฐ ์์จํ๋ฅผ ์ํ CAN ํต์ ๊ธฐ๋ฐ ๋ค์ค ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ตํฉ ์์คํ
๊ฐ๋ฐ์"
- "๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋ 3์์ ๋(3-DOF) ํ๋ฉด ๊ตด์ฐฉ๊ธฐ์ ์ ๊ธฐ๊ตฌํ ์ฐ์ฐ์ ํตํ ๋ฒํท ๋๋จ ์์น ์ค์๊ฐ ๊ณ์ฐ ์์คํ
๊ฐ๋ฐ์"
- "๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋ ๊ฐํํ์ต(Reinforcement Learning) ๊ธฐ๋ฐ ์์จ ๊ตด์ฐฉ ์์ฌ๊ฒฐ์ ์์คํ
๊ฐ๋ฐ์"
Step 2: Problem Definition and Necessity (๋ฌธ์ ์ ์ ๋ฐ ํ์์ฑ)
Pattern:
- [๊ธฐ์กด ๋ฐฉ์/์ํฉ]์ผ๋ก๋ [๋ฌธ์ ์ /ํ๊ณ]์ด๋ฏ๋ก, [ํด๊ฒฐ์ฑ
/๋ชฉํ ์์คํ
] ๊ตฌ์ถ์ด ํ์ํจ
Rules:
- [๊ธฐ์กด ๋ฐฉ์/์ํฉ]: Current technology limitations or existing approach
- [๋ฌธ์ ์ /ํ๊ณ]: Specific technical problems
- [ํด๊ฒฐ์ฑ
/๋ชฉํ ์์คํ
]: Proposed solution in this research
- Must end with "๊ตฌ์ถ์ด ํ์ํจ" or "์์คํ
๊ฐ๋ฐ์ด ํ์ํจ"
Examples:
- "๊ธฐ์กด์ ๊ฐ๋ณ ์ผ์ ์ด์ฉ ๋ฐฉ์์ผ๋ก๋ ์ค์๊ฐ ๋๊ธฐํ ๋ฐ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ํ๋ณด๊ฐ ์ด๋ ค์ฐ๋ฏ๋ก, ํตํฉ CAN ๋ฒ์ค ์ํคํ
์ฒ๋ฅผ ํตํ ์ผ์ ์ตํฉ ์์คํ
๊ตฌ์ถ์ด ํ์ํจ"
- "๊ธฐ์กด ํฌํ
์
๋ฏธํฐ ๊ธฐ๋ฐ ๊ฐ๋ ์ธก์ ์ ๊ธฐ๊ณ์ ๋ง๋ชจ์ ํ๊ฒฝ ๋ณํ์ ์ทจ์ฝํ๋ฏ๋ก, CANopen ๊ธฐ๋ฐ ๊ณ ์ ๋ฐ ๊ฒฝ์ฌ๊ณ๋ฅผ ํตํ ๊ด์ ๊ฐ๋ ์ธก์ ์์คํ
๊ตฌ์ถ์ด ํ์ํจ"
- "์์จ ๊ตด์ฐฉ ์์
์ค ์ ์ ๊ณผ๋ถํ ๋ฐ ์ฅ๋น ์์์ ๋ฐฉ์งํ๊ธฐ ์ํด, ์ค์๊ฐ ์ ์ ์๋ ฅ ๋ชจ๋ํฐ๋ง๊ณผ ์ด์ ๊ฐ์ง ์์คํ
๊ตฌ์ถ์ด ํ์ํจ"
Step 3: Solution Approach (ํด๊ฒฐ ๋ฐฉ์)
Pattern:
- ์ด๋ฅผ ์ํด [๋
ธ๋/๋ชจ๋/ํด๋์ค๋ช
] ๊ฐ๋ฐ์ ํตํ [๊ธฐ์ ๊ตฌํ ๋ด์ฉ] ์ํ
Rules:
- Must start with "์ด๋ฅผ ์ํด"
- [๋
ธ๋/๋ชจ๋/ํด๋์ค๋ช
]: Actual implementation name (e.g., can_bridge_node, ExcavatorKinematics ํด๋์ค)
- [๊ธฐ์ ๊ตฌํ ๋ด์ฉ]: Specific tech stack and interfaces
- Multiple implementations should be separate bullet points
Examples:
- "์ด๋ฅผ ์ํด can_bridge_node ๊ฐ๋ฐ์ ํตํ SocketCAN ๊ธฐ๋ฐ ์ค์๊ฐ CAN ํต์ ์ธํฐํ์ด์ค ๊ตฌํ ๋ฐ CAN ID๋ณ ๋ฉ์์ง ํ์ฑ ์์คํ
๊ฐ๋ฐ"
- "์ด๋ฅผ ์ํด forward_kinematics_node ๊ฐ๋ฐ์ ํตํ 20Hz ์ฃผ๊ธฐ ์ ๊ธฐ๊ตฌํ ์ฐ์ฐ ์์คํ
๊ตฌํ ๋ฐ ์ค์๊ฐ ๋ฒํท ์์น ๋ฐํ ์ธํฐํ์ด์ค ๊ฐ๋ฐ"
- "์ด๋ฅผ ์ํด trajectory_generator_node ๊ฐ๋ฐ์ ํตํ /excavator/trajectory_generator ์๋น์ค ์๋ฒ ๊ตฌํ ๋ฐ ์์
์ ํ๋ณ ๊ถค์ ์์ฑ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ"
Step 4: Technical Details (๊ธฐ์ ์ ์์ธ)
Patterns:
- [๊ตฌ์ฒด์ ๊ตฌํ์ฒด/์ค์ ํ์ผ] ์ค์ ์ ํตํด [ํ๋ผ๋ฏธํฐ1], [ํ๋ผ๋ฏธํฐ2], [ํ๋ผ๋ฏธํฐ3] ๊ตฌํ
- [์๊ณ ๋ฆฌ์ฆ๋ช
] ๊ธฐ๋ฐ [์ธ๋ถ ๊ธฐ๋ฅ] ๊ตฌํ
- [๊ตฌ์ฒด์ ์์น/์ค์ ]: [๊ฐ1](์ค๋ช
), [๊ฐ2](์ค๋ช
) ๋ฑ
Rules:
- Must include specific parameter values with units
- Algorithm names should include English (e.g., ๊ฒ์ธ ์ค์ผ์ค๋ง(Gain Scheduling))
- Config file names, variable names, function names must match actual code
- Use exact values (no estimates)
Examples:
- "can_config.yaml ์ค์ ํ์ผ์ ํตํด CAN ์ธํฐํ์ด์ค(can0), ๋นํธ๋ ์ดํธ(500kbps), ๋๋ฐ์ด์ค๋ณ CAN ID ๋งคํ ์ฒด๊ณ ๊ตฌํ"
- "fk_excavator ํจ์ ๊ตฌํ: ๊ด์ ๊ฐ๋(ฮธโ, ฮธโ, ฮธโ)๋ก๋ถํฐ ๋ฒํท ๋๋จ ์์น(xk, yk) ๋ฐ ์์ธ(ฯ_e) ๊ณ์ฐ"
- "๊ตด์ฐฉ๊ธฐ ๊ธฐํํ ํ๋ผ๋ฏธํฐ ์ ์ฉ: L1=2464mm(Boom), L2=1352mm(Arm), L3=830mm(Bucket), a1=930mm(์ํ ์คํ์
), h1=1130mm(์์ง ์คํ์
)"
- "๊ด์ ๋ณ PI ๊ฒ์ธ ํ๋: Swing(Kp=6.0, Ki=0.0), Boom(Kp=12.0, Ki=2.0), Arm(Kp=16.0, Ki=2.0), Bucket(Kp=10.0, Ki=1.0)"
Complete Section Example
### 1.1. CAN ํต์ ๊ธฐ๋ฐ ๋ค์ค ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ตํฉ ์์คํ
๊ตฌ์ถ
- ๋ณธ ์ฌ์
์์ ๋งก์ ์ฃผ์ ์ฐ๊ตฌ ๊ณผ์ ๋ ๊ตด์ฐฉ๊ธฐ ์์จํ๋ฅผ ์ํ CAN ํต์ ๊ธฐ๋ฐ ๋ค์ค ์ผ์ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ตํฉ ์์คํ
๊ฐ๋ฐ์
- ๊ธฐ์กด์ ๊ฐ๋ณ ์ผ์ ์ด์ฉ ๋ฐฉ์์ผ๋ก๋ ์ค์๊ฐ ๋๊ธฐํ ๋ฐ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ํ๋ณด๊ฐ ์ด๋ ค์ฐ๋ฏ๋ก, ํตํฉ CAN ๋ฒ์ค ์ํคํ
์ฒ๋ฅผ ํตํ ์ผ์ ์ตํฉ ์์คํ
๊ตฌ์ถ์ด ํ์ํจ
- ์ด๋ฅผ ์ํด can_bridge_node ๊ฐ๋ฐ์ ํตํ SocketCAN ๊ธฐ๋ฐ ์ค์๊ฐ CAN ํต์ ์ธํฐํ์ด์ค ๊ตฌํ ๋ฐ CAN ID๋ณ ๋ฉ์์ง ํ์ฑ ์์คํ
๊ฐ๋ฐ
- can_config.yaml ์ค์ ํ์ผ์ ํตํด CAN ์ธํฐํ์ด์ค(can0), ๋นํธ๋ ์ดํธ(500kbps), ๋๋ฐ์ด์ค๋ณ CAN ID ๋งคํ ์ฒด๊ณ ๊ตฌํ
- ๋ค์ค ์ผ์ ๋์ ์์ ์ ์ํ ๋ฉํฐ์ค๋ ๋ ์ํคํ
์ฒ ๊ตฌํ ๋ฐ ์ผ์ ๋ฐ์ดํฐ ํ์์คํฌํ ๋๊ธฐํ ์์คํ
๊ตฌ์ถ
๊ทธ๋ฆผ. CAN ํต์ ๊ธฐ๋ฐ ์ผ์ ์ตํฉ ์์คํ
์ํคํ
์ฒ
Figure Captions
Each section must end with a figure caption.
Pattern:
๊ทธ๋ฆผ. [๊ตฌ์ฒด์ ๊ธฐ์ ์ค๋ช
]
Caption Type Selection
| ์น์
ํน์ฑ | ์บก์
์ ํ | ์์ |
|---|
| ์์คํ
๊ตฌ์กฐ | ์ํคํ
์ฒ | "~ ์์คํ
์ํคํ
์ฒ" |
| ์๊ณ ๋ฆฌ์ฆ ํ๋ฆ | ํ๋ฆ๋ | "~ ์๊ณ ๋ฆฌ์ฆ ํ๋ฆ๋" |
| ๋ฐ์ดํฐ ํ๋ฆ | ๋ธ๋ก ๋ค์ด์ด๊ทธ๋จ | "~ ๋ฐ์ดํฐ ํ๋ฆ๋" |
| ์กฐ์ง/์ญํ | ๊ตฌ์ฑ๋ | "~ ๊ตฌ์ฑ๋" |
| ์๊ฐ์ ํ๋ก์ธ์ค | ๋ก๋๋งต | "~ ๋ก๋๋งต" |
| ์ ์ด ์์คํ
| ๋ธ๋ก ๋ค์ด์ด๊ทธ๋จ | "~ ๋ธ๋ก ๋ค์ด์ด๊ทธ๋จ" |
Prohibited Practices
1. Abstract Expressions (์ถ์์ ํํ ๊ธ์ง)
โ "์์คํ
์ ๊ฐ๋ฐํ์์"
โ
"can_bridge_node๋ฅผ ํตํ SocketCAN ๊ธฐ๋ฐ ์ค์๊ฐ CAN ํต์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํจ"
2. Missing Numeric Values (์์น ๋๋ฝ ๊ธ์ง)
โ "๋์ ์ฃผ๊ธฐ๋ก ์ฐ์ฐ"
โ
"20Hz ์ฃผ๊ธฐ๋ก ์ฐ์ฐ"
3. Missing Algorithm Names (์๊ณ ๋ฆฌ์ฆ๋ช
๋๋ฝ ๊ธ์ง)
โ "์ ์ด ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ"
โ
"๊ฒ์ธ ์ค์ผ์ค๋ง(Gain Scheduling) ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ"
4. Missing Units (๋จ์ ๋๋ฝ ๊ธ์ง)
โ "๊ธธ์ด 2464"
โ
"๊ธธ์ด 2464mm"
Domain-Specific Term Substitution
Replace generic terms with domain-specific terms based on research field:
| ๋ฒ์ฉ ์ฉ์ด | ROS2 | AI/ML | ๋ฌผ๋ฆฌํ |
|---|
| ๋ชจ๋ | ๋
ธ๋ | ๋ชจ๋/๋ ์ด์ด | ๋ชจ๋ |
| ์ฒ๋ฆฌ | ํผ๋ธ๋ฆฌ์ | ์ถ๋ก | ์ฐ์ฐ |
| ์ค์ | ํ๋ผ๋ฏธํฐ | ํ์ดํผํ๋ผ๋ฏธํฐ | ํ๋ผ๋ฏธํฐ |
| ์ฐ๊ฒฐ | ํ ํฝ/์๋น์ค | ๋ ์ด์ด ์ฐ๊ฒฐ | ์ธํฐํ์ด์ค |
| ์
๋ ฅ | ๊ตฌ๋
| ์
๋ ฅ ํ
์ | ์
๋ ฅ ์ ํธ |
| ์ถ๋ ฅ | ๋ฐํ | ์ถ๋ ฅ ํ
์ | ์ถ๋ ฅ ์ ํธ |
Validation Checklist
For each subsection, verify: