* 목차 *

2025년 10월 9일 목요일

일본의 옛 설화 「The Chūgen Rokuzō」> 3.《시모와 두 자루 칼의 사무라이》

 

🌸 《시모와 두 자루 칼의 사무라이》

Shimo and the Samurai with Two Swords


🌼 여름밤의 만남

오래전, 에도 시대의 어느 여름날이었어요.
시모라는 열여섯 살의 소녀가 있었습니다.
시모는 더운 날씨를 식히려 마을 근처를 산책하고 있었어요.
반딧불이가 반짝이고, 풀벌레가 노래하는 고요한 밤이었죠.

그때, 낯선 사무라이 한 사람이 다가왔어요.
두 자루의 칼을 찬 멋진 사람이었어요.
그는 시모를 보며 미소 지었답니다.

“이런 귀여운 아가씨가 이 늦은 시간에 혼자라니, 위험하오.”

시모는 얼굴이 빨개졌지만 용기 내어 말했어요.

“저는 아직 어리고, 부모님과 함께 살아요.”

그 말을 들은 사무라이는 나카카와치 슈젠이라고 자신을 소개했어요.
그날 이후, 시모와 슈젠은 자주 마주치며 이야기하는 사이가 되었답니다.


💌 마음이 자라난 시간

시모는 점점 슈젠을 좋아하게 되었어요.
그는 다정하고 용감했거든요.
하지만 시모는 부모님께 누가 될까 걱정이 되었어요.
그래서 언제나 예의 바르게, 조심스럽게 그를 대했어요.

그러던 어느 날, 슈젠은 아무 말도 남기지 않고 떠나버렸어요.
시모는 슬퍼서 며칠 동안 아팠답니다.
부모님은 약을 지어 오고, 스님에게 기도를 부탁했지만
시간만이 시모의 마음을 천천히 고쳐주었어요.


🏯 다시 만난 사람

어느 날, 시모의 집에 중요한 손님이 온다는 소식이 들렸어요.
그는 바로 나카카와치 슈젠 공, 큰 저택을 가진 다이묘였어요.

시모는 놀랐어요.
“그 슈젠 님이, 바로 그 사람이었어요!”

슈젠은 시모의 부모님 앞에서 이렇게 말했어요.

“이 아이를 내 저택의 시녀로 들이고 싶소.”

부모님은 놀라면서도 기뻐하셨어요.
그렇게 시모는 슈젠의 저택으로 들어가 시녀가 되었어요.


👘 저택에서의 새로운 삶

저택의 부인 오하기님은 아름답지만 조금 무서운 분이었어요.
그리고 다른 시녀들도 많았죠.
시모는 처음엔 모든 게 낯설고 두려웠어요.

하지만 슈젠은 언제나 다정했어요.
그는 시모에게 따뜻한 눈길을 보냈고, 시모도 그의 곁에서 마음이 편안했어요.
저택의 다른 사람들은 부러워했지만, 시모는 늘 겸손했답니다.


🌙 비밀스러운 약속

시간이 지나자 시모는 조금 특별한 비밀을 간직하게 되었어요.
그건 바로 슈젠과의 사랑이 싹튼 마음이었죠.
그는 시모에게 약속했어요.

“당신이 언제나 행복하길 바라오. 내가 꼭 지켜주겠소.”

시모는 그 말을 믿으며 매일 웃었어요.
비록 주인과 시녀의 신분 차이가 있었지만,
서로의 진심은 순수하고 따뜻했답니다.


🌅 떠나간 사람, 남겨진 마음

하지만 세상은 언제나 두 사람의 마음을 지켜주지 않았어요.
슈젠은 먼 곳으로 떠나야 했고,
시모는 다시 혼자 남게 되었어요.

그녀는 그가 떠난 방향을 바라보며 속삭였어요.

“언젠가 다시 만날 수 있겠지요, 슈젠님...”

비록 함께하지 못했지만,
시모는 그를 통해 진심으로 누군가를 사랑하는 마음을 배웠어요.


💖 시모의 마지막 편지

시모는 훗날 이렇게 썼다고 해요.

“그분은 내 인생의 한 줄기 빛이었어요.
사랑은 아프기도 하지만, 누군가를 진심으로 아끼는 마음은
언제까지나 내 안에 남아 있답니다.”


💡 교훈

사랑은 신분도, 거리도, 세월도 넘어서는 마음이에요.
때로는 함께하지 못하더라도,
진심으로 누군가를 아낀 마음은 사라지지 않아요.

시모의 이야기는 우리에게 이렇게 말해줍니다.

💬 “진심은 언젠가 따뜻한 기억으로 남는다.”


🕊️ 《시모와 두 자루 칼의 사무라이》
그 시절, 한 소녀가 세상 속에서 배운 사랑과 용기의 이야기였습니다.



일본의 옛 설화 「The Chūgen Rokuzō」> 2. 괴이한 저택의 비밀 👻

 

《괴이한 저택의 비밀 👻》

The Secret of the Haunted House


🏯 에도의 한 무사, 엔도 사부로자에몬

옛날 일본의 에도 시대, 성 가까이에 엔도 사부로자에몬이라는 정의롭고 용감한 무사가 살고 있었어요.
어느 날, 그의 부하 로쿠조가 이상한 병에 걸렸다는 소식이 전해졌어요.

