[개발] 공통코드 작성용 작명 손쉽게 만들기
메타데이터 솔루션을 도입하면 간단하게 완료 될 수 있는 문제이지만
그렇지 않는다 하면 작명하는 것은 손쉽지만 않다 ;;
그래서 간단하게 사용할 수 있는 생성기를 만들어 봤다.
1. 로직
- 한글 코드 복사
- (구글번역기) 영문 전환
- 영문 풀네임을 약어로 전환하기
2. 약어 변환 규칙
- 영문 풀네임 변환 (구글번역기)
- 단어 사이는 _(언더스코어) 로 연결
- 모음 제거 ( A, E, I, O, U )
- 단어는 최대 4자리
- 동일 자음이 겹쳐지면 1개만 사용
3. 예시
[ 그림 : 산출물, 엑셀에 복붙만 해주면 된다, 참쉽죠? ]
장단점
장점
- 테이블명 필드명 등을 만들 때 손쉽게 활용이 가능하다
- 전체적으로 손쉽게 룰을 반영할 수 있다.
단점
- 약어를 보고 이해하기 어려울 수도 있음
소스코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
label {
float: left;
width: 60px;
}
textarea {
width: 400px;
height: 200px;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", () => {
console.log("DOMContentLoaded");
});
const removeDuplicates = (s) => {
let n = s.length;
let str = "";
if (n == 0) return str;
for (let i = 0; i < n - 1; i++) {
if (s[i] != s[i + 1]) {
str += s[i];
}
}
str += s[n - 1];
return str;
};
function cutJoin(source, len = 4) {
let arr = source.split("|");
let buf = [];
for (let a of arr) {
let sp = a.split("_");
let _buf = [];
for (let s of sp) {
_buf.push(s.substr(0, len));
}
buf.push(_buf.join("_"));
}
return buf.join("\n");
}
function taChanged(evt) {
let value = evt.target.value || "";
// 모음 제거
let toCase = value.toUpperCase().trim();
let toReplace = toCase
.replace(/a|e|i|o|u|/gi, "")
.replace(/\n/gi, "|")
.replace(/\s/gi, "_");
let toRemoveDuplicate = removeDuplicates(toReplace);
document.getElementById("taFrom").value = toCase;
document.getElementById("taTo").value =
cutJoin(toRemoveDuplicate).toUpperCase();
}
</script>
</head>
<body>
<label for="taInput">INPUT : </label>
<textarea id="taInput" onchange="taChanged(event)"> </textarea><br />
<label for="taFrom">FROM : </label>
<textarea id="taFrom"></textarea>
<br />
<label for="taTo">TO : </label>
<textarea id="taTo"></textarea>
</body>
</html>
맺음말
작명에 늪에서 손쉽게 빠져 나갈 수 있어서 좋았다.
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.
추가로 단어 사이가 4글자 이상인 경우에만 모음 ( AEIOU ) 제거를 수행하도록 처리하면 좀 더 보기 좋아지는 것 같다.
ML => MAIL 이런식으로
메타 데이터 시스템 ^^ 좋은 내용 감사합니다.