본문 바로가기

코딩/코딩에서 중요한 개념들

비전공자가 컴퓨터 배경 지식의 중요성을 알게된 계기 -GoF 디자인패턴

반응형

 

플러터를 제 인생의 첫 개발언어로 선택하고 공부하고 있습니다. 그리고 플러터를 공부하기 위해 시중에 있는 여러 플러터 책을 찾아보고 공부했었습니다. 그리고 느낀 점은 시중에 있는 플러터 책은 처음 코딩을 접하는 사람들에게는 엄청 불친절한 책이라는 것이였습니다. 

 

코드 설명을 할 때 

 

a 라는 함수를 사용하면 결과는 A다. 그러니 이렇게 사용하면 된다. 

 

라고만 적혀져 있을 뿐 입니다. a라는 함수는 왜 a 라고 부르는지, 그 결과 값이 왜 A가 나오는지에 대한 설명은 책에서 자세히 다루지 않기에 제가 만들고 싶어하는 여러 어플들이 위 책의 내용만으로는 절대 실현 할 수 없다는 걸 알게 되었습니다. 

 

 

사실 저는 2021년 12월 즈음에 자바를 잠깐 공부했었습니다. 숨고라는 어플을 통해서 코딩 1:1 과외를 받아봤었습니다. 

과외 선생님은 KT ai 센터 직원분이셨습니다. 엄청난 고수셨죠... 하지만  그 고수분은 저에게 무언가를 알려주려고는 노력하셨지만 

제가 가지고 있는 배경 지식이 너무 없다보니 제대로 된 수업이 진행 될 수 없었습니다. 그래서 과외를 중단하고 프로그래밍 관련된 책을 읽기 시작했습니다.  지난 1년 여간 도서관에서 빌린 총 책의 숫자가 89권이네요, 그 중에 70권은 개발과 관련된 책입니다. 

 

 

책 내용이 이해가 안되더라도 열심히 읽었습니다. 그리고 22년 9월즘에 책에 있는 내용들이 눈에 들어오게 되었습니다. 

본격적으로 다시 어플을 만들어 보자 라는 마음이 생겼고 플러터 까페에 가입하고 15기 초급 스터디까지 진행하게 되었습니다. 

 

그리고 마구잡이로 공부를 하기 시작했습니다. 원가계산기를 만들어보자 라는 마음에 깃허브에 있는 계산기 코드를 찾아내어서 

똑같이 따라 쳤습니다. 이해가 안되는 코드가 있으면 구글링 하고, 2번 3번 따라 쳤습니다. 그 과정에서 배운 여러 내용들을 제대로  이해하지 못하고 외우기에 급급했습니다. 

 

외국인이 저에게 How r u?라고 물으면 i m fine thank u 라고만 대답할 수 있는 상황이었습니다. 

 

그러던 중에 최근 디자인 패턴 책을 읽게되었습니다.

책 제목이 디자인패턴이라 UI관련된 책인 줄알고 빌렸습니다만 

내용 중에 나오는  감시자(옵져버) 패턴을 읽고 감동? 깨우침? 충격? 비스무리한 것을 받았습니다. 

 

옵져버 패턴의 시작은

오래전 인터넷 연결이 원활하지 않을 시절에 웹사이트의 상태를 확인해서, 응답 속도가 느리거나, 연결이 끊기는 경우가 생기면 모니터링 담당자에게 이메일을 보내게 하는 시스템이었습니다.

 

그렇기에  코드의 구성이    변화를 감지하는 Notifiy 클래스, 그 변화를 옮겨주는 인터페이스 클래스   Observer 그 안에 update( ) 메소드, 그 업데이트 된 값을 가져와 화면에 노출시키는 Display 클래스or 이메일을 보내게 하는 행동 클래스 로 되어 있습니다. 

 

제가 계산기 코드를 클론코딩하면서 배웠던 GetX, Provider가  바로 생각났습니다. 

플러터의 대표적인 상태관리 패키지로

Get x는 Obx() , .obs 

Provider는  ChangeNotifierProvider(or MultiProvider) , notifyListener() 

로 변화된 값을 감지하고 있습니다. 

 

즉 옵져버 패턴자체가 기능화 되어 패키지로 옮겨진 것입니다. 

 

그저 이 상태 관리 패키지를 사용할 때 문법처럼 외우기만 했던 저인데 이러한 기능들이 왜 , 어떻게 나왔는지 알게 되니 

클론코딩도 , 조금씩 만들고 있는 원가계산기 코드를  짤 때도 한결 편해지는 느낌입니다. 

 

 

위 경험을 통해 코딩 할 때 배경 지식의 중요성을 느끼게 되었습니다. 

 

다시 한번 제 개인적인 의견을 말씀드리면

 

코딩을 처음 하시는 분들에게 시중에 있는 플러터 책은  좋다, 나쁘다를 떠나서 매우 불친절한 책들입니다. 

 

먼저 배경 지식과 관련된 책 , 예를 들어 초보가 보는 프로그래밍, 개발자의 글쓰기, 기술 블로그 적는법, 아키텍쳐를 잘 구성하는 방법, 디자인패턴이란, 알고리즘 등등  쭉 한 번 읽어보시고 플러터를 시작하면 더 효율적인 공부가 되지 않을까 하는 마음에 긴 글 적어보았습니다 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형