brunch

검색이 스승이다

암기보다 이해

by jeromeNa

새로운 프로젝트에 투입될 때마다 처음 보는 기술을 마주한다. 10년 전엔 AngularJS였고, 5년 전엔 React였다. 지금은 Next.js, React와 TypeScript다. 학원에 등록할 시간도, 책을 정독할 여유도 없다. 프로젝트 시작일은 정해져 있고, 일정은 빠듯하다.


크롬을 연다. 구글 검색창에 "Next.js tutorial"을 입력한다. 다음이나 네이버에서는 국내 자료만 나온다. - 개인적으로 네이버는 네이버 DB만 검색하는 것 같다. - 새로운 기술일수록 구글이 빠르다. 검색 결과 상단에 공식 문서가 뜬다. Get Started 페이지를 찾아 샘플 코드를 그대로 따라 한다.


복사, 붙여 넣기, 실행. 화면에 "Hello World"가 뜬다. 코드 한 줄을 바꿔본다. 텍스트가 바뀐다. 또 한 줄을 수정한다. 색상이 변한다. 실행하고, 수정하고, 다시 실행한다. 서서히 구조가 보이기 시작한다. 데이터가 어디서 와서 어디로 가는지, 화면이 어떻게 그려지는지.


오류가 난다. 빨간 글씨가 로그 콘솔을 채운다. AI 이전에는 오류 메시지를 복사해서 Stack Overflow에 검색한다. 똑같은 오류로 고민한 개발자가 전 세계 어딘가에 있다. 질문 아래 수십 개의 답변이 달려 있다. 체크 표시가 된 답변을 찾는다. 코드를 복사해서 적용한다. 실행한다. 오류가 해결될 수도 안될 수도 있다. 안된다면 다시 검색한다. 이 과정이 계속 반복된다.


페이크 코드도 많다. 버전이 달라 작동하지 않는 코드, 근본적인 해결책이 아닌 임시방편도 있다. 답변 아래 댓글을 읽는다. "This worked for me"라는 댓글이 많으면 신뢰할 만하다. 날짜도 확인한다. 5년 전 답변은 지금과 맞지 않을 가능성이 크다.


조금 더 확실하게 실행되는 소스를 위해 GitHub로 넘어간다. 검색창에 프로젝트 이름을 입력한다. 비슷한 기능을 구현한 저장소들이 나온다. Star 개수를 본다. 수천 개면 검증된 코드다. Clone 버튼을 눌러 로컬에 다운받아 실행한다.


전체 코드를 훑는다. 폴더 구조를 본다. 어떤 파일이 어떤 역할을 하는지 파악한다. 한 파일을 열어 코드를 읽는다. 생소한 함수가 나오면, 그 함수 이름을 검색한다. 공식 문서를 읽고, 다시 코드로 돌아온다. 이해가 될 때까지 문서를 여러 번 읽는다. 중요한 건 코드를 이해하는 것이다.


코드를 수정해 본다. 변수명을 바꾸고, 함수를 추가한 후 다른 데이터를 넣어본다. 실행한다. 오류가 난다. 왜 오류가 났는지 생각한다. 다시 수정한다. 실행한다. 작동한다.


이 과정에서 배운다. 오류를 수정하면서 더 많이 배운다. - 오류가 실력 향상의 원천이다. -




최근에는 ChatGPT와 Claude 같은 AI에게도 묻는다. "Next.js에서 API 라우트를 만드는 방법"을 질문한다. 바로 답변이 온다. 코드 예제까지 함께. 복사해서 붙여 넣는다. 실행되고, 대부분 작동된다.


하지만 AI 답변을 그대로 믿는 건 위험성이 있다. 버전이 다를 수 있고, 프로젝트 구조와 안 맞을 수 있다. AI가 제시한 코드를 검색용 AI인 Perplexity로 검색한다. 세 가지를 비교한다. 공통점을 찾고, 프로젝트에 맞게 조합한다.


