0. 들어가기에 앞서
그간 블로그에 글을 쓰는 게 쉽지 않았다. 연말이기도 하고 대학의 막바지였기도 하고 해야 하는 업무들이 다소 몰렸다. 바쁘다고 한다면 핑계인 것을 스스로 알기 때문에 다시금 정신 차리고 블로그에 글을 쓰려고 한다. 때문에, 이렇듯 늦은 새벽 시간에 짧지만 오늘 일을 하면서 느꼈던 짧은 소감을 남기려고 한다. 사실 마음먹기로는 여러 소재가 있었고 써보려고 시도했었지만 번번하게 허탕을 쳤었다. 내 생각에 글이 짜임새가 없거나, 확실히 공부를 하고 글을 정리하려고 덤벼들다 보니 그랬던 것 같다. 그래서 여러 번, 사소하게 글을 남겨보고자 한다.
글로 쓰려고 했던 소재로는 뭐 Numpy, Pandas의 데이터형과 기존의 퓨어 파이썬에서의 데이터형을 비교하는 글도 있었고, Django, Nginx, uWSGI를 통해 서버를 구축하는 글도 있었다. 그리고 사실 O.R.이나 여타 경제학 기법들에 대해서도 기말고사를 공부하면서 정리해서 올리려고 했었다. 그리고 Excel에 대해서도 하나씩 글을 올려보고자 하기도 했다. 뭐 어쨌든 여러 생각을 했었으나, 정리해서 잘 다듬어서 글로 만들어 내는 게 쉽지 않았다. 정확히는 마음 먹기가 쉽지 않았던 것 같다.
자연스레, 꾸준히 블로그 활동하는 개발자나 블로거를 보고 감탄하고 존경하게 됐다. 무언가를 꾸준히 한다는 게 말은 쉽지만 세상에서 제일 어려운 일이 아닐까 싶다.
일상적인 내용이 길었다. 오늘은 Excel을 통해서 풍향의 평균을 내는 함수를 짰다. (함수를 짰다라고 해야 할 지 프로그램을 짰다고 해야 할 지 항상 혼동이 된다.) 일을 주시는 박사님께서 항상 업무를 시키면서 업무에 대한 마음가짐이나 방법론에 대해서 설명해주시곤 한다. 그래서 오늘 들었고 깨달았던 내용에 대해서 정리하고자 한다.
1. 수식, 프로그램을 코드로 구현할 때 가져야 할 마음가짐
(1) 'P-D-C-A' 과정 중 Check을 통해서 항상 진도를 체크할 것
: 'P-D-C-A'라는 단어를 학과 공부를 하면서 많이 들었다. 쉽게 계획하고 실행 한 뒤에 결과를 측정하고 이를 반영해서 다시금 계획에 반영하고 실행해서 경과를 보라는 애기다. ('C-A-P-D'라고 먼저 현재 상태를 체크한 뒤 행동하고 결과를 측정하고 다시금 반영해서 린하게 업무를 진행하라는 얘기도 있다.) 뭐 이러나 저러나 핵심은 코드로 구현하면서 항상 과정이 맞는 지 중간중간 검증을 해야 한다는 말이다. 가령 두 방향의 풍향이 있고 이 두 개의 풍향을 평균내고자 하면 먼저 방향이라는 개념을 x,y 축으로 이뤄진 2차원에 투사시킨다. 그 다음에 각각의 값들을 평균 내고 결과를 삼각함수를 통해 중심각을 구해주게 된다. 그러면 2차원에 투사시킬 때 한번, 평균 내는 과정에서 한번, 결과를 낼 때 한번 이런 식으로 분기를 나누고 중간중간 과정이 맞게 흘러가는 지 체크를 해주는 것이 옳다. 이게 타당하지 않으면 쭈욱 코드를 써놓고 버그가 한 두개씩 계속 튀어나오게 된다.
(2) 기존의 예제나 기술 문서를 참고할 땐, 똑같은 데이터를 통해 실험해 볼 것
: 기존의 예제나 기술 문서를 참고할 때는 보통 어떻게 코드를 썼는 지 근거해서 코드를 구현한다. 혹은 코드가 없다면 수식이나 알고리즘 수순에 근거하여 코드를 구현하게 된다. 그 이후엔 실제로 적용하려는 데이터에 해당 코드를 적용하게 된다. 오늘 내가 범한 실수는 기존의 수식이나 알고리즘들이 다양한 참고 문헌에서 동일했기 때문에 맞을 꺼라고 가정하고 넘어간 점이다. 기존의 예제 값들을 내가 구현한 코드에 넣고 실행을 해서 값이 타당하게 나오는 지 확인을 했어야 했다. 기존의 코드를 내가 구현했고, 내 코드대로 기존의 데이터를 돌렸을 때 값이 동일하거나 효율이 향상된다던지 내 목적에 맞는 지 확인했어야 한다.
(3) 수식을 바르게 이해하면서 코딩을 할 것
: 이 부분은 프로그래머에게 필수적인 덕목은 아니지만, 개인적으로 갖춰야 하는 역량이라고 생각된다. 코딩을 하기 이전에 어떤 알고리즘으로 구현하고 논리구조를 거칠 지 먼저 구상하게 된다. 이 과정에서 수식을 바르게 이해하는 사람과 그렇지 않은 사람은 이해도가 다르다보니 효과적인 코드변용이 가능한 지 아닌 지가 차이가 난다. 따라서 가능한 한 수식을 바르게 이해하고 알고리즘을 고민한 뒤에 코드를 하는 과정을 거치면서 머리에 그려보는 연습을 하는 것이 좋다.
'Free board' 카테고리의 다른 글
티스토리 사전이벤트 (3) | 2024.11.06 |
---|---|
해외 대학원 진학과 비즈니스 문서 작성관련 (2018.11.23 업무일기) (0) | 2018.11.24 |
블로그 시작하기 (2018.11.21 잡담) (2) | 2018.11.21 |