티스토리 뷰

반응형

개발하다가 에러가 발생하면 가장 먼저 뭘 할까?

일단 에러 메시지를 복사한다. 그리고 구글에 붙여넣는다.

검색 결과를 살펴보다가 Stack Overflow가 보이면 클릭한다. 비슷한 문제를 겪은 사람이 있는지 확인하고, 추천을 많이 받은 답변부터 읽어본다.

아마 개발자라면 꽤 익숙한 과정일 것이다.

그런데 이런 방식이 처음부터 당연했던 건 아니다.

지금은 AI에게 바로 질문하기도 하지만, 그 이전에는 Stack Overflow가 개발자들의 문제 해결 방식을 크게 바꿔 놓았다.

어떻게 단순한 질문·답변 사이트 하나가 개발 문화에 영향을 미쳤을까?

1. Stack Overflow가 없던 시절에는 어떻게 문제를 해결했을까?

지금이야 에러 메시지를 검색하면 비슷한 사례가 바로 나오지만, 예전에는 사정이 달랐다.

인터넷에 개발 관련 정보가 없었던 건 아니다.

공식 문서도 있었고, 개발자 포럼도 있었고, 메일링 리스트나 IRC 같은 채팅 채널도 있었다.

다만 필요한 정보를 찾는 일이 쉽지 않았다.

예를 들어 어떤 라이브러리를 사용하다가 오류가 발생했다고 해보자.

공식 문서를 확인했는데 원인을 모르겠다. 검색해도 비슷한 사례가 잘 나오지 않는다.

결국 관련 커뮤니티에 질문을 올린다.

그런데 언제 답변이 달릴지는 알 수 없다.

운이 좋으면 금방 해결되지만, 그렇지 않으면 며칠씩 기다려야 할 수도 있었다.

답변이 달리더라도 현재 사용하는 버전과 맞지 않거나, 설명이 부족해서 다시 질문해야 하는 경우도 있었다.

지금과 비교하면 꽤 답답한 환경이다.



2. 정보는 많았는데, 왜 찾기가 어려웠을까?

가장 큰 문제는 정보가 여기저기 흩어져 있다는 점이었다.

어떤 오류의 해결 방법은 개인 블로그에 있었고, 비슷한 사례는 포럼에 올라와 있었다.

또 다른 해결 방법은 프로젝트 메일링 리스트에 남아 있기도 했다.

정보 자체는 존재했지만, 정작 필요한 사람이 그 정보를 찾지 못하는 상황이었다.

특히 포럼은 대화가 시간순으로 이어지는 경우가 많았다.

질문 하나에 댓글이 수십 개씩 달려도 어느 답변이 실제 해결책인지 판단하기 어려웠다.

오래된 글은 뒤로 밀리고, 다른 사람이 같은 문제를 다시 질문하기도 했다.

개발자 입장에서는 상당히 비효율적이었다.

이미 누군가 해결한 문제인데도 처음부터 다시 조사해야 했기 때문이다.

결국 필요한 것은 단순히 정보를 더 많이 모으는 일이 아니었다.

흩어진 답변을 찾기 쉽게 만들고, 그중 유용한 답변을 구분할 방법이 필요했던 것이다.

 



3. 2008년, Stack Overflow가 등장했다

2008년, Jeff Atwood와 Joel Spolsky가 Stack Overflow를 선보였다.

개발자를 위한 질문·답변 사이트였다.

그런데 기존 포럼과는 조금 다른 방식으로 운영됐다.

가장 눈에 띄는 차이는 답변에 투표할 수 있다는 점이었다.

누군가 질문을 올리면 여러 사람이 답변을 작성할 수 있다.

그리고 다른 사용자들은 도움이 되는 답변에 추천 투표(upvote)를 할 수 있었다.

반대로 유용하지 않거나 문제가 있는 답변에는 반대 투표(downvote)를 할 수도 있었다.

질문자가 직접 문제를 해결한 답변을 채택하는 기능도 있었다.

이 구조가 꽤 효과적이었다.

기존 포럼에서는 긴 댓글을 모두 읽어야 해결책을 찾을 때가 많았다면, Stack Overflow에서는 추천을 많이 받은 답변과 채택된 답변을 먼저 확인할 수 있었다.

물론 추천 수가 높다고 무조건 정답인 것은 아니다.