“전하, 로쿠조가 괴이한 저택에 다녀온 뒤로 정신이 이상해졌습니다.”

엔도는 걱정스러운 얼굴로 생각했어요.

“주군의 성 근처에서 이런 일이 일어나다니, 그냥 둘 수 없지. 내가 직접 가 보겠다.”


🌙 한밤중의 출정

밤이 깊어지고 달이 높이 떴을 때, 엔도는 검을 차고 조용히 집을 나섰어요.
그의 아내는 걱정스러운 마음으로 남편의 옷깃을 잡았지만, 엔도는 미소 지었죠.

“걱정 마오. 귀신이라면 이 칼로 없애겠소.”

그렇게 그는 반초라 불리는 으슥한 거리로 향했습니다.
바람이 불고, 대나무 울타리가 삐걱거렸어요.


💡 수상한 하인 이스케

엔도가 골목을 걷고 있을 때, 멀리서 등불 하나가 다가왔어요.
등불을 든 이는 하급 하인 이스케였습니다.

“이봐! 그쪽 사람!”

이스케는 놀라서 달아났지만, 곧 붙잡혔어요.
그는 무릎을 꿇고 떨며 말했어요.

“제발, 살려주세요! 저도 그 저택에 들어갔다가 큰일 날 뻔했습니다!”

엔도는 눈을 빛냈어요.

“그럼 나를 그곳으로 안내하라. 네 목숨은 살려주겠다.”

겁에 질린 이스케는 결국 그를 괴이한 저택 앞까지 데려다주고 도망쳤습니다.


🏚️ 버려진 집 안으로

저택의 문은 낡고 굳게 닫혀 있었어요.
엔도는 담장 틈을 통해 조용히 안으로 들어갔습니다.
안쪽은 잡초와 부러진 나무들로 가득했고, 정원 한가운데엔 오래된 우물이 있었죠.

그는 우물 근처를 지나 집 안으로 들어갔습니다.
곰팡내가 가득하고, 다다미(일본식 돗자리)는 축축하게 젖어 있었어요.

그때—

“아아… 제발 그만하세요…”

여인의 흐느끼는 목소리가 들려왔어요.
엔도는 놀랐지만 용기를 내어 소리가 나는 쪽으로 걸어갔습니다.


👁️ 벽 속의 얼굴

소리는 점점 가까워졌어요.
엔도가 도코노마(벽감) 앞에 서자, 벽 속에서 희미한 얼굴이 떠올랐어요.

그 얼굴은 아름답지만 슬펐고, 눈에서는 눈물이 흘렀습니다.

“엔도 님, 놀라지 마세요. 저는 이 집의 옛 주인, 오하루입니다.”


💔 슬픈 여인의 이야기

“저는 이 집의 첩이었어요. 하지만 주인의 아내가 저를 미워했지요.
결국 저는 아이와 함께 죽임을 당하고 우물 속에 버려졌습니다.
아무도 제사를 지내주지 않아, 제 영혼은 이곳을 떠나지 못했어요.”

엔도는 고개를 숙였습니다.

“그대의 한을 풀어주겠다. 약속하마.”


⚔️ 정의로운 결단

다음 날, 엔도는 조사를 시작했습니다.
그리고 알게 되었어요.
오하루를 죽게 만든 집안은 바로 오쿠무라 가문이었어요.

엔도는 분노했어요.

“억울한 이를 짓밟은 자는, 이제 내 칼로 심판하겠다.”

그는 오쿠무라의 잘못을 막부에 보고했고, 죄는 밝혀졌습니다.
오하루의 억울함은 드디어 풀렸어요.


🕯️ 영혼의 안식

며칠 뒤, 엔도는 다시 저택을 찾아 향을 피웠습니다.
그리고 작게 기도했어요.

“오하루, 이제 편히 쉬시오.”

그날 밤, 그는 꿈을 꾸었습니다.
오하루가 흰옷을 입고 아기를 안은 채 웃으며 인사했어요.

그 이후, 저택에서는 다시는 울음소리가 들리지 않았답니다.


💡 교훈

모든 억울함은 언젠가 진실로 밝혀진다는 것을 잊지 말아요.
그리고 용기와 정의감으로 남을 도와주는 마음이 세상을 밝게 만든답니다. 🌸


“진정한 용기는 두려움을 넘어 옳은 일을 하는 것이다.”



 

일본의 옛 설화 「The Chūgen Rokuzō」> 1. 🦊 여우 요괴에게 속은 하인 로쿠조

 

🦊 여우 요괴에게 속은 하인 로쿠조

(The Servant Rokuzō and the Fox Spirits)


📖 옛날옛날, 일본 에도 시대에
착하지만 조금 어리숙한 하인 로쿠조가 살고 있었어요.
그는 무사(사무라이) 집안에서 심부름과 허드렛일을 하는 ‘중간(ちゅうげん, Chūgen)’이었죠.


☀️ 착한 마음으로 시작된 이야기

어느 더운 여름날, 로쿠조는 짚신 가게에서 일을 마치고 언덕을 오르고 있었어요.
그런데 그때, 예쁜 여자가 무거운 짐을 들고 서 있는 걸 보았어요.

“저기요… 너무 무거워서 들 수가 없어요.
조금만 도와주실래요?”

로쿠조는 마음씨가 착했어요.
“그래요, 제가 도와드릴게요!” 하며 짐을 대신 들어주었죠.

