μ λΉν°μμ΄ κ²μ¬ μλ°μ€ν¬λ¦½νΈ
μΉμ¬μ΄νΈ λ°©λ¬Έμκ° μμ μ μ±κ²© μ νμ κ°νΈνκ² νμ ν μ μλ MBTI κ²μ¬λ μ¬μ©μ μ°Έμ¬ λꡬλ‘μ λΈλ‘κ·Έ νΈλν½ μ μ κ³Ό 체λ₯ μκ° μ¦λμ ν¨κ³Όμ μ λλ€. νΉν μλνλ μ€ ν¬μ€ν λ΄μμ λ°λ‘ μ€ν κ°λ₯ν μ€ν¬λ¦½νΈλ₯Ό μ½μ νλ©΄ λ³λ νμ΄μ§ μ΄λ μμ΄ λ μ κ²½νμ λμΌ μ μμ΅λλ€. λ³Έ κ°μ΄λμμλ μμ HTML/CSS/JavaScriptλ§μΌλ‘ ꡬμ±λ MBTI κ²μ¬ μμ ―μ μλνλ μ€ ν¬μ€νΈ μμ μ§μ μ½μ νλ λ°©λ²μ λ¨κ³λ³λ‘ μ€λͺ ν©λλ€.
- λͺ©ν: μλνλ μ€ ν¬μ€νΈ λ³Έλ¬Έμ 볡쬷λΆμ¬λ£κΈ°λ§μΌλ‘ μλνλ MBTI κ²μ¬ μ€ν¬λ¦½νΈ μ½λλ₯Ό μ 곡
- λμ: νλ‘ νΈμλ κ°λ°μ, λΈλ‘κ±°, μλνλ μ€ μ΄μμ
- μꡬμ¬ν: μλνλ μ€ μλν°μ ν μ€νΈ(HTML) λͺ¨λμμ μ€ν¬λ¦½νΈ νκ·Έλ₯Ό νμ©νλ νκ²½μ΄μ΄μΌ ν¨
μ λΉν°μμ΄ κ²μ¬ μ€ν¬λ¦½νΈ ꡬν λ°©λ²
1. μ€λΉ μ¬ν
- μλνλ μ€ νΈμ§κΈ°μμ ‘ν μ€νΈ’(λλ HTML) λͺ¨λλ‘ μ ν
<script>
μ<style>
νκ·Έ μ½μ μ νμ©νλ νλ¬κ·ΈμΈ μ€μΉ κΆμ₯ (μ: “Insert Headers and Footers” λ±)
2. HTML ꡬ쑰
μλ μ½λλ₯Ό 볡μ¬νμ¬ ν¬μ€ν λ³Έλ¬Έ ν μ€νΈ λͺ¨λμ λΆμ¬λ£μΌμΈμ.
<!-- MBTI κ²μ¬ μμ ― μμ -->
<div id="mbti-quiz">
<div id="mbti-question"></div>
<div id="mbti-options"></div>
<button id="mbti-next" disabled>λ€μ</button>
<div id="mbti-result"></div>
</div>
<!-- MBTI κ²μ¬ μμ ― λ -->
3. CSS μ€νμΌ
μ HTML λ°λ‘ μλμ λ€μ <style>
νκ·Έλ₯Ό μΆκ°νμ¬ κ°λ¨ν λμμΈμ μ μ©ν©λλ€.
<style>
#mbti-quiz {
max-width: 600px;
margin: 20px auto;
padding: 16px;
border: 1px solid #ddd;
border-radius: 8px;
font-family: sans-serif;
}
#mbti-question {
margin-bottom: 12px;
font-size: 1.1rem;
font-weight: bold;
}
.mbti-option {
display: block;
margin-bottom: 8px;
padding: 10px;
border: 1px solid #aaa;
border-radius: 4px;
cursor: pointer;
text-align: center;
}
.mbti-option:hover {
background: #f9f9f9;
}
#mbti-next {
margin-top: 12px;
padding: 8px 16px;
border: none;
border-radius: 4px;
background: #0073aa;
color: #fff;
cursor: pointer;
}
#mbti-next:disabled {
background: #ccc;
cursor: not-allowed;
}
#mbti-result {
margin-top: 16px;
font-size: 1.2rem;
font-weight: bold;
text-align: center;
}
</style>
4. JavaScript λ‘μ§
λ§μ§λ§μΌλ‘ μλ <script>
νκ·Έλ₯Ό λΆμ¬λ£μΌλ©΄ μμ ―μ΄ λμν©λλ€.
<script>
(function(){
const quiz = [
{q:'νν°μ κ°λ©΄ μ¬λλ€κ³Ό μ½κ² λνλ₯Ό μμνλ€.', d:'EI', a:'E', b:'I'},
{q:'λ¬Έμ ν΄κ²° μ μ§κ΄λ³΄λ€λ μ¬μ€κ³Ό λ°μ΄ν°λ₯Ό μ°μ μνλ€.', d:'SN', a:'S', b:'N'},
{q:'κ°μ μ μμλ₯Ό κ³ λ €ν΄ κ²°μ μ λ΄λ¦¬λ νΈμ΄λ€.', d:'TF', a:'F', b:'T'},
{q:'μΌμ μ κ³ννκ³ λ―Έλ¦¬ μ€λΉνλ κ²μ μ νΈνλ€.', d:'JP', a:'J', b:'P'},
{q:'νΌμ μμΌλ©΄ μλμ§κ° μΆ©μ λλ€.', d:'EI', a:'I', b:'E'},
{q:'μΆμμ μΈ κ°λ
μ μ½κ² λ μ¬λ¦°λ€.', d:'SN', a:'N', b:'S'},
{q:'λ
Όλ¦¬μ λΆμμ ν΅ν΄ κ²°μ μ λ΄λ¦°λ€.', d:'TF', a:'T', b:'F'},
{q:'μ μ°νκ² μν©μ λμνλ νΈμ΄λ€.', d:'JP', a:'P', b:'J'}
];
let score = {EI:0, SN:0, TF:0, JP:0}, idx = 0;
const elQ = document.getElementById('mbti-question');
const elO = document.getElementById('mbti-options');
const btn = document.getElementById('mbti-next');
const res = document.getElementById('mbti-result');
function render(){
const cur = quiz[idx];
elQ.textContent = (idx+1) + '. ' + cur.q;
elO.innerHTML = '';
['a','b'].forEach(key=>{
const opt = document.createElement('div');
opt.className = 'mbti-option';
opt.textContent = key==='a'? cur.a : cur.b;
opt.addEventListener('click',()=>{
score[cur.d] += (key==='a'?1:0) + (key==='b'?1:0);
idx++;
btn.disabled = false;
});
elO.appendChild(opt);
});
btn.disabled = true;
res.textContent = '';
}
btn.addEventListener('click',()=>{
if(idx < quiz.length) {
render();
} else {
const type = [
score.EI >= quiz.filter(x=>x.d==='EI').length/2? 'E':'I',
score.SN >= quiz.filter(x=>x.d==='SN').length/2? 'S':'N',
score.TF >= quiz.filter(x=>x.d==='TF').length/2? 'T':'F',
score.JP >= quiz.filter(x=>x.d==='JP').length/2? 'J':'P'
].join('');
res.textContent = 'λΉμ μ MBTI μ νμ ' + type + 'μ
λλ€.';
btn.style.display = 'none';
elO.style.display = 'none';
}
});
render();
})();
</script>
μ¬μ©λ² μλ΄
- μλνλ μ€ κ΄λ¦¬μ ‘κΈμ°κΈ°’ νλ©΄μ μ§μ
- νΈμ§κΈ° μ°μλ¨μμ ‘ν μ€νΈ’(HTML) λͺ¨λ μ ν
- μ HTML ꡬ쑰 → CSS → JavaScript μμλ‘ μ 체 μ½λλ₯Ό 볡μ¬νμ¬ λΆμ¬λ£κΈ°
- 미리보기 λλ 곡κ°λ₯Ό ν΄λ¦νμ¬ μ μ λμ νμΈ
ν: μ€ν¬λ¦½νΈ μ½μ μ΄ μ νλ ν λ§λΌλ©΄ “Insert Headers and Footers” κ°μ νλ¬κ·ΈμΈμ ν΅ν΄ λ³Έλ¬Έμ
<script>
λ₯Ό μ½μ ν μ μμ΅λλ€.
κ²°λ‘
μλνλ μ€ ν¬μ€νΈ λ΄μ μ§μ μ€ν κ°λ₯ν MBTI κ²μ¬ μμ ―μ μ½μ ν¨μΌλ‘μ¨ λΈλ‘κ·Έμ λ°©λ¬Έμ μ°Έμ¬λλ₯Ό λμ΄κ³ , 체λ₯ μκ°μ μ¦κ°μν¬ μ μμ΅λλ€. μ μμ μ½λλ₯Ό κ·Έλλ‘ νμ©νκ±°λ, μ§λ¬Έ/μ€νμΌμ 컀μ€ν°λ§μ΄μ§νμ¬ λμ± νλΆν μ¬μ©μ κ²½νμ μ κ³΅ν΄ λ³΄μΈμ.
λκΈ