블로그를 정리하다, 잠깐 쉬어갈 겸 하여 좋은 프로그램이라 떠오르는 부분을 말씀드리고자 합니다.

첫째, 코드의 가독성이 좋아야합니다. ( = 코드가 눈에 보기 쉬워야 합니다.)

- 짧은 프로그램이라면 크게 문제가 되지 않지만,(물론 짧거나 크거나 항상 가독성을 신경써주는 것이 필요합니다!!)
큰 프로그램의 경우 몇 천줄, 아직 경험해보지는 못했지만 몇 만줄의 코드라면 나중에 자신이 직접 작성한 코드라도 나중에 수정해야 할 부분을 찾을 때 헤매기 십상입니다.
따라서 코드를 작성할 때에는 기본적으로 가독성을 고려하여 나 뿐만 아니라 다른 사람이 보기에도 보기 쉽도록 작성하는 습관을 들이는 것이 좋습니다.


둘째, 코드의 길이는 짧을 수록 좋습니다. (단, 너무 과하게 줄임으로써 가독성이 좋지 않은것은 의미가 없다고 생각합니다.)

- 불필요한 변수들을 과하게 선언해준다거나, 같은 타입의 변수들을 정의 할 때 여러 line으로 해주는 것은 코드의 길이를 늘이기만 하는 요소들입니다. 따라서 가독성을 해치지 않는 선에서 최대한 코드의 길이를 짧게 하는 것이 좋다고 생각합니다.


셋째, C에서의 main함수는 될 수 있으면 짧게 구성해주고, 각 기능에 따른 함수들을 따로 만들어 주어 호출해주는 것이 좋습니다.

- C나 Java, Android 등의 기본은 main입니다. 보통 코드를 분석할 때 main함수부터 따라가며 여러 기능들을 분석하는 것이 일반적입니다. 따라서 기능에 따라서 함수들을 만들어 준 후, main함수부분은 그 함수들에 대한 call함으로써 짧게 구성해 주는 것이 좋습니다. 예를 들어 계산기 프로그램에서 main안에서 여러가지 기능(+,-,/,* 등에 대한 연산과정)을 정의 해 주는 것보다, +,-,/,* 각각의 연산을 담당하는 부분을 함수로 따로 정의해주어 function call 하는 것이 훨씬 가독성을 좋게 하는 부분입니다.


넷째, 변수의 이름은 사용하는 의미에 맞는것으로 지어야합니다.

- 변수를 남발하는 것 또한 좋지않은 습관이며, 변수를 단순 a, b, c와 같이 선언해주는 것은 나중에 돌아보았을 때 이 변수들이 어떠한 기능을 하는지 생각하는 시간을 오래 잡아먹게 됩니다. 또한 자신이 아닌 제3자가 프로그램을 보았을 때 이해하기 매우 어려운 프로그램이 될 수 있습니다. 따라서 변수들은 하는 역할에 따라 적절한 이름을 지어주어 누구나 보고 이해할 수 있도록 해야하는 습관을 가져야 합니다.


다섯째, 반복문을 이용할 경우 최대한 불필요한 반복을 줄여야 합니다.

- 프로그램은 기본적으로 실행 시 memory를 잡아먹게 됩니다. 즉 프로그램의 효율성이란 공간복잡도와 시간복잡도 등에 의존하게 되는데 최근 H/W의 성능이 좋아짐에 따라서 공간보다는 시간복잡도에 대한 중요성이 상대적으로 크다고 생각합니다. 따라서 for문, while문 등은 필요에 따라서 구성하게 될 때 불필요한 반복연산 과정을 처리하는 부분이 최대한 적도록 하는것이 중요합니다.
이 반복연산을 줄이는 과정이 로직, 즉 알고리즘과 많은 관련이 되어있다고 생각하여 알고리즘에 대한 학습 또한 매우 중요하다고 할 수 있습니다.
프로그램의 성능을 높이고 싶다면 효율적인 알고리즘에 기반하여 프로그램을 작성하는 것이 중요합니다.



등등.. 기타 외에도 여러 중요한 점들이 많겠지만 잠시 쉬어가는 부분에서
대략적으로 떠오르는 중요한 부분들에 대한 설명이었습니다.
이런 방식으로 프로그램을 짜도록 노력하는 습관을 들이는 것이 가장 중요합니다!!


한동안 개인적으로 교육 및 프로젝트를 진행하느라 블로그를 만들기만 하고 


관리를 하지 못했습니다.


앞으로 S/W 개발과 관련된 여러가지 정보를 올릴 예정이며


아직 한걸음 나아가는 초보 프로그래머로써 같은 꿈을 꾸는 여러 사람들과 


유익한 정보를 공유하고 싶은 마음에 블로그 작성을 하게되었습니다.


혹여 제가 잘못알고있거나 부족한 부분은 정성어린 조언을 부탁드리며


실수한 부분에 있다면 지적 및 피드백 주시면 언제든 감사히 받아 수정하고


개발자로써의 길을 향하도록 하겠습니다.


S/W에 관심이 있는 모든 분들께 참고 및 도움이 되었으면 하는 바램입니다.^^

처음으로 저만의 블로그를 만들었습니다.!!


블로그를 하나하나 꾸며나갈 생각을 하니 설렙니다.ㅎㅎ


알찬 정보를 공유하는 블로그가 될 수 있길 바라며,