하지만 그 여자는 가게마다 들러 과일, 채소, 과자, 술을 계속 샀어요!
짐은 점점 커지고 무거워졌어요.
그래도 로쿠조는 참고 언덕을 올랐어요. 💪


🏯 낯선 저택의 세 자매

드디어 언덕 꼭대기에 다다르자,
여자는 커다란 저택의 문 앞에서 멈춰 섰어요.

문이 열리자, 예쁜 자매 세 명이 로쿠조를 반갑게 맞았어요.

“이렇게 큰 짐을 다 들고 왔다니, 정말 대단해요!”
“힘이 아주 좋으시네요~”

그들은 웃음을 참지 못하고 깔깔 웃었어요.
로쿠조는 약간 기분이 상했지만, 그래도 착하게 웃었죠.

큰언니가 금빛 동전 하나를 건네며 말했어요.

“이건 수고비예요. 받아주세요.”

로쿠조는 고맙다며 받았지만,
그 순간 옆에서 따뜻한 사케(술) 냄새가 솔솔 풍겼어요. 🍶

“술 한잔만 주실 수 있을까요?”

자매들은 미소를 지으며 대답했어요.

“물론이죠. 술도 드리고, 맛있는 음식도 드릴게요.”


🍶 꿈같은 잔치와 끔찍한 밤

로쿠조는 맛있는 음식과 술을 잔뜩 먹었어요.
자매들은 노래를 부르고 춤을 추며 즐겁게 해줬죠.

그는 점점 취했고, 눈이 스르르 감겼어요… 😴

그런데 그때!
예쁜 여자가 갑자기 무서운 여우로 변했어요! 🦊

“돈, 술, 욕심… 네가 원한 건 그것이었지!
이제는 네가 값을 치를 차례야!”

로쿠조는 무서워서 외쳤어요.

“남무 아미타불! 제발 살려주세요!”


🌄 아침의 깨달음

다음날 아침,
로쿠조는 풀밭 위에서 깨어났어요.

주변엔 아무도 없고,
그가 받았던 금빛 동전은 나뭇잎 한 장으로 변해 있었어요. 🍃

그제야 그는 알았어요.

“아, 여우에게 홀렸구나…”

그 후로 로쿠조는 다시는 낯선 여자를 쉽게 돕지 않았답니다.


💡 교훈

  • 너무 욕심을 내거나 술에 취하면 나쁜 일이 생길 수 있어요.

  • 착한 마음은 좋지만, 조심성도 필요해요!


🎨 이야기 속 그림



따뜻한 수채화 느낌으로 그린 ‘여우에게 속은 하인 로쿠조’ –
순진한 하인 로쿠조와 교활한 여우 요괴가 등장하는 장면입니다.


📚 이 이야기는 일본의 옛 설화 「The Chūgen Rokuzō」를
초등학생도 쉽게 읽을 수 있도록 각색한 버전이에요.

2025년 9월 27일 토요일

초등학생의 정서인식 및 정서표현의 부족이 공격성 및 또래관계에 미치는 영향

초등학생의 정서인식 및 정서표현의 부족이 공격성 및 또래관계에 미치는 영향|RISS 상세보기

한국교육학술정보원(KERIS)에서 제공하는 학술연구정보서비스(RISS)

우리 아이가 공격적인 진짜 이유: 감정을 표현하지 못해서입니다

우리 아이가 친구를 때리거나 거친 말을 할 때, 혹은 친구들과 잘 어울리지 못하고 겉도는 모습을 볼 때 부모님과 선생님의 마음은 무너져 내립니다. '대체 왜 이러는 걸까?', '내가 뭘 잘못한 걸까?' 수많은 질문이 머릿속을 맴돕니다.

하지만 아이의 공격적인 행동이나 사회적인 어려움이 단순히 '나쁜 아이'라서가 아니라, 자신의 감정을 제대로 이해하고 표현하지 못하는 데서 오는 신호일 수 있다면 어떨까요? 최근 부산 지역 초등학생들을 대상으로 한 한 연구는 감정 표현 능력과 아이의 공격성, 그리고 친구 관계 사이에 놀라운 연관성이 있음을 보여줍니다. 이 연구는 감정 표현의 어려움이 어떻게 공격성으로 이어지고, 이것이 왜 친구 관계를 직접적으로 손상시키며, 특히 어떤 감정이 관계를 망가뜨리는 결정적인 요인이 되는지를 단계적으로 보여줍니다.

감정 표현이 서툴수록 공격성이 높아집니다

가장 먼저 주목해야 할 핵심적인 발견은 ‘감정 표현의 어려움’과 ‘공격성’이 비례한다는 점입니다. 부산 지역 초등학교 5, 6학년 학생 267명을 대상으로 한 연구 결과, 자신의 감정을 인식하고 표현하는 데 어려움을 겪는 아이일수록 공격적인 성향이 더 높게 나타났습니다. (여기서 ‘감정 표현’이란 단순히 감정을 드러내는 것뿐만 아니라, 자신의 감정을 정확히 알아차리는 ‘감정 인식’ 능력까지 포함하는 개념입니다.)

이는 아이가 자신의 감정을 말이나 적절한 행동으로 표현하는 방법을 모를 때, 그 감정이 신체적 공격(때리기), 언어적 공격(거친 말), 분노, 그리고 적의심으로 표출될 가능성이 높다는 것을 의미합니다. 특히 이 연구에서는 감정 표현의 어려움이 **‘적의성(남에 대한 의심, 질투심, 미워하기 등)’**과 가장 강한 연관성을 보였습니다.

