클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

에러 읽고 대처하기 4 - 미션 문제 풀기 본문

웹 · 앱 개발/디버깅

에러 읽고 대처하기 4 - 미션 문제 풀기

huenuri 2024. 7. 30. 11:00

이제 2단원의 마지막 과제인 미션 문제가 남아있다. 너무 어려워서 나중에 풀려고 했으나 그래도 시도는 해봐야 배운 것이 머릿속에 남아있을 것 같다. 그냥 바로 3단원으로 넘어가기에는 많이 아쉬웠다.

실습 문제도 강사님의 해설을 보면서 작성한 것이니 스스로 푼 건 아니니 다음에 공부할 때 꼭 리셋하고 다시 풀어볼 것이다.
그럼 미션 문제를 살펴보기로 하자!


 

미션 - 스마트 홈 디버깅하기

 

 

문제 코드는 바로 이것이다. 너무 길어서 끊어서 캡처해보았다.

 

 

 

첫번째 오류 : Syntax

 

실행해보니 11번째 줄에서 syntax 에러가 발생했다고 한다. 즉, 문법 오류가 발생한 것이다.

 

Problem 1 코드 고치기


콜론이 빠져서 if 옆에 붙여주었다.

 

 

Problem 2 코드 고치기


2번 코드는 name 오류가 발생해서 이 부분을 고쳐주었다.

 

 

 

Problem 3 첫번째 부분 코드 고치기

이 코드는 어떤 코드인지 잘 몰라서 헬퍼에게 물어보았다.

 

 

이렇게 고쳐보았는데 왠지 틀린 것 같아 다시 한번 시도해보았다. 그냥 가져오는 것이 아니고 함수에서 불러와야 했다.
그렇게 현재 온도를 읽어오는 함수와 섭씨를 화씨로 바꾸는 함수를 각각 가져와서 두 개의 변수에 저장했다.

 

 

 

Problem 3 두번째 부분 코드 고치기

이 코드는 현재 온도를 텍스트로 표시하는 작업을 수행하고 있다. heater 객체의 is_turned_on 속성을 확인하여 현재 히터가 켜져 있는지 여부를 확인한다. 이에 따라 if와 else문으로 꺼져 또는 켜져의 문장을 실행한다.
그런 다음 섭씨 정보와 화씨 정보인 celsius와 fahrenheit를 가져와 텍스트로 표시하고 있다.

하지만 이 코드는 형 변환이 제대로 이루어지지 않고 있다. celsius와 fahrenheit는 숫자형이지만, 문자형과 결합하려고 하니 오류가 발생한다. 따라서 숫자형을 문자형으로 변환해야 한다.

 

 

 

 

problem 4 코드 고치기

이 코드는 무슨 코드인지 잘 몰라서 헬퍼에게 질문하였다.

 

 

여기서 오류는 return "{contact.name}님에게 전화를 걸고 있습니다." 이다. {contact.name}은 f-string을 사용하여 contact 객체의 name 속성을 가져오려고 한다.

 

 

그러니까 f-string으로 변환해주었다. 하지만 이것이 무엇인지 잘은 모르겠다. 한번 더 조금 전에 공부했던 부분을 살펴봐야겠다!

 

 

 

Problem 5 첫번째 부분 코드 고치기

 

다섯번째 코드는 너무 어려워서 무슨 말인지 모르겠다. 다음에 이 미션 문제는 더 풀어봐야겠다. 지금 내 수준에서 풀기 굉장히 어려운 문제였다. 그래도 도전하는 것만으로도 큰 배움이 있었다.

 

 

 

정말 많이 고친 것 같은데 20점밖에 받지 못했다.


 

학습을 마치고

이렇게 해서 2단원 전체 학습을 마쳤다. 미션 문제 하나 푸는데 1시간도 넘게 걸린 것 같다. 오랜만에 가족들과 식사도 하고 집안일을 하면서 코딩을 해서 집중력은 조금 떨어졌지만 그래도 다 마칠 수 있어서 다행이었다.
이제 에러 코드를 어떻게 고쳐야 할지 조금은 알게 된 것 같다.

아직 배워야 할게 많고 넘어야 할 산이 태산이지만, 작은 산 하나씩 바라보면서 정복해볼 생각이다.
다음 포스트에서는 3주차 디버깅 공부를 시작해볼 것이다. 이제 다시 공부에 집중해본다. 오후에 1시간 반 정도 더 공부하고 운동도 할겸 쉬는 시간을 갖기도 하자!