이쁜왕자 만쉐~~

누가 고수 프로그래머인가? 본문

프로그래밍/C프로그래밍 문제

누가 고수 프로그래머인가?

이쁜왕자 2023. 1. 30. 23:32
*
* *
* * *
* * * *
* * * * *

위와 같은 출력 결과를 내는 프로그램을 작성하시오 라는 문제가 있다. 아래 예시는 C 언어로 작성했지만, 프로그래밍 언어와는 딱히 상관이 없다.

 
프로그래머 A  - 초보(?) 프로그래머 B  - 고수(?)


인터넷에 코딩 초보와 고수라는 짤이 돌아 다닌다. 해당 게시물에서는 왼쪽이 초보, 오른쪽이 고수 라고 나온다.

정말 그러할까?

만약 정말 요구사항이 처음 나온 그대로에서 바뀌지 않는다는 100% 확신이 있다면 오른쪽 형태로 코딩해도 상관 없고, 그것이 고수 맞다.

하지만, 현실을 그렇지 않다. 현실에서 코딩은 요구사항이 계속 바뀐다.

몇가지 간단한 예제를 들어 보자.

1. 문제를 5줄이 아니라 10줄로 출력해 보자.


왼쪽은 루프 안에 5 를 10으로 바꿔주면 된다. 좀더 현면한 프로그래머라면 #define 이나 const 로 상수를 정의해서 사용했을 것이다.
하지만, 오른쪽은 추가로 5줄을 새로 타이핑 해서 넣어 주어야 한다.

10줄이 아니라 100줄, 아니 1000줄이라고 하면 그 차이는 어마어마 해진다.


2. 화면에 * 을 # 으로 바꿔서 출력해 보자.

왼쪽은 요구사항 그대로 * 을 #으로 한 글자만 바꾸면 된다, 원래의 5줄짜리이든, 1번 수정사항을 반영해 1000줄 짜리이든 상관이 없다.
하지만, 오른쪽은 코딩 내용 대부분을 바꿔야 한다. 그나마, 에디터가 좋아져서 일괄로 바꿀 수 있다는 게 다행이다.


3. 이제 사용자가 입력한 수(N) 을 받아서 그 수만큼 출력해 보자.

왼쪽은 코드를 함수 형태로 바꾸고 5를 파라미터로 받아서 쉽게 수정할 수 있다.
하지만, 오른쪽 방법으로는 해결이 안된다. 아예 처음부터 새로 짜야 한다.

.....

 

현실에서 새로운 요구사항이 나와서, 보고서 문서를 바꿔야 하는 일은 흔하디 흔한 일이다. 프로그래밍에서도 이는 딱히 다르지 않다. 언제나 새로운 수정사항이 발생할 것이라고 생각하고 프로그래밍을 하는 것이야 말로 '고수'의 프로그래밍이다.

 

 

728x90
반응형
Comments