이는 특히 주목할 만한 결과입니다. 아이가 자신의 불편한 감정—질투, 서운함, 억울함—을 표현할 방법을 모르니, 그 감정들이 해소되지 못하고 마음속에 쌓여 남을 의심하고 미워하는 ‘적의성’이라는 앙금으로 남게 되는 것입니다. 그리고 이 앙금이야말로 갑작스러운 공격 행동의 가장 강력한 연료가 됩니다.

더욱 놀라운 점은, 이 연구가 아이의 감정 표현 어려움이 아이들 간의 공격성 차이를 50%나 설명할 수 있다고 분석했다는 사실입니다. 이는 아이의 공격적인 행동의 상당 부분이 감정을 제대로 다루지 못하는 문제에서 비롯될 수 있음을 시사합니다.

연구 논문의 한 구절은 이 관계를 명확하게 설명합니다.

즉, 정서인식과 정서표현 능력이 부족할수록 신체적 공격행동, 적의성, 언어적 공격행동, 분노 성향이 높다는 의미이다.

결국 아이의 공격성은 문제 행동 그 자체가 아니라, 내면의 감정을 다룰 어휘와 기술이 부족하다는 아이의 절박한 '도움 요청'일 수 있습니다.

감정을 표현하지 못하면 친구 관계가 어려워집니다

두 번째 중요한 발견은 감정 표현 능력이 친구 관계의 질에도 직접적인 영향을 미친다는 것입니다. 연구에 따르면, 감정 표현에 어려움을 겪는 아이들은 또래 관계에서도 부정적인 결과를 보였습니다.

구체적으로, 감정 표현이 서툰 아이들은 친구들 사이에서의 '주도성(리더십, 주도력)'과 '협동/공감' 능력 점수가 낮게 나타났습니다. "나 지금 속상해", "네가 그렇게 말해서 화가 나"와 같이 자신의 감정을 명확히 표현하지 못하는 아이는 다음과 같은 어려움을 겪을 수 있습니다.

  • 놀이나 모둠 활동에서 자기 의견을 내고 상황을 이끌어가는 데 소극적이게 됩니다.
  • 친구의 감정을 이해하고 공감하는 데 어려움을 느껴 협동적인 관계를 맺기 힘들어집니다.

이것은 감정 표현 기술이 건강한 사회적 상호작용의 기초체력과 같다는 것을 보여줍니다. 자신의 감정을 말로 표현하지 못하는 아이는 오해를 사거나 위축되기 쉽고, 이는 결국 친구 관계의 어려움으로 이어지게 됩니다. 결국 감정 표현 능력의 부족은 내면적으로는 공격성을 키우고, 외면적으로는 사회적 고립을 초래하는 이중고를 만드는 셈입니다.

친구 관계를 망치는 가장 큰 적은 '분노'입니다

마지막으로, 연구는 공격성이 또래 관계에 미치는 영향을 더 깊이 파고들었습니다. 예상대로 공격성이 높을수록 친구 관계는 나빠졌습니다. 그런데 공격성의 여러 종류(신체적, 언어적, 적의성, 분노) 중에서 **친구 관계에 가장 치명적인 영향을 미치는 것은 바로 '분노'**였습니다.

회귀 분석 결과, 아이의 제어되지 않는 분노는 또래 관계의 질을 떨어뜨리는 가장 강력하고 통계적으로 유의미한 예측 변인이었습니다.

이는 아이가 화를 참지 못하고 폭발시키는 모습이 다른 친구들에게 불안감과 불편함을 주기 때문입니다. 아무리 친한 친구라도 예측 불가능하게 화를 내는 아이 곁에 머물기는 어렵습니다. 따라서 아이의 공격성을 지도할 때, 단순히 '때리지 마' 또는 '욕하지 마'라고 말하는 것을 넘어, 아이가 자신의 '화'를 인지하고 건강하게 다룰 수 있도록 돕는 것이 관계 회복의 핵심 열쇠가 됩니다.

결론: 우리는 무엇을 할 수 있을까요?

이 연구가 우리에게 주는 메시지는 분명합니다. 아이가 자신의 감정을 인식하고 건강하게 표현하는 능력은 그저 '마음이 따뜻한 아이'로 키우기 위한 부가적인 기술이 아닙니다. 이것은 공격성을 통제하고 건강한 친구 관계를 맺는 데 필수적인 생존 도구입니다.

연구진 역시 아이들의 정서 인식 및 표현 능력을 향상시키는 교육 프로그램의 필요성을 제언하고 있습니다. 아이의 공격적인 행동을 꾸짖거나 친구 없는 것을 탓하기 전에, 우리는 아이가 자신의 마음을 들여다보고 표현할 수 있도록 도와야 합니다.

오늘, 우리 아이에게 **"지금 기분이 어때?"**라고 물어보는 것부터 시작해 보는 건 어떨까요?




google notebookLM 활용 예시

 google notebookLM 활용 예시


Kodu 비주얼 프로그래밍 언어를 사용한 초등학생의 창의적 3D 게임프로그래밍 학습|RISS 상세보기

한국교육학술정보원(KERIS)에서 제공하는 학술연구정보서비스(RISS)

