[개발] 공통코드 작성용 작명 손쉽게 만들기

in #kr3 years ago

메타데이터 솔루션을 도입하면 간단하게 완료 될 수 있는 문제이지만

그렇지 않는다 하면 작명하는 것은 손쉽지만 않다 ;;

그래서 간단하게 사용할 수 있는 생성기를 만들어 봤다.

1. 로직

  1. 한글 코드 복사
  2. (구글번역기) 영문 전환
  3. 영문 풀네임을 약어로 전환하기

2. 약어 변환 규칙

  1. 영문 풀네임 변환 (구글번역기)
  2. 단어 사이는 _(언더스코어) 로 연결
  3. 모음 제거 ( A, E, I, O, U )
  4. 단어는 최대 4자리
  5. 동일 자음이 겹쳐지면 1개만 사용

3. 예시

[그림 : 1. 영문 풀네임 변환 (구글번역기) ]
image.png

[그림 : 2~5 의 사항을 반영한 웹 예시 ]
image.png

[ 그림 : 산출물, 엑셀에 복붙만 해주면 된다, 참쉽죠? ]
image.png

장단점

장점

  • 테이블명 필드명 등을 만들 때 손쉽게 활용이 가능하다
  • 전체적으로 손쉽게 룰을 반영할 수 있다.

단점

  • 약어를 보고 이해하기 어려울 수도 있음

소스코드

<!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>

맺음말

작명에 늪에서 손쉽게 빠져 나갈 수 있어서 좋았다.

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

추가로 단어 사이가 4글자 이상인 경우에만 모음 ( AEIOU ) 제거를 수행하도록 처리하면 좀 더 보기 좋아지는 것 같다.

ML => MAIL 이런식으로

메타 데이터 시스템 ^^ 좋은 내용 감사합니다.

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.081
BTC 62347.27
ETH 1613.67
USDT 1.00
SBD 0.47