본문 바로가기
프로그래밍

[프로그래밍 공부법] 구글링

by Couldi 2021. 11. 12.
반응형

프로그래머의 영원한 친구. 구글이다. 구글에 검색해보는 것을 구글링이라 말하고, 모든 개발의 시작은 구글링부터 시작한다.

그만큼 구글링은 중요하다. 원하는 정보를 검색하고, 찾아내서 읽어내는 능력, 그리고 읽고 이해한 내용을 바탕으로 자신의 코드를 작성하고 수정할 수 있는 능력. 이러한 능력이 충분하다면, 프로그래밍을 시작한지 얼마 안되었을지라도 자기가 생각한 코드를 더듬더듬 만들어 나갈 수 있다.

 

이건 마치 일반인이 평소 안해먹던 요리를 해먹기 위해 인터넷에 레시피를 검색해 보는 방법과 비슷하다. 대충 집안에 있는 냉장고를 확인하고, 해먹을 수 있는 요리를 생각한뒤, 해당 요리를 인터넷에 검색해서 여러 레시피를 확인해본다. 그리고 그 중에서 맛있어보이고, 그나마 내가 해볼만하다 싶은 요리를 선택해 조리를 시작한다.

 

놀랍게도, 프로그래밍 과정 역시 동일하다. 대충 만들고 싶은 프로그램을 생각해본 뒤, 구글에 어떻게 만드는지 검색해보고, 방법을 찾아서 어찌어찌 만들어 나간다. 간단한 요리의 경우, 인터넷에 검색해보고 이러는 과정을 생략하고 냉장고에 재료로 대충 만들어 먹을 수 있듯, 프로그래밍에 익숙해진다면 간단한 프로그래밍 같은 경우 역시도, 대충 이렇게 만들면 되겠네 라는 생각으로 코드를 짜다보면 후딱 만들 수 있기도 하다.

 

하지만 우리 대부분은 숙련된 요리사도 아니고, 숙련된 프로그래머도 아니다. 그러니 구글에 검색하고, 자료를 읽고, 적용해나가는 과정이 무엇보다 중요하다. 그러면 이제 구글링을 어떻게 하면 더 잘할 수 있을지 생각해보자.

세가지 측면에서 설명해보고자 한다.

구글에 검색하는 법, 검색한 내용을 찾아 읽어내는 법, 내 코드에 적용시키는 법. 

 

1. 구글에 검색하는법

구글에 검색하기 위해서는 내가 검색하고자하는 걸 명확히 정의하는 것부터 시작해야한다. 예를 들어 'BottomSheet'를 구현하려는 상황을 가정해보자. 그런데 만약이 BottomSheet라는 단어를 모른다면? 친구에게 물어보려면 어떻게 물어보겠는가?

'아 왜 그 있자나. 앱 켜서 밑에 누르면 밑에서 막 화면 올라오는거! 그거 만들려는데 어떻게 만들어야해?'

친구가 '아, 그거!' 하고 이해하면 다행이지만 이해 못할 확률도 크다. 그래서 검색을 하고 싶다면, 내가 만들고자 하는 걸 사람들이 어떻게 부르는지를 알아야한다. 특정 기능일 수도 있고, 위젯 같은 것일 수도 있다. 하나 확실한 것은 구글에 물어보기 위해서는 그걸 대체 무엇이라고 부르는지 정확한 이름을 알아야 한다는 점이다.

그러니 평소 학습을 할 때, 배우는 요소들의 이름을 정확하게 기억해두는게 좋다. 물론 언제나 이름을 아는 애들만 검색할 상황이 가능한건 아니다. 뭐라고 부르는지 모르는 애들도 검색해 봐야하는 상황이 종종(?) 생기는데, 처음 공부하는 사람들은 이런 경우가 대다수일 것이다. (처음 공부하면 그게 당연한거고, 뭐라고 검색해야할지 모르겠는 상황을 줄여나가는 것이 프로그래밍을 제대로 공부하는 방향이다.)

 

즉, 우리는 검색해야할 키워드 부터 찾아야한다.

 

일단 한국어로 시작을 해보자. 우리가 아는 영역부터 시작해 키워드를 찾아 나가야한다. 이때 검색할때는 한글로 무작정 적는 것보다, 내가 지금 개발하려는 프레임워크나 아이템의 이름을 '영어'로 포함해주면 검색에 도움이 된다. 한글 키워드도 뭔가 있을것 같은 딱딱한 단어로 검색해보자.

flutter 하단에세 올라오는 메뉴창

이렇게 검색하면 BottomSheet가 나올수도 있고 다른 내용들이 나올 수가 있다. 그러면 검색해서 나오는 결과물들을 보면서 단어들을 확인해라. 한글로 뭐라고 지칭하는지도 확인해보고, 영어 키워드가 어떻게 되는지 확인해야한다. 그렇게 용의선 상에 몇몇 키워드들을 조합해가며 구글링을 해보자. 키워드를 찾을때 활용할 수 있는 검색팁은 아래와 같다.

  • 사용중인 프로그래밍 언어나 프레임워크 등의 단어를 포함하자.
  • 가능한 영어로된 키워드로 검색하자.
  • 검색한 자료들을 확인해가며, 다시 검색해봐야할 키워드를 추려나가자.
  • 위 과정을 반복하자.

