안녕하세요 납땜능력자 입니다.
오늘은 저의 C 코딩에 대한 개발방향을 설명드릴 예정입니다. 우선 앞서 C언어에 대해 간단하게 소개해드리겠습니다.
1. C

C 언어는 제가 개발하면서 항상 하는말이 있습니다. "정말 컴퓨터 언어는 바보구나" 라고 얘기를 합니다. 정말 내가 하나하나 알려주지 않으면 아무것도 하지못하고, 정말 사소한 것까지 하나하나 다 알려줘야 내가 원하는 동작을 하는 그런 언어라고 생각이 됩니다.
이런 생각을 하던 중 블로그 글을 작성하려 찾아보다 정말 공감이 잘 되는 글을 봤습니다. "프로그래머인 당신을 믿을테니까 알아서 프로그래밍해라" 라는 문구를 봤는데, 정말 그말처럼 0부터 하나하나 내가원하는대로 짜주면 짜주는대로 동작하는 언어 입니다.
C언어는 Low Level 언어중 하나로 다른 언어보다 정말 가볍고 속도가 빨라 임베디드 혹은 시스템 프로그래밍에 주로 사용되는 언어입니다. 또하나 큰 특징은 다른 언어에 비해 메모리 관리를 정말 철저하게 할 수 있다는 점입니다. 그런 장점 덕분에 가벼우면서 극한의 퍼포먼스를 낼 수 있는 언어라고 할 수 있습니다.
2. 개발 방향
제가 코딩하는 C언어는 제가 가장 처음 접한 코드이고 가장 오래 접한 코드여서, 제가 사용하는 모든 다른 언어들이 C의 영향을 많이 받아 대부분 C언어 코딩하는 것처럼 코드를 짭니다. 저의 C코딩은 최대한 가독성이 좋은 코드를 짜도록 노력하고, 최대한 제가 정한 코딩 룰을 벗어나지 않도록 노력하는 편입니다. C#소개편에서 언급 드렸듯 아마 C#과 비슷한 코드 진행을 보실 수 있을것입니다.
추후 제가 올리는 코드들은 아두이노나 라즈베리파이 와 같이 주변에서 흔하게 사용할 수 있는 MCU를 사용해 그간 제가 개발하면서 벽에 부딛혔던 부분이나, 주로 많이 사용하는 통신을 위주로 포스팅을 해나갈 예정입니다. 어떤 MCU를 사용하든 최대한 메모리를 적게 쓰는 방향으로 설명드릴 예정이고, 저만의 코드 진행방향, 그리고 가장 중점으로 둘 것은 다른 인터넷에 올라와 있는 다양한 코드들과 저와의 다른점을 보여드리기 위해 노력해서 포스팅을 이어나갈 예정입니다.
제 포스팅은 대부분 통신쪽 포스팅이 많을 것으로 보입니다. 데이터를 정리하고, 분배하거나 각종 통신 방식에 대해 설명 드릴 예정입니다. MCU마다 많은 차이가 있겠으나, 가능한 C만을 사용해 대부분의 MCU에서도 사용할 수 있도록 신경써서 포스팅을 할 생각입니다.
3. 마치며
제가 포스팅할 코드들은 통신 테스트 프로그램, 메모리 정리에 초첨을 맞춰 작성할 예정입니다. 다른 언어와 마찬가지로 모든 프로젝트들의 코드는 공개할 예정입니다.
인터넷에 정말 많은 예제 코드들이 많을탠데 저는 그 코드들과 제가 작성한 코드들의 차이를 최대한 자세하게 설명 드릴 예정이고. 그 코드를 다른 프로젝트들에도 두루두루 사용할 수 있도록 최대한 가독성이 좋고 수정이 편리하도록 코드를 짜는데 중점을 두어 설명드릴 예정입니다. 저의 C코드 포스팅의 목표는 한번 작성한 코드가 한번 사용하고 없어지지 않고, 다른 프로젝트나 다른 MCU에서도 다시 재사용 할 수 있도록 하는것을 목표로 생각하고 있습니다. 물론 MCU마다, 다양한 칩들에 따라 어려운 일이 되겠지만 최소한의 수정으로 코드를 재사용 할 수 있도록, 다음 프로젝트에서 이전에 사용한 코드들이 거름이 되어 시간을 아낄 수 있도록 하는것을 목표로 생각하고 있습니다.
저의 글이 다른 모든 개발자 분들에게 거름이 될 수 있도록 포스팅을 이어가도록 하겠습니다.
감사합니다.