하지만 어떤 답변부터 살펴볼지 판단하는 데는 큰 도움이 됐다.

여기에 사용자 평판(Reputation) 시스템도 더해졌다.

도움이 되는 질문과 답변을 작성하면 평판을 얻고, 일정 조건을 충족하면 커뮤니티 운영에 참여할 수 있는 권한도 생겼다.

단순히 질문을 올리는 공간을 넘어, 개발자들이 지식을 함께 정리하는 공간이 된 것이다.

 

4. 개발자들의 습관이 바뀌기 시작했다

Stack Overflow에 질문과 답변이 쌓이면서 개발자들의 행동에도 변화가 생겼다.

문제가 발생하면 누군가에게 먼저 물어보기보다 검색부터 하는 것이다.

예를 들어 JavaScript에서 다음과 같은 오류가 발생했다고 해보자.

TypeError: Cannot read properties of undefined

처음 보는 오류라면 원인이 막막할 수 있다.

그런데 에러 메시지를 그대로 검색했더니 Stack Overflow에 비슷한 질문이 나온다.

답변을 읽어보니 객체가 undefined인 상태에서 속성에 접근한 것이 원인일 수 있다는 설명이 있다.

실제 코드에서 해당 객체가 초기화되는 부분을 확인하고 수정한다.

문제가 해결된다.

이 과정이 반복되면서 새로운 습관이 만들어졌다.

문제를 처음부터 혼자 해결하는 대신, 이미 누군가 해결한 경험을 먼저 찾아보는 방식이다.

단순히 시간을 절약하는 것 이상의 변화였다.

다른 개발자의 문제 해결 경험을 자신의 개발 과정에 활용할 수 있게 된 것이다.

 

5. 코드 복사·붙여넣기도 자연스러워졌다

Stack Overflow 이야기를 하면서 빼놓기 어려운 것이 있다.

바로 코드 복사·붙여넣기, 흔히 말하는 '복붙'이다.

개발하다 보면 필요한 기능을 구현하기 위해 짧은 코드 예제를 찾을 때가 있다.

문자열 처리, 파일 입출력, 날짜 변환, 정규표현식 같은 것들이다.

이런 코드는 매번 처음부터 작성할 필요가 없는 경우도 많다.

Stack Overflow에서는 특정 문제를 해결하는 짧은 코드 조각을 쉽게 찾아볼 수 있었다.

덕분에 이미 검증된 접근 방식을 참고하고, 자신의 코드에 맞게 수정하는 일이 자연스러워졌다.

물론 부작용도 있었다.

코드가 왜 동작하는지 이해하지 않은 채 그대로 붙여넣는 경우다.

특히 오래된 답변은 현재 사용하는 라이브러리나 언어 버전과 맞지 않을 수도 있다.

보안상 문제가 있는 예제가 남아 있을 가능성도 있다.

그래서 코드를 가져올 때는 최소한 다음 정도는 확인해야 한다.

  • 어떤 환경과 버전에서 작성된 코드인가?
  • 현재 프로젝트에서도 같은 방식으로 동작하는가?
  • 예외 처리나 보안상 문제는 없는가?
  • 코드의 동작 원리를 설명할 수 있는가?

결국 Stack Overflow의 장점은 생각 없이 코드를 복사하게 만든 것이 아니라, 이미 존재하는 해결책을 참고할 수 있게 했다는 것에 있다.

6. 개발자들의 공부 방식도 달라졌다

예전에는 새로운 기술을 공부할 때 책이나 공식 문서를 처음부터 읽는 방식이 일반적이었다.

물론 지금도 기본 개념을 익히려면 공식 문서를 읽는 것이 필요하다.

다만 실제 개발 중에는 당장 해결해야 하는 문제가 생기기 마련이다.

예를 들어 Python으로 JSON 파일을 읽어야 한다고 해보자.

Python의 모든 문법과 표준 라이브러리를 공부한 뒤에 JSON을 처리할 필요는 없다.

필요한 기능을 검색하고, 간단한 예제를 확인한 다음, 실제 코드에 적용해 볼 수 있다.

그러다가 모르는 개념이 나오면 그 부분을 다시 공부한다.

즉, 처음부터 모든 것을 배우는 방식뿐 아니라 문제를 해결하면서 필요한 내용을 배우는 방식이 자연스러워진 것이다.

 