---------------------

게임 만들기가 생각보다 '힘들어서' 더 재미있었던 아이들: 코딩 교육의 의외의 발견

아이들은 게임을 좋아합니다. 그러니 게임을 직접 '만드는' 것도 마냥 즐겁고 쉬울 것이라고 생각하기 쉽습니다. 우리는 종종 아이들에게 코딩을 가르칠 때 이 '재미'라는 요소를 전면에 내세웁니다. 하지만 만약 아이들이 코딩 교육에서 얻는 가장 큰 가치가 그 과정의 '어려움'과 '좌절'을 극복하는 데 있다면 어떨까요?

이 질문은 단순한 추측이 아닙니다. 2012년에 발표된 한 연구는 초등학교 6학년 27명을 대상으로, 무려 30차시에 걸쳐 'Kodu'라는 시각적 프로그래밍 언어로 3D 게임을 만들게 했습니다. 그리고 그 긴 여정 속에서 아이들의 학습 경험에 대한 놀라운 통찰을 발견했습니다. 이 글은 그 연구 결과를 바탕으로, 코딩 교육의 본질에 대해 다시 한번 생각해 보는 계기를 제공하고자 합니다.

--------------------------------------------------------------------------------

1. '재미'의 진짜 의미는 '쉬움'이 아니라 '성취감'이었습니다.

연구에 참여한 학생들은 게임 제작 과정을 분명 '재미있다'고 표현했습니다. 하지만 역설적이게도, 그들이 남긴 소감문(성찰글)은 '힘들다', '어렵다'는 표현으로 가득했습니다. 어떻게 힘들면서 동시에 재미있을 수 있었을까요?

분석 결과, 아이들이 느낀 진정한 '재미'는 아무런 막힘 없이 순조롭게 진행되는 과정에서 오는 쾌락이 아니었습니다. 그것은 자신의 머릿속 아이디어가 생각처럼 구현되지 않는 어려움에 맞서고, 수많은 오류를 수정하며 마침내 원하는 기능을 구현해냈을 때 느끼는 짜릿한 '보람'과 '성취감'이었습니다. 쉽기 때문에 재미있는 것이 아니라, 어려움을 극복했기 때문에 재미있었던 것입니다.

한 학생은 자신의 경험을 이렇게 요약했습니다.

“kodu는 정말 힘들지만 만든 만큼 보람이 있었다.”

2. 복잡한 코딩 문법보다 '눈에 보이는' 프로그래밍이 더 효과적이었습니다.

이 연구에서 사용된 'Kodu'는 C언어나 파이썬처럼 복잡한 텍스트를 입력하는 방식이 아닙니다. 'When(어떤 조건일 때)'과 'Do(무엇을 하라)'처럼 직관적인 아이콘을 조합하여 명령을 만드는 시각적 프로그래밍 언어입니다.

연구에 참여한 학생의 70%는 프로그래밍 경험이 전무했습니다. 하지만 이런 시각적인 방식 덕분에 아이들은 조건, 순차, 반복과 같은 추상적인 프로그래밍 개념을 쉽게 이해할 수 있었습니다. 내가 만든 명령이 3D 게임 세계 속 캐릭터의 행동으로 즉각 눈앞에 나타나는 경험은, 아이들이 논리적 사고의 원리를 몸으로 체득하게 만드는 가장 효과적인 방법이었습니다.

연구 결과는 매우 설득력 있었습니다. 학생들의 82%('매우 그렇다' 47%, '그렇다' 35%)가 Kodu가 프로그래밍 언어를 배우는 데 도움이 되었다고 긍정적으로 답했으며, '보통이다'라는 응답까지 포함하면 95%의 학생이 부정적인 의견을 보이지 않았습니다. 이는 코딩 교육의 초기 단계에서는 복잡한 문법 암기보다, 자신의 생각이 즉각적인 결과물로 이어지는 직관적이고 시각적인 접근법이 훨씬 효과적이라는 사실을 보여줍니다.

3. 아이들은 코딩이 아니라 '문제 해결'과 '스토리텔링'을 배우고 있었습니다.

이 교육 과정은 단순히 Kodu라는 도구의 사용법을 가르치는 데 그치지 않았습니다. 학생들은 팀을 이루어 자신들이 만들 게임의 주제와 시나리오를 직접 정했습니다. 구체적인 규칙을 담은 '게임 설계서'를 작성하고, 게임의 논리적 흐름을 보여주는 '순서도'까지 그리는 본격적인 프로젝트를 수행했습니다.

즉, '게임 만들기'라는 하나의 큰 목표가 아이들을 자연스럽게 '창의적 문제 해결 과정' 전체로 이끌었던 것입니다. 아이들은 스스로 문제를 정의하고(어떤 게임을 만들까?), 해결책을 논리적으로 설계하며(규칙은 어떻게 정할까?), 자신만의 이야기를 창조하는(주인공과 스토리는?) 과정을 온전히 경험했습니다. 이는 결코 우연이 아니었습니다. 이 연구의 핵심 목표 자체가 코딩 문법 교육이 아니라, 게임 제작을 매개로 창의성, 문제 해결 능력, 그리고 스토리텔링 역량을 기르는 것이었기 때문입니다.

4. 가장 큰 장벽은 기술이 아닌 '내 아이디어를 구현하는 힘듦'이었습니다.

