'향상'에 해당하는 글 1건

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
최근 펄을 이용하여 프로젝트를 진행했습니다. 펄로 코딩을 하다보면 자바에서는 경험하지 못했던 몇가지 신선한 경험을 하게 됩니다. 이번 사건도 그 중 하나였던 것 같습니다.

제가 만든 펄 스크립트의 안정성을 위해 사용자가 입력한 내용을 한번 더 확인시켜줘야겠다는 생각이 들었습니다. 그래서 아래와 같이 코드를 만들었습니다. 사용자로부터 입력을 받아 Y나 y를 입력했을 경우에만 주실행로직을 수행하는 코드입니다.
print($sampleString."' 이 정말 맞습니까? (Y/N) ");
my $confirmation = <STDIN>;
chomp($confirmation);
if ($confirmation eq "Y" || $confirmation eq "y") {
    # 약 40줄 정도 되는 주요 처리 코드
   ...
   ...
   ...
}
# 코드의 끝
그런데 실제 코딩을 하고 나니 실행코드가 조건문 안에 들여쓰기 되어 갇혔다는 것을 발견했습니다. 그것도 40줄이나 말입니다 안정성을 향상 시키기 위해 들어간 선택적인 코드 때문에 이런 일이 발생 한 것은 다소 불합리해 보였습니다. 왠지 손님이 주인을 밀어내는 느낌이라고나 할까요?

거기에다가 제가 본 펄 강의에는 열악한 환경의 터미날을 이용할 때를 대비하여 코드의 가로길이가 80자를 넘어가지 않게하라고 강조했습니다. 80자가 넘어가면 코드를 보기가 힘들어지고 따라서 수정하기가 어려워진다고 하더군요. 들어쓰기는 가로길이를 늘어나게 하기 때문에 이러한 이유로도 제거되야 하는 것이 마땅해 보였습니다.

그래서 코드를 아래와 같이 수정했습니다.
print($sampleString."' 이 정말 맞습니까? (Y/N) ");
my $confirmation = <STDIN>;
chomp($confirmation);
exit if ($confirmation ne "Y" && $confirmation ne "y");

# 약 40줄 정도 되는 주요 처리 코드
...
...
...
# 코드의 끝
"$confirmation이 Y이거나 y이어야 함"을 "$confirmation이 Y가 아니고 y도 아닐 때"라는 부정조건으로 바꾸고 만약 해당 조건이 만족했을 때는 즉시 스크립트를 종료하도록 처리 한 것입니다.

이렇게 코드를 작성하니 40줄의 처리 코드는 조건문에서 빠져나올 수가 있었습니다. 그런데 가만히 보다보니 또 문제가 보였습니다. 그것은 새롭게 바뀐 조건식이 직관적이지 않다는 것입니다. 바뀐 조건식 'Y가 아니고 y도 아니어야 한다'라는 것은 처음에 있었던 "Y거나 y어야 함'보다 이해하기 어렵게 느껴졌습니다.

그래서 아래와 같이 한번 더 코드를 수정했습니다.
print($sampleString."' 이 정말 맞습니까? (Y/N) ");
my $inputFromUser = <STDIN>;
chomp($inputFromUser);
my $confirmation = $inputFromUser eq "Y" || $inputFromUser eq "y";
exit if ($confirmation == 0); #펄은 true/false 대신 1/0 개념이 사용 됨.

# 약 40줄 정도 되는 주요 처리 코드
...
...
...
# 코드의 끝
결국 이렇게 수정함으로 인해 직관적인 긍정조건을 사용 하면서도 40줄을 들여쓰기로부터 해방시킬 수 있었습니다. 소소하지만 재밌는 경험이였다고 생각합니다.

WRITTEN BY
차민창
르세상스 엔지니어가 사회를 이끌어나가는 상상을 하며!

,