상세 컨텐츠

본문 제목

[MC2] AppleAcademy MC2 회고록 12주차

AppleAcademy

by (방울)도마토 2024. 5. 26. 23:53

본문

* 프로그래밍적 사고에 대한 이해 

이번 MC2에서 개발 과정에 꽤나 많이 참여했다고 생각한다. 일단 팀 인원이 적기도 했고, 다른 팀원들이 내가 개발과정에 원활하게 참여할 수 있도록 많은 도움을 준 덕분이다. 개발에 적극적으로 참여하게 되면서, 기술적으로 공부도 많이 해야만 했다. 매일 팀원들과 데일리 스크럼을 가지면서 어떻게 공부하고 어떻게 접근할 것인지에 대한 이야기를 매일 나눴는데, 그런 시간들을 통해 이제야 나의 공부에 무슨 문제가 있었는지 정확하게 파악한 주간이기도 했다. 테크 팀원들의 공부방식을 보면서 정말 많은 걸 배우고 느꼈다. 드디어 학습과 습학의 차이를 이해했달까. 점차 사고의 시선을 깨쳐나가는 기분이 정말 좋다. 

 

하나의 문제가 존재하고 이를 해결하기 위한 과정이 A부터 Z까지 있다고 하면, 인문학적 사고와 프로그래밍적 사고(이렇게 정의해도 될까?)는 분명 다른 형태를 띠는 것 같다. 하나의 문제를 인문학적으로 해결하기 위해선 사실 A-Z를 모두 고려할 필요는 없다. A부터 B까지 가는 과정만 잘 이해해두면 C-Z까지의 과정은 A-B 과정에서 나타난 사고 방식의 확장이자 변주일 뿐이다. 그래서 A-B 과정이 가장 중요하다. 그런데 프로그래밍적 해결방식은 다르다. A-Z까지 일단 나아가는 게 중요하다. 그래서 전체적인 해결방법을 익힌 후 다른 문제에 적용해보아야 하는 것이다. 

 

예를 들어 '좋은 교육을 위한 교육과정'이라는 문제에서 가장 첫 번째로 해야 하는 것은 '좋은 교육'에 대한 정의이다. '좋은 교육'에 대한 다방면의 사고와 깊은 논의를 수행해야만 다음 단계인 '교육과정'에 대한 정의를 내릴 수 있기 때문이다. 이 과정을 어떻게 거치냐에 따라서 문제 해결의 결론이 완전히 달라지기 때문에, '좋은 교육'에 대한 논의에 정말 많은 시간을 들일 수밖에 없다. 즉, 첫 번째 단계가 다음 단계에 지대한 영향을 끼친다는 의미이다. 하지만 다음 단계부터는 '좋은 교육'에 대한 정의를 기반으로 하는 사고방식의 확장과 변주라서 문제를 어떻게 접근해야 하는지에 관한 시선이 열린다. 기존의 사고 방식을 바탕으로 다음 단계를 죽죽 이어나가면 되는 것이다. 

 

하지만 프로그래밍은 이렇게 접근하면 안된다. 이렇게 접근하는 것이 -현재 나의 수준에서는- 의미가 없는 방식인 것이다. 만약 '라면 끓이기' 문제를 프로그래밍적 사고로 접근한다고 해보자. 그러면 가장 첫 번째 단계는 '뚜껑이 열린 냄비에 물 550ml를 넣는다'가 될 것이다. 기존의 나의 공부 방식으로 공부한다면 '냄비란 무엇인가'부터 시작해야 한다. 뚝배기는 냄비로 볼 수 있는가? 양수냄비와 편수냄비는 같은 냄비로 볼 수 있는가? 뚜껑이 없지만 음식을 끓일 수 있는 물체는 냄비로 볼 수 있는가? 해당 질문에 대한 정의를 내리는 것을 가장 중요하게 여겼을 것이다. 그러나! 프로그래밍에서 냄비에 대한 정의는 다음 단계인 '센 불 위에 냄비를 올리고 물을 100도까지 끓인다'로 나아가는데 필요한 정보값이 아니다. 오히려 물이 500일 때는 괜찮은가? 600일때는 안되는가? 라면서 이것저것 시도해보는 것이 더 중요한 것이다. 이렇게 전체적인 과정을 거쳐 라면을 끓여보면서 '라면 끓이기'에 대한 방법을 알고 난 후 '우동 끓이기' 문제로 적용하고 응용하는 것이 더욱 필요한 과정이었다. 

 

이걸 테크 팀원들이 공부하는 걸 보면서 드디어 알게 되었다. 그들은 일단 문서를 읽으면서 코드가 보이면 그냥 xcode에 붙여보더라. 그러다가 되면 그제서야 이게 왜 되지 하면서 확인해본다. '아 내 코드의 변수와 문서에서 나타난 변수, 인수-인수 등 코드가 돌아가는데 필요한 조건과 동일하군'이라고 생각하면 다음 단계로 빠르게 넘어가서 다시 코드를 붙여본다. 이걸 이제야 깨쳤다. 이젠 정말 프로그래밍을 위한 공부를 할 수 있을 것 같다. 정말 나 느린 학습자이군.. 그래도 이렇게 배울 수 있어서 정말 뿌듯한 한 주이다. 

 


첨언 1. 라면을 먹어보는 것도 중요하다는 의견을 들었다. 끓여본 라면을 직접 먹어봐야 '아,, 이래서 스프가 필요하구나'라는 걸 깨달을 수 있다는 의미였다. 

첨언 2. 라면을 다 끓여보았다는 자만도 잠시, 내가 끓인 것이 끓인 물에 끓여진 라면이 아니라 그냥 뜨거운 정수기 물에 면을 불려놓은 거 일수도 있다는 말을 들었다. 오,, 예리한 의견 ㄱㅅ.. 하지만 가만안둠 ㅎ

관련글 더보기

댓글 영역