학생들이 겪은 가장 큰 어려움은 무엇이었을까요? 명령어가 영어로 되어 있다는 점이나 기술적인 장벽이 아니었습니다. 아이들을 가장 힘들게 한 것은 바로 자신의 머릿속에 있는 창의적인 아이디어를 실제 작동하는 게임으로 구현하는 과정 그 자체였습니다.

상상 속에서는 완벽했던 게임이 막상 만들려고 하니 온갖 문제에 부딪히는 현실. 이 상상과 현실의 간극을 메우는 과정에서 오는 좌절과 고민은 학생들의 소감문에 생생하게 드러납니다.

“처음에는 내 생각대로 잘 풀렸는데 중간부터는 어려운 부분으로 들어가니까 점점 힘들어졌다. 아 게임 하나 만들기가 왜 이렇게 힘들지 하는 생각이 들었다.”

하지만 이 '힘듦'은 결코 실패가 아니었습니다. 이것은 모든 창작자가 겪는 본질적인 성장통입니다. 아이들은 이 과정을 통해 추상적인 아이디어를 구체적인 논리로 바꾸는 끈기와 문제 해결 능력을 길렀습니다. 이 '의미 있는 어려움'을 극복하는 경험이야말로, 이 교육이 아이들에게 준 가장 큰 선물이었습니다.

--------------------------------------------------------------------------------

결론: 우리 아이들에게 필요한 것은 '의미 있는 어려움'

초등학교 6학년 학생들의 30차시에 걸친 3D 게임 제작 경험은 우리에게 중요한 사실을 알려줍니다. 진정한 학습과 성장은 '쉽고 재미있는' 과정이 아니라, '의미 있는 어려움'을 스스로의 힘으로 극복하는 과정에서 일어난다는 것입니다. 아이들은 게임 만들기가 어려웠기 때문에 더 깊이 몰입했고, 힘들었기 때문에 더 큰 성취감을 느꼈습니다.

혹시 우리는 아이들에게 너무 '쉬운' 성공만을 가르치려 하는 것은 아닐까요? 어쩌면 아이들에게 가장 필요한 교육은 스스로 문제를 정의하고 해결하며 때로는 실패하고 다시 일어서는, 바로 그 '의미 있는 어려움'을 경험하게 해주는 것일지도 모릅니다.




2025년 9월 18일 목요일

2025 1030 부산시교육청 apps script 바이브코딩 심화버전 직무연수 참고자료

2025 0918 부산시교육청 apps script 바이브코딩 직무연수 참고자료

google aistudio  예시 데이터

이름,성별,친한 친구,긍정 관계 이유,싫어하는 친구,부정 관계 이유
김재현,남,박서준,성격이 잘 맞아서,이수민,말투가 거슬림
박서준,남,김재현,항상 나에게 먼저 다가와서,차은호,너무 시끄러움
이수민,여,최유진,같이 다니면서 친해졌어요,백현우,자꾸 내 물건을 건드림
김도윤,남,정우진,조용히 옆에서 잘 도와줘서,오나영,공부를 방해함
최유진,여,이수민,예전에 짝꿍이라서 친했음,박찬호,수업에 집중 안 함
정하늘,여,박서준,취향이 비슷해서,백현우,예의가 없음
강민준,남,서지우,운동을 같이 자주 함,김도윤,나랑 너무 달라서
서지우,남,강민준,유머 감각이 좋아서,정하늘,가끔 짜증냄
정우진,남,한예은,같이 급식 먹는 사이,강민준,너무 말이 많음
한예은,여,김도윤,내가 힘들 때 위로해 줌,오나영,나한테만 까칠함
오나영,여,민하은,둘 다 조용해서,이수민,너무 말이 많음
민하은,여,오나영,공통 관심사가 많음,정우진,나를 무시함
윤서아,여,차은호,같이 게임을 자주 함,아직 잘 모르겠어요.,
차은호,남,윤서아,리더십이 있어서,박서준,내 의견을 무시함
백현우,남,김재현,그냥 이유 없이 제일 친함,최유진,나한테 잔소리함
박찬호,남,아직 잘 모르겠어요.,,백현우,내가 싫어하는 행동만 함

------------------------