AI에게 오류 메시지를 보낸다. "이 오류를 어떻게 해결하나"라고 묻는다. 몇 가지 해결 방법을 제시한다. 첫 번째를 시도하고, 안되면 두 번째를 시도한다. 예전엔 하루 종일 구글링했을 문제가 30분 안에 풀릴 수 있다. 시간이 상당히 절약된다.


하지만 AI가 모든 걸 해결해주지는 않는다. 복잡한 비즈니스 로직, 레거시 코드와의 연동, 프로젝트 특수한 구조. 이런 건 프로젝트 전체를 알지 못하면 AI도 모른다. 전체보다는 구현에서 막히는 부분이나, 사람이 컨트롤 가능한 범위에서 도움을 요청해야 한다.




개념을 이해하는 순서는 예전부터 같다. 예제 코드를 먼저 본다. 실행해 본다. 구조를 파악한다. 그다음 개념을 읽는다. 순서를 바꾸면 이해하기 힘들다. 개념부터 공부하면 머리만 아프다. 코드를 먼저 돌려보고, 작동 방식을 본 다음, 개념을 읽으면 "아, 그래서 저렇게 작동하는구나" 하고 이해가 될 수 있다.


신기술을 익힐 때도 마찬가지다. 공식 사이트에 접속한다. Get Started를 찾는다. 튜토리얼을 따라 한다. 한 줄씩 수정해 본다. 오류를 만난다. 오류 메시지를 검색한다. 해결한다. 다음 단계로 넘어간다. 3일이면 기본 구조가 파악된다.


경력 25년이 넘었지만 여전히 검색한다. 매 프로젝트마다 새로운 기술이 나온다. 10년 전 배운 jQuery는 이제 안 쓴다. 5년 전 배운 Vue는 Vue3로 바뀌었다. 지금 배우는 기술도 1,2년 후엔 다를 것이다.


그래서 암기하지 않는다. 이해한다. 구조를 본다. 데이터 흐름을 파악한다. 언어가 바뀌어도, 프레임워크가 바뀌어도, 구조와 흐름은 비슷하다. 그 원리를 알면 새로운 기술도 빠르게 익힐 수 있다.




Stack Overflow, GitHub, 공식 문서, 그리고 AI. 이 네 가지가 스승이다. 학원도, 자격증도 필요 없다. 궁금한 게 생기면 검색하고, 코드를 돌려보고, 오류를 해결한다. 그 과정이 학습이다.


AI가 나오기 전에는 프로젝트 마감 3일 전, 처음 보는 라이브러리를 써야 할 때, 패닉 상태였지만 크롬을 열어 GitHub에서 예제를 찾았다. 다운받아 실행했지만, 오류가 났다. Stack Overflow를 뒤졌다. 해결했다. 다음 오류가 났다. 다시 검색했다. 또 해결했다.


3일 만에 그 라이브러리를 익혔다. 프로젝트에 적용해 마감을 맞췄다. 현장에서 살아남는 방법이다. 책을 정독할 시간은 없다. 빠르게 검색하고, 빠르게 적용하고, 빠르게 해결한다.


검색 실력이 개발 실력이다. 어떤 키워드로 검색하느냐, 어떤 답변을 선택하느냐, 어떻게 검증하느냐. 이건 누가 가르쳐 주는 것도 아니고 경험이고 노하우다. 신입은 검색을 해도 답을 못 찾는다. 키워드를 모르고, 어떤 답변이 맞는지 판단을 못 한다. 경력이 쌓이면 검색 한 번에 답이 나온다.


개발은 암기가 아니다. - 제발 암기하지 말라. 내년이면 쓸모없는 기억이 될 수 있다. - 검색(프롬프트)이고, 이해고, 적용이다. 검색(프롬프트)이 있는 한, 혼자가 아니다. 전 세계 개발자들이 같은 고민을 하고, 해결책을 공유한다. AI가 나온 지금도 마찬가지다. 도구가 하나 더 늘었을 뿐, 본질은 같다. 검색 또는 프롬프트 요청하고, 이해하고, 적용한다.




keyword