처음에는 삽질도 이런 삽질이 없다. 하지만 이러한 과정을 반복하다보면, 생각보다 많은 키워드들에 대해 알게 되고, '지금 당장' 필요한 내용은 아니지만, 뭐라고 불러야할지 몰랐던 부분들에 대한 명칭들을 조금씩 알게 된다. 그러다 보면, 나중에 해당 부분을 만들어야할때 검색을 좀 더 쉽게 할 수 있기도 하고, 나온 검색자료에서 필요한 정보인지 아닌지에 대한 판단이 빨라지게 되므로 구글링하는 실력이 증가하게 된다.

 

2. 검색한 내용을 찾아 읽어내는 법

작성일을 확인하기

정확한 키워드를 찾아 구글링에 1차적으로 성공을 했다면, 이제는 검색된 자료를 제대로 읽고서 이해하는 것이 중요하다. 이 과정에서 유심히 살펴봐야하는 부분은 글이 작성된 시점이다. 가능한 최신자료를 찾아서 봐야한다. 오래된 자료의 경우, Outdated 되어 있을 확률이 높다. 프로그래밍에서 outdated되어 있다는 건, 제대로 작동안하거나 현재는 그 방식이 달라져있을 가능성이 높다는 것을 의미한다. 다른 학문의 영역에 비해 변화가 굉장히 빠른 영역이라 어쩔수 없다. 기초 중의 기초가 되는 부분이 아니고서야, 시간이 지날 수록 많은 것이 바뀌어 있다. 그래서 나는 글의 작성시점을 굉장히 중요하게 생각한다. 블로그에 개발 관련 글을 작성할 때, 항상 맨처음에 작성일을 집어 넣는 이유이기도 하다.

작성일과 얼마 차이가 안나는 시점에 해당 글을 참고하는 사람들에게는 '아직 참고해도 괜찮다' 는 보증으로, 작성일로 부터 먼 훗날 그 글을 접하는 사람들에게는 '이 글은 오래되었으니 주의가 필요하다' 라는 경고 문구로 받아들였으면 좋겠다.

Doc과 함께 보기

관련 키워드로 검색을 하고 난 자료를 가장 정확하게 서술하고 있는건 공식문서라고도 불리는 Doc이다. 그게 가장 정확하다. 그걸 기반으로 stackoverflow나 다른 사람들이 작성한 블로그 글들을 참고해야 한다. 절대로 하나만 봐서는 안된다. 블로그나 stackoverflow에서도 좋은 글과 좋은 답변들은 항상 공식문서에 해당 부분을 링크로 걸어둔다. 자기가 제시하는 해결책의 근거가 되는 부분이 Doc이기 때문이다.

하지만 Doc은 개발자들이 읽을 것이라 고려해서 적혀 있기 때문에, 처음 공부하는 사람들이 이해하기가 어렵고, 어디서부터 어떻게 봐야할지 막막하다. 그래서 stackoverflow나 블로그 등에 다른 사람들이 작성해 놓은 글들을 읽어가며 Doc을 같이 읽는 연습을 해야한다.

그 과정에서 Doc을 보는 능력도 향상되거니와 Doc을 기반으로 좋은 글과 나쁜 글을 판별하는 능력도 생긴다.

그러니 제대로 검색해서 자료를 찾았다면, 해당 내용은 Doc하고 같이 보는 습관을 기르자.

 

3. 내 코드에 적용시키기

기본기가 필요하다.

1번과 2번 항목을 제대로 수행해서 어떻게 해야하는지 감을 잡았어도, 그 방식을 내 코드에 직접 적용시키는건 또 다른 차원의 문제이다. 다른 사람들의 코드를 읽고 이해하고, 내 코드에 적용시키기 위해서는 기본적인 프로그래밍 실력이 뒷받침 되어야한다. 즉, 기본기가 필요하다는 이야기이다.

기본적인 프로그래밍 문법이나 활용법을 이해하고 있어야 내 코드에 응용해서 적용할 수 있다. 정확한 자료를 찾았어도, 그 코드를 해석을 하지 못하고, 작성을 하지 못하면 제대로 된 마무리를 지을 수가 없다. 그래서 내가 프로그래밍 공부를 시작한다는 사람들에게 책이 아닌 '강의'를 권하고, 그 강의를 베이스캠프 삼아 실력을 키워보라고 하는 것이다.

코드가 작동하는 방식과 작성하는 순서에 대한 어느정도 이해가 바탕이 되어야 한다. 구글링이라는 모험의 여정을 위해 베이스캠프를 구축하는 것. 그리고 그 베이스캠프를 중심으로 너무 멀지 않은 탐사를 시도해보는 것. 기본기는 그렇게 기르면 된다.