7. 구글 검색과 Stack Overflow는 거의 한 세트였다

한동안 개발 관련 문제를 검색하면 Stack Overflow 페이지가 검색 결과에 자주 등장했다.

특히 에러 메시지를 그대로 검색할 때 그랬다.

재미있는 부분은 개발자가 반드시 Stack Overflow 사이트에 직접 들어가서 검색할 필요는 없었다는 점이다.

구글에 오류를 검색하면 관련 Stack Overflow 질문이 나왔다.

해당 페이지에 들어가 추천받은 답변을 확인하면 됐다.

검색 엔진이 정보를 찾아주는 역할을 했다면, Stack Overflow는 질문과 답변을 정리하고 평가하는 역할을 한 셈이다.

이 두 가지가 결합하면서 문제 해결 과정이 상당히 간단해졌다.

또한 질문과 답변이 축적될수록 더 다양한 오류에 대응할 수 있었다.

새로운 개발자가 같은 문제를 겪더라도 기존 답변을 재사용할 수 있었다.

하나의 답변이 여러 사람의 시간을 절약하는 구조가 만들어진 것이다.

 

8. 그런데 지금은 Stack Overflow 대신 AI에게 물어본다

최근에는 개발자가 문제를 해결하는 방법이 또 한 번 달라지고 있다.

이제는 에러 메시지를 검색하는 대신 ChatGPT나 다른 AI 코딩 도구에 질문하는 경우도 많아졌다.

예전에는 이런 순서였다.

에러 발생 → 구글 검색 → Stack Overflow 확인 → 코드 수정

지금은 이런 방식도 가능하다.

에러 발생 → AI에게 질문 → 해결 방법 확인 → 코드 수정

검색 결과에서 여러 페이지를 찾아다니지 않아도 된다.

현재 작성한 코드와 에러 메시지를 함께 전달하면 상황에 맞는 설명이나 수정 예시를 받을 수 있다.

Stack Overflow가 이미 축적된 답변을 찾아주는 방식이었다면, 생성형 AI는 질문과 맥락에 맞춰 새로운 응답을 만들어주는 방식이다.

다만 AI가 알려준 코드가 항상 정확한 것은 아니다.

없는 API를 사용하는 코드를 만들어내거나, 현재 프로젝트와 맞지 않는 해결책을 제시할 수도 있다.

그럴 때는 공식 문서나 실제 개발자들이 남긴 질문과 답변이 여전히 유용하다.

Stack Overflow가 완전히 필요 없어졌다기보다는, 개발자가 지식에 접근하는 방법이 다시 바뀌고 있는 것이다.

 

 

9. 결국 바뀐 것은 개발자가 문제를 해결하는 방식이다

Stack Overflow는 단순한 개발자 커뮤니티가 아니었다.

개발자가 문제를 해결하는 방식에 변화를 가져온 서비스였다.

과거에는 해결책을 찾기 위해 여러 문서와 커뮤니티를 직접 돌아다녀야 했다.

Stack Overflow가 등장한 이후에는 이미 누군가 해결한 문제를 검색하고, 추천받은 답변을 참고할 수 있게 됐다.

그리고 지금은 AI에게 현재 상황을 설명하고 해결 방법을 제안받는 시대가 됐다.

하지만 어느 방식이든 변하지 않는 부분도 있다.

검색 결과든 AI가 생성한 코드든, 자신의 환경에서 제대로 동작하는지는 결국 개발자가 확인해야 한다.

코드를 찾는 속도는 빨라졌지만, 문제의 원인을 이해하고 적절한 해결책을 선택하는 능력까지 불필요해진 것은 아니다.

앞으로 개발 도구가 어떻게 변하든 이 부분은 계속 필요할 것 같다.


더 자세한 이야기가 궁금하다면?

Stack Overflow가 등장하기 이전의 개발 환경부터 투표·평판 시스템, 개발자들의 학습 방식 변화, 그리고 AI 시대의 역할까지 원문에서 더 자세히 정리했다.

Stack Overflow가 개발 문화를 바꾼 순간 — 지식을 검색하는 방식이 바뀌다

개발 문화가 어떻게 바뀌어 왔는지 더 자세한 내용이 궁금하다면 위 링크를 클릭해 확인해 보자.

반응형