<사칙연산도 모르는 개발자.> 자다가 문득 떠오른게 있었다. 곱셈과 나눗셈의 원리가 뭐지...? 학교에서 배운 곱셈과 나눗셈은 구구단을 주입식으로 외우는 것으로 끝났다. 1~9단 까지의 패턴을 외우고, 그것을 응용해서 곱셈을 해냈다. 나눗셈은 구구단에서 해당하는 패턴을 가로 세로의 교집합에서 찾아내는 일이었다. 학습의 목적이 문제 풀이 였다. 그러다보니 곱셈과 나눗셈의 원리조차 모르고 그저 문제풀이에 이용하고 있던 거다. 당면한 문제 해결에는 원리가 중요하기 보단, 수학 공식과 기본 지식(구구단)이면 충분했으니까. 그래서 이 나이 되도록 곱셈과 나눗셈의 원리도 모르고 있었다. 곱셈의 원리는 더하기의 응용이다. 2*3=6인 이유는 2라는 블럭을 [3번] 더하는 거다. [2]+[2]+[2] =6. 이것을 간소화 한것이 곱셈이라는 방식. 나눗셈의 원리는 빼기의 응용이다. 10/2 =5인 이유는 10-2-2-2-2-2=0 이기 때문이다. 원래 값에서 몇번 빼기를 하면 0이 되는지를 묻는 연산. 즉 10을 2로 5번 빼면 0이 되기 때문에 10/2 = 5가 된다. 현재 진행형으로 최근 나는 문제 해결만을 위한 학습을 해오고 있었다. 구글에, 혹은 stackoverflow에 검색하면 대부분의 예제 코드가 있었다. 기능은 구현되었고 문제도 해결됬다. 그리고 나는 다음 문제로 관심을 돌렸다. '동작원리'에 대한 호기심이 점점 사라져갔다. 직장에서는 계속해서 문제해결을 요구한다. 고객의 요구에 맞추어 코드를 짜고 기능을 구현한다. 하지만 그 과정에서 구글에 널린 예제 코드만을 응용해서 구현하다보면, 그것이 어떻게 동작하는지, 어떻게 리소스를 적게 리팩토링 할수 있는지, 에러가 왜 났는지에 대해 이해하기 어려워 진다. 나는 지금 비록 주니어 개발자 이지만, 언젠가는 미들, 그리고 시니어 개발자가 될 것이다. 주니어의 역량이 기능 구현이라면 미들과 시니어 개발자의 역량은 기능의 고도화 일 것이다.그러려면 기능구현 이후에는 원리에 집중해야 한다. 에러를 줄이고, 소모 리소스를 줄이며, 확장성이 좋은 코드. 원리에 대해 조금 더 집요하게 공부하고, 선배들이 고민하는 문제를 같이 고민해보면서 나의 방향으로 더욱 더 성장해 나가자. 2년뒤에도 주니어 역량으로 남아있고 싶지 않다면, 다음 목표에 대해 예습하고 방향을 재정립해야할것이다. -- 장마가 시작됬네요. 요새 너무 더웟는데 비가 내린 후에는 조금 시원해 졌으면 좋겠습니다. 커리어리 습관 챌린지로 글쓰기를 시작했습니다. 읽어주시는 분들이 조금씩 늘고 있고 보람이 느껴지는 일인것 같습니다. 항상 읽어주셔서 감사합니다!

2021년 7월 4일 오전 2:26

댓글 0