무작정 베껴쓰면 안된다.

프로그래밍 초보자라면 무작정 베껴써도 된다. 그 과정 중에 수많은 문제를 만나고, 이해하지 않고 가져다쓴 코드가 가져오는 후폭풍을 몸소 체험해보며 강해져야한다. 그런게 초보자이다. 하지만 어느 정도 머리가 굵어져 초보티를 벗고 싶다면, 아무 코드나 가져다가 내 코드를 그저 작동하는 프랑켄슈타인 같은 코드로 만드는 행위는 지양해야한다. 100% 정확하게 이해하고 가져다 쓰면 좋겠지만, 그렇지 않은 경우도 더러 있을 것이다. 그럴때는 마음에 준비를 하고, 가져다 써라. '어디선가 이 코드로 인한 에러를 만나게 되겠지.' 라는 마음의 준비를 하고 사용해야한다. 알고 맞으면, 덜아프다. 실력이 좀 더 좋다면 피할 수도 있고. 웃자고하는 소리가 아니다.

가져온 코드 때문에 문제가 생길 수 있다는 점을 확실히 인지하고 있어야, 추후 문제가 생겼을 때 더듬더듬이라도 해결해 나갈 수 있다.

 


 

덤.  에러 해결을 위한 구글링

에러를 해결하기 위해서 구글링하는 경우가 위에 적은 경우보다 더 많을 것이다. 이때는 몇가지 요령이 있다.

  • 에러메세지를 찾아 검색하기
    내가 겪는 에러는 분명 누군가가 겪고, 해결한 오류들이다. 나만 겪는 특이한 오류일 가능성은 매우 적다. 검색하면 다 나온다라는 생각을 가지고, 에러메세지, 에러코드들을 찾아 검색해보자. 이때 검색할때도, 에러가 발생한 언어나 프레임워크의 이름을 함께 검색하는 것이 좋다. 경우에 따라 사용하고 있는 IDE와 관련된 에러일 수도 있으므로, IDE의 이름도 검색에 포함하는 걸 고려해야할 수도 있다.
  • 최신글로 찾아보기
    아까도 설명했지만, 에러에서도 중요하다. 최근에 작성된 글에 나온 해결방법을 따라야한다. 불가피한 이유로 최신버전이 아닌 특정버전을 사용하고 있다면, 그 버전을 포함해서 검색해야한다. 이 경우에는 최신글이 아닌 좀 오래전에 작성된 글이 문제를 해결해 줄 수도 있다.
  • 다른 사람에게 먼저 물어보기: 구글링이 항상 답은 아니다.
    에러에 따라 에러메세지가 제대로 안나올 수도 있고, 한번에 너무 많은 에러가 발생해 어디서 부터 해결해야할지 모를 경우가 있다. 이런 경우에 무작정 구글링을 하는 건 효과적인 방법이 아닐 수 있다. 그보다 먼저 같이 공부하는 사람들이나 나보다 조금 더 알고 있는 사람들에게 자신의 소스코드와 에러 상황을 공유하고 도움을 받는 편이 문제를 특정하고 해결하는데 더 효과적이다. 
    특히 다른 사람들에게 먼저 물어보는 건 초보자들에게 더 효과적인 학습방식이다. 단순히 문제 해결을 넘어, 학습해야할 방향이나 학습 관련 팁들도 얻을 수 있다. 나보다 프로그래밍에서 나은 실력을 가지고 있다고 여겨지는 사람은, 나보다 더 많은 에러의 고통을 맛본 사람이다. 그런 사람들은 자신이 겪어봤던 문제로 고통받고 있는 초보자들을 외면하지 못한다. 바보같은 질문이라 걱정하지 말고 물어보자. 그들이 100% 답을 줄꺼라고 보장은 하지 못하지만, 당신의 어려움에 귀기울여주고 함께 고민해준다는 것 만으로도, 당신이 겪고 있는 문제를 해결할 확률이 훨씬 높아질 것이다.

 

괜히 이런 글을 쓰는 날이면 광고하고 싶어진다.

https://study.flearner.co/

 

플러터 스터디 : 플러너 2기 모집 🎉

Udemy에서 판매 중인 강의를 기반으로 함께 플러터를 공부할 플러너를 모집합니다! (진행 강의 : The Complete 2021 Flutter Development Bootcamp with Dart) 🙋🏻 혼자 꾸준히 공부하기가 어렵다면? 🙋🏻 열정

study.flearner.co

혼자 공부하는 것보다는 여럿이 공부하는게 낫고, 먼저 공부한 사람들이 도움을 줄 수 있다는 점 또한 강점.

내가 생각하는 학습 철학을 어떻게 하면 이 스터디 속에 녹여넣을수 있을지 계속 고민중이니 앞으로도 발전하지 않을까?

반응형

댓글