학생 설문 샘플 데이터 (교사에게 바라는 점 30개)

  1. 항상 친절하게 대해주셔서 감사해요.

  2. 수업 시간에 조금 더 천천히 설명해주시면 좋겠어요.

  3. 질문할 때 눈치 보이지 않게 해주시면 좋겠어요.

  4. 학생들 의견을 더 자주 들어주셨으면 합니다.

  5. 너무 무섭게 혼내지 않으셨으면 해요.

  6. 칭찬을 더 자주 해주시면 힘이 날 것 같아요.

  7. 숙제가 너무 많아서 조금 줄여주시면 좋겠어요.

  8. 시험 전에 요점 정리를 간단히 해주시면 감사하겠습니다.

  9. 수업 시간에 농담도 조금 섞어주시면 재밌을 것 같아요.

  10. 상담 시간을 조금 더 자주 가져주셨으면 합니다.

  11. 학생마다 다르게 접근해주셔서 좋았어요.

  12. 공부뿐만 아니라 고민도 들어주시면 좋겠어요.

  13. 피드백을 조금 더 구체적으로 주시면 감사하겠습니다.

  14. 발표를 잘 못하는 친구들도 배려해주시면 좋겠어요.

  15. 실수했을 때 기회를 한 번 더 주셨으면 좋겠어요.

  16. 수업 분위기를 조금 더 편하게 만들어주시면 좋겠어요.

  17. 교무실에서도 따뜻하게 인사해주셔서 좋아요.

  18. 학생들의 노력도 인정해주시면 좋겠습니다.

  19. 너무 빠르게 진도를 나가서 따라가기 힘들어요.

  20. 한 명 한 명의 이름을 불러주셔서 좋았어요.

  21. 조금 더 웃는 얼굴로 수업해주시면 분위기가 좋아질 것 같아요.

  22. 지적보다 칭찬을 먼저 해주시면 좋겠어요.

  23. 이해가 안 될 때 다시 물어봐도 괜찮은 분위기를 만들어주세요.

  24. 수업 자료를 미리 공유해주시면 복습하기 좋을 것 같아요.

  25. 학생들끼리 싸웠을 때 공정하게 판단해주셔서 좋아요.

  26. 휴식 시간에도 대화할 수 있는 분위기면 좋겠어요.

  27. 너무 진지할 때 가끔 유머를 섞어주시면 좋겠어요.

  28. 학급 행사에도 적극적으로 참여해주시면 감사하겠습니다.

  29. 저희의 이야기를 조금 더 들어주셨으면 좋겠어요.

  30. 선생님이 늘 응원해주셔서 학교생활이 즐겁습니다.

-----------------------------

과제1

🟢 Code.gs

function doGet() { return HtmlService.createHtmlOutputFromFile('index'); } // 답안 확인하고 시트에 기록 function checkAnswer(answer, name) { const correctAnswer = "apple"; // 정답 고정 const question = "사과는 영어로?"; // 정답 여부 판정 let result = (answer.toLowerCase().trim() === correctAnswer) ? "정답" : "오답"; // 현재 스프레드시트 가져오기 const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName("기록") || ss.insertSheet("기록"); // 기록 저장: 날짜, 이름, 문제, 제출 답, 결과 sheet.appendRow([new Date(), name, question, answer, result]); return result; }

🟢 index.html

<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <h2>단어 퀴즈</h2> <p>문제: 사과는 영어로?</p> <label>이름: <input type="text" id="name"></label><br><br> <label>정답: <input type="text" id="answer"></label><br><br> <button onclick="submitAnswer()">제출</button> <p id="result"></p> <script> function submitAnswer() { const name = document.getElementById("name").value; const answer = document.getElementById("answer").value; google.script.run.withSuccessHandler(function(res) { document.getElementById("result").innerText = "결과: " + res; }).checkAnswer(answer, name); } </script> </body> </html>

https://sheets.new


<실습2>

🟢 Code.gs

function doGet() { return HtmlService.createHtmlOutputFromFile('index'); } // 문제 불러오기 function getQuestions() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName("문제"); const data = sheet.getDataRange().getValues(); // 전체 불러오기 const headers = data.shift(); // 첫 행(헤더) 제거 return data.map(row => ({ number: row[0], question: row[1], answer: row[2] })); } // 답안 채점 function submitAnswers(answers, name) { const ss = SpreadsheetApp.getActiveSpreadsheet(); const qSheet = ss.getSheetByName("문제"); const data = qSheet.getDataRange().getValues(); data.shift(); // 헤더 제거 let score = 0; let correctCount = 0; data.forEach((row, idx) => { const correct = String(row[2]).toLowerCase().trim(); const studentAnswer = String(answers[idx] || "").toLowerCase().trim(); if (studentAnswer === correct) { score += 1; correctCount += 1; } }); // 성적 시트에 기록 const sSheet = ss.getSheetByName("성적") || ss.insertSheet("성적"); sSheet.appendRow([new Date(), name, score, data.length, correctCount]); return { score: score, total: data.length, correct: correctCount }; }

🟢 index.html 

<!DOCTYPE html> <html> <head><base target="_top"></head> <body> <h2>단어 퀴즈</h2> <label>이름: <input type="text" id="name"></label> <div id="quiz"></div> <button onclick="submit()">제출</button> <p id="result"></p> <script> let questions = []; // 문제 불러오기 google.script.run.withSuccessHandler(function(res) { questions = res; const quizDiv = document.getElementById("quiz"); res.forEach((q, i) => { quizDiv.innerHTML += ` <p>${q.number}. ${q.question}</p> <input type="text" id="q${i}"> `; }); }).getQuestions(); // 제출 function submit() { const name = document.getElementById("name").value; const answers = questions.map((q, i) => document.getElementById("q"+i).value); google.script.run .withSuccessHandler(function(res) { document.getElementById("result").innerText = `점수: ${res.score}/${res.total} (맞힌 문제: ${res.correct})`; }) .withFailureHandler(function(err) { document.getElementById("result").innerText = "⚠ 오류: " + err.message; }) .submitAnswers(answers, name); } </script> </body> </html>


