728x90
반응형
728x170

안녕하세요. 오늘은 오토마타 프로그래밍의 중요성에 대해 알아보려 합니다.

오토마타는 나무위키에 있는 정의에 따르면 아래와 같습니다.

 

오토마타 이론(영어: Automata Theory)은 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제들을 연구하는 컴퓨터 과학의 분야이다. 여기서 추상 기계를 오토마타(automata, 복수형) 또는 오토마톤(automaton, 단수형), 즉 자동 기계라고 부른다. 이 이름은 '자동'을 의미하는 그리스어 'αὐτόματα'에서 유래하였다.오토마타 이론(영어: Automata Theory)은 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제들을 연구하는 컴퓨터 과학의 분야이다. 여기서 추상 기계를 오토마타(automata, 복수형) 또는 오토마톤(automaton, 단수형), 즉 자동 기계라고 부른다. 이 이름은 '자동'을 의미하는 그리스어 'αὐτόματα'에서 유래하였다.오토마타 이론(영어: Automata Theory)은 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제들을 연구하는 컴퓨터 과학의 분야이다. 여기서 추상 기계를 오토마타(automata, 복수형) 또는 오토마톤(automaton, 단수형), 즉 자동 기계라고 부른다. 이 이름은 '자동'을 의미하는 그리스어 'αὐτόματα'에서 유래하였다.

 

대학생 시절 오토마타를 배우셨다면 위 그림은 아주 익숙하실겁니다.

저두 학부생 시절 짧게나마 오토마타에 대해 접했을 때 이런 생각을 했습니다.

이런 걸 어디다 써먹지?

그러다 요번에 맡고있는 프로젝트 업무 중 '기능 추가', '버그 수정' 등의 업무를 하다 직장 선배의 조언을 통해 그 중요성을 알게 되었습니다.

 

기능 추가등을 하면서 기존에 개발 했던 버그보다 수가 더 늘어난 걸 발견했는데 그것을 예방할 수 있는 방법을 알려주셨는데

오토마타 프로그래밍을 기억하냐며 

이 형태와 비슷한 그림을 그려주셨고,  제가 개발하려는 부분을 위 도형을 그리면서 어떻게 돌아갈지 예측을 하며 코드를 짜보라고 하더라구요.

 

https://codesk.tistory.com/245

 

[바미] 좋은 코드를 만들기 위한 노력.

세상에 수 많은 개발자들이 있는데 그 중에서 "저 사람 잘하네"라고 할 때 그 기준 중에 하나가 프로그램을 튼튼하게 만든다는 점에 있습니다. 튼튼하게 만든다는 것은 프로그램이 터지지 않는

codesk.tistory.com

이 글을 쓰면서 방어코드의 중요성을 말씀드린적이 있는데 그 방어코드를 잘 짜기 위한 방법 중에 하나가 저 오토마타 프로그래밍이였던 것이였죠.

 

그래서 앞으로는 어떤 개발을 하기전 부터 저런 생각부터 하고 짜는 습관을 들이려합니다.

728x90
반응형
그리드형
Bami