본문 바로가기

Programming/Codeup.kr기초100제 && 컴퓨터 이야기

[기초-출력] 출력하기04 && 프로그래밍 역사2

 어셈블리어는 로-레벨(Low-level code) 즉, 컴퓨터 언어에 가까운 언어이다. 이 컴퓨터 다운 언어를 개선하기위해 1960-1970 년 대에 등장하게 된다. 이것들 중 대표적인 예가 포트란인데, 이같은 하이레벨(High-level code)는 세세히 안나눠도 알아서 되도록 만들 수 있었다. 이러한 이점들로 복잡한 코드를 용이하게 만들 수 있었고 보다 더 생산적이게 되었다. 하지만, 프로그래머의 발전은 더디어서 '스파게티 코드'(면발이 엉키듯 프로그램 흐름이 얽혀있는 코드)를 만드는 수준이었다. 이 코드의 문제점은 규모가 커질수록 에러가 났을때에 수정이 정말 곤란해진다는 것이다.(옛날보단 덜하지만 지금도 그렇게 짜는 프로그래머가 더러있다.) 또, goto라는 명령어를 사용해 프로그램 여기저기를 왔다갔다 하는데, 이 명령어의 남발은 스파게티 코드가 더욱 활발하게 만들어지게 되었다.


 스파게티 코드의 문제점을 해결하기 위해 새로운 언어를 만들면 문제가 해결될 것 같아 여러 언어를 만들었다. 결과적으론 실패했는데, 스파게티 코드의 원인은 언어의 문제라기보단 프로그래머의 자질 부족이나 부실한 디자인에서 비롯되었기 때문이다. 하지만 C와 Paskal 언어는 자체내에 데이터 구조체(Data Structure)와 절차적 디자인(Procedural Design)을 가지고있어 1970~1980년대에 유행하게 된다. 절차적 코드가 등장하기 전엔 코드를 그저 길게 나열하기만 하여 코드를 왔다갔다하며 뒤져야만 했다. 반면에 절차적 코드는 코드를 몇개 단위로 구분지어주어서 용이하게 찾아갈 수 있게 만들었다.(책에 목차를 생각하면 쉽다) 데이타 구조체는 복잡한 데이터를 하나의 그룹, 또는 구조로 묶어준 것인데, 복잡한 데이터 수백개를 남발하는 대신 하나의 구조로 통합 후 어디서든 쓰게 만든 것이다.(10원짜리 동전 수백개를 쓰는게 아니라 지폐를 사용한다고 이해하자)


 '포트란 프로그래머는 어떤 언어를 써도 포트란식으로 프로그래밍 할 수 있다'라는 농담이 있다. 이 말은 언어가 바뀌어도 자질이 떨어지는 프로그래머는 여전히 스파게티 코드를 쓴다는 것이다. 반면 훌륭한 프로그래머는 언어가 무엇이든 항상 깔끔한 코드를 작성한다. 이 같이 언어의 발전이 어느정도 도움을 주긴 했지만 기대보다는 변화가 잘 일어나지 못했다

계속...

문제 설명

이번에는 작은 따옴표(') (Single Quotation mark)를 문장에 넣어 출력해야 한다.

다음과 같은 문장을 출력하시오.

'Hello'

(주의 : 작은 따옴표(') 도 출력되어야 한다.)

입력

출력

'Hello'

입력 예시

출력 예시

'Hello'

도움말

printf( ) 함수로 "문장" 안에서 작은 따옴표(')를 출력하기 위해서는 작은 따옴표를 출력하려는 부분에 \'를 넣어주어야 한다.

\'  는 따옴표 출력
\" 는 큰 따옴표 출력
... 등 등.

왜냐하면, 문자나 문장을 나타내는 기호들이 쓰이는데 그 기호들과 문자로서의 따옴표를 확실히 구분해 주기 위해서이다.

예시

C언어

printf("\'");

파이썬

print("\'")


** 주의 : 본 화면에서 복사하여 붙여넣기하면 제대로 되지 않을 수 있으니 직접 소스코드를 작성해 넣어야한다.