C++

[강의] 8월 21일 수업정리

k-codestudy 2024. 8. 21. 19:13

어제 내주셨던 %를 사용하지 않고 나머지를 구하는 코드에 대해 설명해 주셨는데 굉장히 반성할 부분이 많았었다.

처음부터 설계를 잘못했다는 것, 변수 활용이 부족했다는 점

그리고 복기를 제대로 했어야했는데 제대로 안 해서 굉장히 잘못된 코드를 짠 점.

그냥 애초에 프로그래밍을 너무 잘못된 습관과 관점으로 바라본 거 같아서 반성하는 시간이 되었다.

 

오늘 수업에서는 간단한 문제를 풀어보면서 이를 통해 배운 내용을 정리해 보았다.

 

1. 특정 숫자를 입력받아, 해당 숫자가 홀수인지 짝수인지 판단하는 프로그램을 작성할 것, 

    (이때 0은 짝수로 간주하고, 음수는 고려하지 않는다.)

#include <iostream>

int main() {

	int nData{};
	int nRemainder{};

	scanf_s("%d", &nData);

	nRemainder = nData % 2;

	if (nRemainder == 0)
		printf("%d 는 짝수입니다.", nData);

	if (nRemainder == 1)
		printf("%d 는 홀수입니다.", nData);
}

정수형 변수인 nData, nRemainder를 설정하고

scanf_s를 사용하여 nData에 임의의 정수값을 입력하고 그 입력된 정수값을 2로 나눠 나머지 값을 nRemainder에 넣은 후 

if문을 사용하여 nRemainder가 0 / 1인지 판단하여 0이면 짝수 1이면 홀수를 출력하게 되는 코드.

 

 

강사님의 피드백

강사님이 짠 코드랑 거의 비슷하였기에 다른 추가적인 말은 없으셨고, 부가적인 설명을 해주셨다

특히 조건문에서 연산을 직접 사용하는 것은 나중에 코드의 가독성을 저하시킬 수 있다는 점을 지적을 하셨다.

예를 들어보자 

#include <iostream>

int main() {

	int nData{};

	scanf_s("%d", &nData);

	if (nData % 2 == 0)
		printf("%d 는 짝수입니다.", nData);

	if (nData % 2 == 1)
		printf("%d 는 홀수입니다.", nData);
}

위의 코드에서 nData % 2 == 0과 nData % 2 == 1이 반복적으로 사용되면서 비슷한 조건이 여러 번 나타나게 되는데,

이런 반복적인 연산을 피하고, 변수를 사용하여 코드 밖으로 뺴서 사용하는 것이 가독성도 좋아지고 유지보수고 쉽게 할 수 있다고 조언을 해주셨다.

게임 업계는 극단적인 유지보수가 많기 때문에 다른사람들이 보기 편한 코드를 짜는 것이 중요하다 하셨고 그 부분을 강조해 주신 것 같다.

즉 코드를 작성하게 되면 변수를 많이 잡고 백업을 많이 사용하라는 것이다.

 

코드를 복기할 때의 팁

 

강사님은 코드 작성 후 복기할 때, 논리적인 관점에서가 아니라 글을 읽듯이 코드의 흐름을 자연스럽게 읽어보는 것이 중요하다고 하쎠다. 문장이 알맞게 이어진다면, 코드도 원활하게 동작할 가능성이 높기 때문이다.

또한, 자신의 코드를 복기할 때는 남이 작성한 것처럼 객관적으로 바라보는 연습을 해야 더 정확한 판단을 할 수 있다고 이야기해 주셨다.

이번 수업을 바탕으로 안 좋은 습관이나 생각은 최대한 버리고 좋은 습관들만 가지고 갈 수 있게 노력해야겠다

'C++' 카테고리의 다른 글

[강의] 8월 23일 수업정리  (1) 2024.08.23
[강의] 8월 22일 수업정리  (0) 2024.08.22
[강의] 8월 20일 수업정리  (0) 2024.08.20
[강의] 8월 19일 수업정리  (0) 2024.08.19
[강의] 8월 16일 수업정리  (0) 2024.08.16