NOTE12-코딩

NOTE12-코딩 -...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 17. 프로그래밍(Programming) 프로그래밍(Programming) n 소프트웨어 개발 과정으로 본다면 프로그래밍은 설계의 연장이라 볼 수 있다. n 상세 설계가 끝난 후 프로그래밍(코딩)에 들어가며, 프로 그래밍은 설계 명세서에 나타난 결과를 더욱 구체화시켜 컴퓨터가 이해할 수 있는 모습으로 바꾸는 것이다. n 물론 컴퓨터가 이해할 수 있는 모습은 컴퓨터가 이해할 수 있는 언어로 표현한다는 뜻이며, 컴퓨터가 이해할 수 있는 언어를 프로그래밍 언어라고 한다. n 코딩은 설계의 자연스러운 결과이며, 설계가 제대로 이루 어지면 프로그래밍은 기계적으로 이루어진다고 볼 수 있 다. 프로그래밍 표준 n 옷을 입는 스타일이 사람마다 다르듯이 프로그래밍 스 타일도 사람마다 다르다. n 좋은 프로그램이란 일반적으로 단순하고 명확하여 그 내용을 쉽게 파악할 수 있도록 만들어진 것을 일컷는다. n 코드는 간결하며 명확하고 이해하기 쉽도록 쓰여져야 한다. n 프로그램에 대한 가이드라인과 표준을 제시하는 것은 프로그램에 대한 관리를 용이하게 하고 생산성을 높이 려는데 그 목적이 있다(풍부한 주석문 필요) 주석문 내용 1. 모듈의 목적을 기술하는 목적문 2. 인터페이스에 대한 기술 a. 호출 표본 b. 모든 인수에 대한 설명 c. 모든 종속 모듈 목록 3. 중요 변수들과 이들의 사용 한계, 제한 등을 포함하는 중요 정보들 4. 개발 역사 a. 모듈 설계자(author)의 이름 b. 검토자의 이름과 검토 날짜 c. 수정 일자와 수정에 대한 설명 주석문 가이드라인 1.변수, 구조체, 함수 등은 그 의미를 알기 쉬운 이름을 사용하거나 주석을 통하여 선언시 그 목적을 분명히 알 수 있도록 해야 한다. 2.주석은 코드와 명확히 구분되어 눈에 잘 띄어야 한다. 3.주석은 코드에 대한 정확한 설명을 해야 하나, 명백한 코드에 대한 재설명은 필요없다. 4.함수의 이름과 그 인자사이에 연관관계를 명확히 하 라. 5.함수의 인자는 선언시 인자에 대한 설명(주석)이 있어 야 한다. 6.쉽게 이해되지 않는 논리식이나 자료구조에 대한 설 명(주석)이 있어야 한다. 9.2.2 코드의 간결성 1.공백을 이용하여 실행문 그룹과 주석을 명확히 구분 해라. 편집의 편의를 위해 탭키를 일관성있게 사용하 라. 2.복잡한 논리식과 산술식은 괄호와 줄맞추기 (indentation)를 통해 명확하게 표현하고, 상호 관련 이 있는 것 사이에는 밑줄을 그어 표현한다. 3.두 개의 피연산자를 갖는 산술연산자나 논리연산자의 경우에는 연산자와 피연산자 사이를 한칸 띄운다. 4.단일 피연산자를 갖는 연산자와 피연산자 사이에는 공백이 있어서는 안된다. 5.함수 이름과 시작하는 괄호 사이에는 공백이 있어서 는 안된다. 코드의 간결성(계속) 6. 7. 8. 9. 예약어(reserved keyword) 뒤에는 공백을 넣는다. 한 줄에 오직 한 문장만 코딩하라. 빈 줄을 사용하여 선언부와 구현부를 구별하라. 중괄호를 사용하는 방법에는 두 가지 방법이 있다. 제어문과 같은 줄에 쓰는 방법과 다음 줄에 쓰는 방법 이 있다. while (foobar != 20) { …… } while (foobar != 20){ …… } 프로그래머는 같은 source 파일 내에서 두 가지 방법을 혼용하 지만 않는다면 어떤 방식을 사용해도 상관없다. 코드의 간결성(계속) 10. 복잡하고 긴 복합문장으로 이루어진 제어문 블록이 나 함수블록의 처음과 끝을 명확히 알 수 있어야 한다. main(argc,argv) { while.....… { if....… { . }/* --- END OF IF --- */ }/* --- END OF WHILE --- */ }/* --- END OF MAIN (or function) --- */ (주석으로 사용한 대문자가 이를 명확하게 한다) 코드의 간결성(계속) 11. 내장된 함수와 매크로를 사용하라. 불필요하게 사용 자 정의 함수(기능이 중복되는)를 만들지 않도록 내장 함수나 매크로의 기능을 익혀라. 12. 호환성을 극대화 하기 위해 C의 비표준적인 특성을 사용하지 말라. 13. C 문법을 재정의하기 위해서 전처리기 (preprocessor)를 사용하지 말라. 14. 구조체 멤버에 접근할 때 포인터(*)가 필요하지 않 다면 사용하지 말라. (예. 가능하면 -> 연산자를 이용하는 대신 . 연산자 를 이용하라.) 코드의 간결성(계속) 15. 잘 알려진 한도값(예, 버퍼 크기)의 경우, 모듈의 시 작 부분에 선언하는 것이 바람직하다. 16. 전역변수나 상수 정의를 할 경우 찾기 쉽도록 코딩 하라. 선언부와 구현부를 분리하고, 많은 양의 변수나 상수를 정의할 경우 알파벳 순서대로 하라. 9.2.3 코드의 명확성 1. 조건문에는 반드시 예외사항까지도 처리되어야 한다. 2. 함수를 만들 때는 함수의 길이가 너무 길거나 지나치 게 짧지는 않은가, 인자의 수가 지나치게 많지는 않은 가, 그 함수의 목적이 충분히 범용적이고, 명확한 목 적을 갖고 있는가, 또 효율적인 해결책이 될 수 있는 가 등을 고려해야 한다. 코드의 명확성 (계속) 3. 다음과 같은 구성은 피해야 한다. if(condition) ; /* ie. a null statement */ else statement; if (!condition) statement 4. 단순한 코드의 반복을 피하고 코드를 간단히 하기 위 해 프로그램에 알맞는 프로그램 구조와 자료구조를 선택하여라. 5. "#define"에 의해 정의된 상수는 대문자로 쓰고, 불 분명한 상수는 "#define"을 사용하여 정의하라. 코드의 명확성 (계속) 6. 동적으로 변하는 자료를 사용하지 말고 sizeof 연산 자나 #define된 상수를 사용하여 자료 크기를 미리 정하라. 7. 비정적인(nonstatic) 변수가 NULL 이나 0으로 초기 화 되어 있다고 생각하지 말라. 8. 효율성을 높이기 위한 해결책을 만들었다면 코드를 바꾸기 전에 time command를 사용하고 그 코드의 시간 복잡도(time complexity)를 측정하라. 그리고, 그 효율적인 해결책을 문서화하라. 9. "?:" 연산자를 주의 깊게 사용하라. 가능하다면 if.... then.... else....를 사용하는 것이 명확하다. 코드의 명확성 (계속) 10. 다중 출구를 갖는 loop를 주의해서 사용하라. break statement 가 loop 종결 조건에 합해질 수 있는가? 11. continue statement를 주의해서 사용하라. continue statement에 의해 실행되어지지 않는 어떤 코드를 실행하기 위해 if statement를 사용할 수 있는 가를 생각하라. 코드의 명확성 (계속) 12. 공동으로 사용되는 변수를 분리해서 사용하지 말고 구조체를 이용하라. (예, struct tn char npa[4]; char nnx[5]; ;) 이렇게 관리하는 것이 서로 다른 변수를 사용하는 것 보다 Loop 등에서 편리하게 이용된다. 13. 정적인 함수를 사용하고, 전역변수(global variable) 는 피해야 한다. 이렇게 함으로써 작성된 함수나 변수 가 다른 목적으로 다른 프로그램에서 이용될 때 유용 하게 쓰일 수 있다. 변수의 범위를 제한해두는 것도 좋은 프로그래밍 방법이다. ...
View Full Document

This note was uploaded on 11/15/2011 for the course ECON 101 taught by Professor David during the Spring '11 term at Kwansei Gakuin University.

Ask a homework question - tutors are online