오늘은 제어문에 대해 배우고 활용해보는 시간을 가졌다.
수업을 들을 때는 이해가 잘 되는 것 같았지만,
과제를 풀면서 조건이 많아지자 출력 결과를 예상하면서 작성하는 데 시간이 좀 걸렸다.
그럴수록 더욱 더 체감했다.

가장 먼저 큰 과제를 작은 업무 단위로 분해하는 일이 얼마나 중요한지,
복합 조건이 들어갈수록 가독성 좋은 코드가 얼마나 중요한지 말이다.


* 모든 과제의 출처는 오즈코딩스쿨에 있음.




1. 과제의 목표

[캡쳐 1-1. 미션 세부 내용 및 목표 출력 형태]

[캡쳐 1-2. 기본 정보]

위의 두 이미지는 이번 과제에서 내가 수행해야 할 미션의 내용과 결과물의 형태,
기본 데이터들을 담고있다.




2. 과제 수행 내용 및 고찰

2.1. 1번 미션_환자 기본 정보 출력

[캡쳐 2-1. 환자 정보 불러와서 출력하기]

환자 정보 딕셔너리에서 key 값을 활용하여 value 값을 추출해서 목표 형태로 출력하는 미션이었다.
그 중 is_conscioushas_breathingbool 타입 데이터를 value값으로 가지고 있으며,
삼항연산자를 활용해서 새로운 변수명원하는 출력문(str 타입)이 할당되도록 작성 후 출력하였다.

이 미션에서 내가 작성한 코드와 정답 코드를 비교하면서 깨달은 점은
patient["is_conscious"] 자체가 이미 bool 타입인데
== True라는 불필요한 코드를 작성했다는 것을 알아차리게 되었다.

명심하자!

"의미 없는 중복된 코딩은 없어야 한다."



2.2. 2번 미션_응급도 분류

[캡쳐 2-2. 조건에 따른 응급도 분류]

[캡쳐 1-1]의 기준에 따라 응급도를 분류하는 if-elif-else문을 작성하였다.

우선, 가장 먼저 정답 코드와 다른 점은 '의식이 없는 경우', '호흡이 없는 경우'를 나타내는 코드가
나는 앞서 작성한 새로운 변수명과 비교연산자를 활용해 표현하였고,
정답 코드는 not을 활용하여 작성되었다는 점이다.

내 개인적인 생각에는 이미 앞서 새로운 변수명을 만들어줬기 때문에
이를 활용하는 편이 가독성이 더 좋은 것 같다.
어떤게 더 좋은 코드인지는 좀 더 고민해 볼 예정이다.

두 번째로 다른 점은
조건문의 결과에 따른 실행 코드가 저장되고, 저장되지 않고의 차이이다.
나는 환자의 상태에 따른 응급 분류 결과, 처치 방향, 대기 시간이 저장 되는 것이 좋을 것 같다는 생각에 새로운 딕셔너리를 만들고, 조건문에 따라 다르게 저장되도록 만들었지만
(지금 와서 생각해보니 이는 환자 1명에 적합한 코드이고,
다른 환자 정보도 저장하려면 리스트 안에 딕셔너리가 있는 형태여야 했을 것 같다.)
정답 코드의 경우, 그냥 일회성으로 조건문 안의 출력 정보들이 출력될 수 있도록
변수명 = 할당된 값(출력하고자 하는 텍스트)의 형태로 나타내고 있다.

여기서는 굳이 결과 값을 저장할 필요가 없다면, 정답 코드대로 작성하는 것이 간단하고 좋아보인다.

cf) 번외로 든 생각

[캡쳐 1-1]의 내용에 따르면,
준응급의 기준이 (A: 통증이 4이상 7이하) 이거나 (B: 체온이 37.5도 이상 38.9도 이하)로 되어있다.

정답코드에는 발열 범위가 37.5도 이상 39도 미만으로 코딩이 되어 있어서

만약 체온이 38.95도인 경우(부인용 체온계는 소수점 둘째짜리까지 나타남),
A조건이 False더라도 B조건이 True기 때문에 준응급이 해당하는데

내가 작성한 코드인 '체온이 37.5도 이상 38.9도 이하'인 경우, 맹점이 존재하기 때문에
A조건이 False이고, B조건도 False가 반환되어 최종적으로 False가 반환,
"비응급"으로 나타나는 경우가 생겨버린다.

그래서

더욱 더 이러한 맹점이 발생하지 않도록 정확하게 기준을 설정하는 것이 필요하다고 생각하게 되었다.



2.3. 3번 미션

[캡쳐 2-3. 분류 결과, 처치 방향, 예상 대기시간 출력]

앞서 나는 딕셔너리에 저장하는 방식을 사용했기 때문에
딕셔너리에서 key값을 이용해 value값을 불러오는 방식으로 출력하였고,
정답 코드에서는 변수명만 사용해도 출력되는 차이가 있다는 것을 확인할 수 있다.

3번 미션 결과를 보니 더욱 딕셔너리에 저장하는 형태가 불필요해 보인다고 생각되었다.

결론: 굳이 결과 값을 저장할 필요가 없다면 그냥 출력만 되도록 간단하게 작성하자!



2.4. 최종 출력값 비교

[캡쳐 2-6. 최종 출력값 비교]

최종 출력값은 목표한 형태와 동일하게 나타나는 것을 확인할 수 있었다.

하지만, 역시 오늘도 불필요한 코드 작성을 줄이는 연습이 필요하다는 것을 느낀 과제였다.

profile
R&D 분야의 경험을 토대로 커리어 확장에 도전중인 개발꿈나무입니다.

0개의 댓글