process management 프로그램 제작[ 오류 및 디버깅을 위한 체크포인트 코드 생성 및 관리]
시작하기 전 할 말
이번에는 코드리뷰를 하는 것에 포인트를 준 것이 아닌 전반적인 기능 소개를 중점으로 작성하였다.
제작 배경
원래는 임의로 001,002 또는 해당 기능을 대표하는 키워드를 코드로 사용할려 하였으나 체계적인 관리 및 코드 숫자에 간접적으로 의미를 부여하기 위해 방법을 생각하게 되었다.
코드 형태
codename -> role process_management: Number <- codeNumber
오류코드와 체크포인트 코드는 {CodeName: Number} 형태로 json파일에 저장되어 있다. 처음엔 코드에 value가 0인 상태이며 코드를 생성하는 과정을 거치며 코드 숫자가 생성된다. 기본적으로 CodeName은 "[상위 카테고리] [하위 카테고리] [데이터 키워드(선택)]" 형태로 되어 있으며 각각의 카테고리와 데이터 키워드를 분리하여 중복 없이 정렬한 다음 key, value형태로 json 파일에 저장한다. 해당 json을 vocab이라 정의한다.
vocab이란?
이름에서 알수 있듯이 말 그대로 단어장이다. 인공지능을 공부한 사람이라면 알 수 있을 것이다. 각각의 문자를 token 또는 key로 칭하며 value에 해당 token id(1,2,3)을 지정하여 단어를 숫자로 바꿀 수 있게 한다. 그리하여 CodeName을 해당 vocab을 이용하여 카테고리 및 데이터 키워드를 숫자로 치환하여 고유성을 띄는 코드 숫자를 생성할 수 있다.
vocab 예시
{
role: 1,
process: 2,
management:3
}
해당 vocab에서 role는 숫자 1로 치환하며 process는 2로 management는 3으로 치환한다. 즉 위의 code name인 role process_management는 띄어쓰기, - , _ 특수문자를 삭제한 형태인 [ role, process, management] 배열에서 각 단어를 위의 vocab에 있는 단어와 한쌍을 이루는 수로 치환하게 된다.
< 처리할 대상 >
role process_management
< 특수문자 제거(전처리) >
[role, process, management]
< 문자를 숫자로 치환값 >
[1, 2, 3] <- vocab으로 인코딩
< 결과 값 >
codename -> role process_management: 123 <- codeNumber
모든 코드를 해당 과정을 거쳐서 소스코드와 간접적인 의미를 가지며 하나하나가 고유성을 띄게 되었다.
끝맺음 말
이번 포스팅은 코드 부분의 리뷰를 하면 길어져서 일부러 빼고 했더니 살짝 난해하게 되었다. 하지만 마지막의 요약한 것을 토대로 전반적인 흐름을 전달되었을 것이라 생각한다..ㅎㅎ
해당 방식은 코드를 생성하면서 status 코드, 디버깅을 위한 실행 위치 확인용 코드, 에러 코드를 한 번에 관리하는 것과 동시에 많은 코드가 생겼을 때 효율적으로 관리할 수 있는 방법이 무엇인가를 시작으로 개발하기 시작하였다. 이번에도 프로젝트 규모가 작을 때에는 필요하지 않을 것이라 생각한다. 하지만 한번 개발해 둔다면 나중에 많은 소스코드의 가독성과 코드의 길이 측면에서 최적화가 되기에 도움이 될 것이라 생각한다.