===== 모르스 부호 변환기 =====
자바스크립트, 파이썬, port 3040 으로 웹 접속
수정된 버전입니다. (2026/09/05)
수정 사항은 각 스페이스 (출력되는 내용에서 '/'로 표시) 사이에 0.3초의 공백이 추가되었습니다.
# 2026.09.05
# morse-letter to morse ver 0.7
# written by 6K2LSV
# python3 에서 작동
# pip3 install flask jamo
# port number 3040
from flask import Flask, request, render_template_string
import json
from jamo import h2j, j2hcj
app = Flask(__name__)
# 모르스 부호 사전
MORSE_DICT = {
'ㄱ': '.-..', 'ㄴ': '..-.', 'ㄷ': '-...', 'ㄹ': '...-', 'ㅁ': '--', 'ㅂ': '.--.',
'ㅅ': '--.', 'ㅇ': '-.-', 'ㅈ': '.---', 'ㅊ': '-.-.', 'ㅋ': '-..-', 'ㅌ': '--..',
'ㅍ': '---.', 'ㅎ': '.---.', 'ㄺ' : '.-....-', 'ㄻ' : '.-..--', 'ㄼ' : '.-.....-',
'ㄿ' : '.-....-.', 'ㅀ' : '.-..--..', 'ㄽ' : '..--...', 'ㄲ': '.-...-..',
'ㄳ' : '--....', 'ㄵ' : '.---.', 'ㄶ' : '.--...--.', 'ㄸ' : '..--', 'ㅃ' : '..--..',
'ㅆ' : '......', 'ㅄ' : '---.--.-', 'ㅉ' : '..-...-.',
'ㅏ' : '.', '야' : '..', 'ㅓ' : '-', 'ㅕ' : '...', 'ㅗ' : '.-', 'ㅛ' : '-.',
'ㅜ' : '....', 'ㅠ' : '.-.', 'ㅡ' : '-..', 'ㅣ' : '..-', 'ㅐ' : '.---', 'ㅔ' : '--..',
'ㅙ' : '.-..-', 'ㅘ' : '.-.-.-', 'ㅝ' : '..--', 'ㅚ' : '--..', 'ㅒ' : '..--.-',
'ㅖ' : '..--', 'ㅟ' : '----.-', 'ㅢ' : '...-.-..',
'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..',
'1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----',
' ': '/'
}
HTML_TEMPLATE = """
모르스 변환기
📟 한글, 영어, 숫자 모르스 변환기
{% if pair_data %}
{% endif %}
"""
@app.route('/', methods=['GET', 'POST'])
def index():
input_text = ""
pair_data = []
if request.method == 'POST':
input_text = request.form.get('text', '')
# 자모 분리 및 대문자화
processed_chars = list(j2hcj(h2j(input_text.upper())))
for i, char in enumerate(processed_chars):
pair_data.append({
'id': i,
'char': char,
'morse': MORSE_DICT.get(char, char)
})
return render_template_string(HTML_TEMPLATE, pair_data=pair_data, input_text=input_text)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3040, debug=False)
원래 소스 코드는 아래에 ..
# pip3 instasll flask jamo
from flask import Flask, request, render_template_string
from jamo import h2j, j2hcj
app = Flask(__name__)
MORSE_DICT = {
'ㄱ': '.-..', 'ㄴ': '..-.', 'ㄷ': '-...', 'ㄹ': '...-', 'ㅁ': '--',
'ㅂ': '.--.', 'ㅅ': '--.', 'ㅇ': '-.-', 'ㅈ': '.---', 'ㅊ': '-.-.',
'ㅋ': '-..-', 'ㅌ': '--..', 'ㅍ': '---.', 'ㅎ': '.---.',
'ㄺ' : '.-....-', 'ㄻ' : '.-..--', 'ㄼ' : '.-.....-',
'ㄿ' : '.-....-.', 'ㅀ' : '.-..--..', 'ㄽ' : '..--...',
'ㄲ': '.-...-..', 'ㄳ' : '--....', 'ㄵ' : '.---.', 'ㄶ' : '.--...--.', 'ㄸ' : '..--',
'ㅃ' : '..--..', 'ㅆ' : '......', 'ㅄ' : '---.--.-', 'ㅉ' : '..-...-.',
'ㅏ' : '.', 'ㅑ' : '..',
'ㅓ' : '-', 'ㅕ' : '...', 'ㅗ' : '.-', 'ㅛ' : '-.', 'ㅜ' : '....',
'ㅠ' : '.-.', 'ㅡ' : '-..', 'ㅣ' : '..-', 'ㅐ' : '.---', 'ㅔ' : '--..',
'ㅙ' : '.-..-', 'ㅝ' : '..--', 'ㅚ' : '--..', 'ㅒ' : '..--.-','ㅘ' : '.-.-.-',
'ㅖ' : '..--', 'ㅟ' : '----.-', 'ㅢ' : '...-.-..',
'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',
'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',
'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',
'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..',
'1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----',
' ': '/'
}
HTML_TEMPLATE = """
한글/영문/숫자 모르스 변환기 (Port 3040)
📟 사운드 모르스 변환기
{% if result %}
📝 입력 데이터 :
{{ input_text }}
{% endif %}
"""
@app.route('/', methods=['GET', 'POST'])
def index():
result = ""
input_text = ""
if request.method == 'POST':
input_text = request.form.get('text', '')
processed = j2hcj(h2j(input_text.upper()))
morse_list = [MORSE_DICT.get(char, char) for char in processed]
result = " ".join(morse_list)
return render_template_string(HTML_TEMPLATE, result=result, input_text=input_text)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3040, debug=False)
적당한 파일이름(여기서는 morse.py)으로 저장하고,
python3 morse.py 로 실행
-------------
2026.03.18 akpil