번호
문제 정답
1 한글을 창제하여 우리 글자를 만들고, 집현전을 설치해 학문을 발전시킨 왕은 누구일까요? 세종대왕
2 임진왜란 때 거북선을 만들고 명량대첩에서 큰 승리를 거둔 장군은 누구일까요? 이순신
3 고려 시대 무신 집권기에 몽골과 싸우며 삼별초를 이끌었던 장군은 누구일까요? 김윤후
4 신라 시대에 삼국을 통일하고 화랑도를 발전시킨 왕은 누구일까요? 김춘추(태종 무열왕)
5 조선 중기의 여류 시인으로, 뛰어난 문장과 글씨로 유명했던 인물은 누구일까요? 신사임당
6 고려를 건국하고 송악에 도읍을 정한 왕은 누구일까요? 왕건
7 조선 후기 실학자로 『목민심서』를 저술한 사람은 누구일까요? 정약용
8 발해를 건국한 사람은 누구일까요? 대조영
9 신라 최초의 여왕으로 나라를 안정적으로 다스린 인물은 누구일까요? 선덕여왕
10 조선 전기의 충신으로, 단종을 지키려다 사육신으로 불린 인물 중 한 명은 누구일까요? 성삼문

2025년 9월 9일 화요일

마을 프로젝트 (여러 채의 집 이어 붙이기)

 

마을 프로젝트 (여러 채의 집 이어 붙이기)

집 하나만 있어도 멋지지만, 여러 채의 집이 모이면 마을이 됩니다.
이번에는 앞에서 만든 집 코드를 함수로 묶어서, 여러 위치에 반복해서 불러와 마을을 만들어 볼 거예요.


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 집 크기

let width = 7;

let height = 5;

let depth = 7;


// 집 만드는 함수

function buildHouse(baseX, baseY, baseZ, blockType) {

  // 벽 만들기

  for (let y = 0; y < height; y++) {

    for (let x = 0; x < width; x++) {

      for (let z = 0; z < depth; z++) {

        if (x === 0 || x === width - 1 || z === 0 || z === depth - 1) {

          let newPos = { x: baseX + x, y: baseY + y, z: baseZ + z };

          world.setBlock(newPos, blockType);

        }

      }

    }

  }


  // 지붕

  for (let x = 0; x < width; x++) {

    for (let z = 0; z < depth; z++) {

      let roofPos = { x: baseX + x, y: baseY + height, z: baseZ + z };

      world.setBlock(roofPos, "wood");

    }

  }

}


// 마을 만들기 (집 여러 채 반복)

for (let i = 0; i < 3; i++) {

  for (let j = 0; j < 2; j++) {

    let offsetX = pos.x + (i * (width + 3));

    let offsetZ = pos.z + (j * (depth + 3));

    buildHouse(offsetX, pos.y, offsetZ, "stone");

  }

}



무슨 뜻일까? 🤔

  • buildHouse(...) → 집 짓는 코드를 함수로 만들어서 필요할 때마다 호출해요.

  • for (let i, j) → 반복문 2개를 사용해, 집을 행렬처럼 배치해요.

  • offsetX, offsetZ → 집이 겹치지 않도록 가로·세로 간격을 주었어요.

결과: 돌(stone) 블록으로 된 집들이 규칙적으로 배열되어, 작은 마을이 완성돼요!


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 여러 채의 집을 반복해서 배치해 작은 마을을 만드는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 여러 채가 모여 작은 마을이 생겨요!”


실습 미션 🎯

  • 집의 블록 종류를 "stone", "wood", "bricks"로 다양하게 바꿔 보세요.

  • 집 간격을 +3 대신 +5로 바꿔 더 넓은 마을을 만들어 보세요.

  • 마을 한가운데 "fountain" 블록(예: 물로 만든 분수)을 설치해 보세요.


마당과 길 만들기

 

마당과 길 만들기

집이 완성되었으니, 이제 주변도 멋지게 꾸며야겠죠?
이번에는 집 앞에 마당을 꾸미고, 길을 만들어서 나만의 공간을 완성해 봅시다.


코드 예시 💻

// 플레이어 위치 불러오기

let player = world.getPlayers()[0];

let pos = player.location;


// 마당 바닥 만들기 (잔디)

let yardWidth = 12;

let yardDepth = 12;

for (let x = 0; x < yardWidth; x++) {

  for (let z = 0; z < yardDepth; z++) {

    let yardPos = { x: pos.x - 2 + x, y: pos.y, z: pos.z - 2 + z };

    world.setBlock(yardPos, "grass_block");

  }

}


// 길 만들기 (집 앞에서 마당 입구까지)

for (let z = 0; z < 8; z++) {

  let pathPos = { x: pos.x + 3, y: pos.y, z: pos.z - z };

  world.setBlock(pathPos, "cobblestone");

}



무슨 뜻일까? 🤔

  • grass_block → 마당 바닥은 풀 블록으로 깔았어요.

  • yardWidth / yardDepth → 마당 크기를 정해요. (12×12 크기)

  • cobblestone → 집 문 앞에서 마당 입구까지 길을 돌로 만들어요.

결과: 집 앞에 넓은 초록 마당이 생기고, 그 위로 돌길이 쭉 연결돼요!


챗GPT에게 부탁하기 💬

나:

마인크래프트에서 자바스크립트로 집 앞에 마당을 만들고 길을 이어주는 코드를 알려줘


챗GPT:
“이 코드를 실행하면 집 앞에 풀밭 마당과 돌길이 생겨요!”


실습 미션 🎯

  • 길을 "stone_bricks"로 바꿔서 튼튼하게 만들어 보세요.

  • 길 양쪽에 "torch"를 세워 가로등처럼 꾸며 보세요.

  • 마당에 "flower" 블록을 심어서 정원을 만들어 보세요.