[TIL] 단순작업 자동화 스크립트 개발하며 알게 된 것

P Yun·2022년 12월 26일
0

TIL

목록 보기
1/3

왜 단순작업을 자동화 해야할까?

개발자에게 귀찮음은 좋게 발휘되면 창의력의 원천이 된다고 생각한다.
단순작업을 자동화 하는것도 더 중요한 일에 몰두할 수 있도록 도와주는 훌륭한 도구이다.

단순작업을 수작업으로 처리하다 보면 쓸데없는 시간을 낭비하는 경우가 많다.
휴먼에러가 나오는 경우도 허다하다.
마우스 클릭 몇 번만으로 작업을 수행할 수 있는 경우도 있다.
내가 가진 리소스를 이러한 작업들보다는 자기계발에 투자하거나 좀 더 고도화된 업무에 투자하는 편이 좋지 않겠는가?

단순작업 자동화 스크립트 개발하기

귀찮은 작업들을 컴퓨터가 처리할 수 있도록 코드를 짜는것이 마냥 쉽지만은 않다.
솔직히 말하면 스크립트를 짜는것보다 그냥 수작업으로 처리하는게 나은 경우도 있는 것 같다.
그러나 확실히 코딩으로 자동화 가능한 부분이 있다면, 자동화하는 것이 여러모로 좋다.

코드를 짜기 전 어떤 기능이 필요한지를 명확히 기술하는 것이 좋다.
기술한 기능들을 어떻게 코드로 구현할 수 있을지 미리 설계를 해보는 것이 코드를 짜는데 들어가는 비용을 줄이는데 큰 도움이 된다.
필자는 설계를 할 때 코드 구조 설계와 시나리오 베이스 설계 이렇게 두 가지 방법으로 설계를 해본다.

이후에는 세부 기능별로 코드를 작성하고, 실제 원하는데로 잘 동작하는지를 테스트해본다.
원하는데로 동작을 잘 한다면 이를 모듈화 할 수 있는 방안을 모색하고 모듈화한다.
모듈화만 잘 해두면 이후 기능을 확장 및 개선을 할 때 보다 수월하게 할 수 있다.

이 때, 방어적으로 프로그래밍을 해두는 것이 초기 디버깅에 도움이 된다.
경험상 초기에는 원인을 쉽게 알 수 없는 에러가 발생하여 기능 개발 시간을 지연시키는 경우가 많다.
이러한 시행착오를 줄일 수 있게 해주는 것이 방어적 프로그래밍이다.
가령 어떤 하나의 기능을 수행하는 함수를 개발할 때 Input 변수들의 Type이 Valid한지 검사하고 리턴값이 Valid한지 검사하는 것이다.
이 때 assert를 활용하면 좋다.
추후에 이런 코드는 예외처리 코드로 바꿀 때도 도움이 된다.

다음으로는 확장 가능성과 유연성 및 복잡성을 고려해 코드를 작성하는 것이 중요하다.
변수와 함수 이름을 지을 때도 마찬가지이다.
이 코드는 나중에 누군가가 읽어야 할 수도 있다는 것을 잊지 말자.

마치며

개발자는 높은 강도의 지적 노동을 요구받는 직업이다.
하지만 동시에 창의력을 요구하는 작업을 한다.
하루가 다르게 변하는 기술의 트렌드와 산업의 흐름을 읽는 시간 역시 어느 정도는 필요하다.

좀 더 가치있는 일에 내 시간을 투자하기 위해서는 단순작업을 자동화 하는 것 만큼 확실히 시간을 확보할 수 있는 것도 없는 것 같다.
앞으로도 기술적 탁월함을 추구하는 개발자가 되기 위해 단순작업들을 자동해 해나갈 것이다.

profile
Record the facts, analyze and present.

0개의 댓글