fender
17k
2020-01-30 11:57:42 작성 2020-01-30 12:18:19 수정됨
64
38281

개발자라면 반드시 알아야하는 기본기


오키에 올라오는 질문 글을 보면 일정한 패턴이 보일 때가 있습니다. 원래 이렇게 하면 되야하는데 오류가 난다 -> 검색해봤는데 모르겠다 -> 소스와 오류 복사해서 질문 글 작성, 대략 이런 식이더군요.

제가 볼 땐 이건 우리나라의 소프트웨어 시장에 소모성 개발 인력을 대량 양산하는 체계가 자리잡은 탓에 생기는 문제라고 봅니다.

바꾸어 말하면, 개발을 가르치는 학원이나 강의, 교재는 넘쳐나는데 다들 어떻게 하면 당장 그런 양산 인력이 필요한 프로젝트에 투입해서 써먹을까 하는 데만 집중하지 제대로된 개발자의 기본기를 가르치지 않는다는 뜻입니다.

그래서 스프링으로 웹 사이트 만들려면 이거 저거 다운 받아서 이런 구조로 코드를 만들면 된다 이런 내용만 반복 숙달 시키면서 도대체 왜 그걸 그렇게 하는지, 그리고 하라는대로 했는데 안될 때는 어떻게 해야하는지는 알려주지 않습니다.

그런 식으로 개발을 처음 접하니까 오류가 나면 당황하고 뭘 어떻게 할 지 몰라서 그냥 소스 통째로 복사해서 도움을 요청하는 것이 아닌가 싶습니다.

개발자의 기본기라면 다양한 의견이 나올 수 있겠지만, 분야와 관계없이 정말 최소한의 기본 중의 기본을 추리면 대략 다음과 같이 정리할 수 있습니다:

  • API 문서를 읽는 능력과 습관.
  • 오류 트레이스를 읽는 능력과 습관.

개발자라면 언어나 라이브러리 등 새로운 기술을 접한다면 우선 해당 프로젝트의 기본 문서를 통해 개요를 파악하고, 무엇보다 API 문서를 통해 각 클래스나 메서드의 구체적인 의미나 용도를 이해할 줄 알아야 합니다.

또한, 오류가 발생하면 덮어놓고 복사해서 구글 검색부터 할 것이 아니라, 메시지를 읽어보고 트레이스를 분석하고, 필요하면 예외 클래스를 API 문서에서 찾아 정확한 의미를 이해하는 것이 순서입니다.

이건 개발자라면 스프링이나 탐캣 등을 사용하는 방법 같은 내용보다 훨씬 중요하게 우선 익혀야하는 기본입니다. 극단적으로 말해, 저런 기본기가 없는 개발자는 제대로 된 개발자라고도 할 수 없습니다.

혹시 멋모르고 국비 지원 학원 등을 통해 스프링을 속성으로 배우고 취업을 노리거나 막 업계에 발을 들인 초보 개발자라면, 다른 모든 걸 제쳐두고 API 문서와 오류 읽는 방법부터 익히고 습관화 하는 걸 추천드립니다.

그런 능력과 습관이 있고 없고에 따라서 앞으로 개발자로 일하는 내내 얼마나 많은 시간을 쓸데없는 검색에 허비하면서 스트레스를 받을지, 그리고 개발자로서 얼마나 높이 올라갈 수 있을지가 결정될 것입니다.

스프링이고, 전자정부 프레임워크고, 제이쿼리고 간에 무조건 API 읽는 습관, 오류 트레이스 읽고 이해하는 능력이 훨씬 중요하고 우선 익혀야 할 기본기입니다.

102
98
  • 댓글 64

  • 스야
    128
    2020-01-30 12:07:11

    그렇죠, 개발 언어를 이해하는 것과 디버깅 능력 개발은 기본 소양인거죠

    0
  • 니플
    2020-01-30 12:08:18

    이건 기본이라고도 말할 수 없을 정도로 당연한 거라 생각됩니다.ㅎㅎ

    개발 업무가 아니라하더라도 스스로 알아볼 수 있는 내용은 모두 알아보고 그래도 모르는 것에 대해서 물어보는 것이 맞습니다.

    -4
  • fender
    17k
    2020-01-30 12:12:48

    니플 // 네, 저도 너무 당연하게 그렇게 생각했는데 이 곳 질문 글을 보면 예외 트레이스를 못읽는 건 매우 흔하고, "아, 저 사람은 API 문서도 한 번 본적이 없겠구나" 싶어서 경악할 때가 자주 있더군요.

    그래서 전에 몇 번 했던 이야기지만 다시 강조해서 글을 써보았습니다.

    3
  • 곰개발자
    2020-01-30 12:42:58

    추천 10개를 누르고 싶네요.

    0
  • youngyoung
    1k
    2020-01-30 12:44:07

    학교 리포트하는 기분으로 물어보는 사람이 많아서 그런거 같네요

    0
  • spoon
    1k
    2020-01-30 12:51:32

    정말 간단하고 읽고 찾아가면 어디가 문제인지 나오는 오류 트레이스조차 물어보면 답답할 때가 있죠

    1
  • 열심히한다진짜루
    699
    2020-01-30 12:55:04

    이런 글 좋아요!

    1
  • ㅇㅈㅇ
    3k
    2020-01-30 12:56:59

    저도 기본기무새라 신나서 왔는데 

    기본 자세였군요 ㅋㅋ 추천.

    0
  • NULL만나면
    2k
    2020-01-30 12:57:07
    몰라서 그래요.

    강사들이.

    아는데 안하진 않겠죠...?
    0
  • fender
    17k
    2020-01-30 12:57:59 작성 2020-01-30 13:06:24 수정됨

    youngyoung // 사실 그런 식으로 질문을 해서 더 쉽고 빠르게 답을 얻을 수 있다면 아주 이해 못할 행동은 아닐 것 같긴 합니다. 배울 것도 많은 초보나 신입 개발자 입장에서 시간은 항상 모자라겠죠.

    문제는 그런 개발자가 회사에서 일하면서 앞으로도 10년이 될지 20년이 될지 모르는 기간 동안 거의 매일 같이 이런 저런 오류나 처음보는 기능을 접하게 된다는 점이 아닐까 싶습니다.

    즉, 그런 분들이 질문하는 내용을 보면 스택트레이스를 읽는 방법을 알고 있거나 해당 예외에 대한 API 문서를 한 번만이라도 찾아봤으면 10초 내에 원인을 정확하게 알 수 있는 경우가 많은데, 그 간단한 기본기가 습관이 안되서 개발자로 일하는 내내 스트레스를 받게 되는 것 같습니다.

    10초 면 알 수 있는 걸 소스 통째로 복사하고, 스크린샷 찍고, 또 비슷하게 오류를 못보는 분들이 막연하게 던지는 의심가는 부분을 무작위로 변경해보면서 정확한 해결 방법이 달릴 때까지 기다리서나 질문글이 묻혀서 다시 올리고...

    그런 걸 앞으로 10년 넘게 한다고 보면 생각만해도 끔찍하더군요.

    5
  • 인절미후후
    480
    2020-01-30 13:52:22

    대부분 찬성하는 의견이고 좋은글이라고 생각합니다.


    다만 해당 상황을 해결 혹은 이해를 하기 위해서 원론적인 접근(root cause)으론 아무래도 시간이 많이 걸리는 경우가 있습니다.

    접근 방법도 배경지식등에 따라 차이가 많이 날수 있구요.

    그래서 다른 방향으로는 회피책(workaround)으로도 해결을 하려는 노력도 있다고 봅니다.

    쉽게 말해 복붙이죠. 누가 알려준 정답을 그냥 가져다 쓰는 방식이나 이렇게 짜보니 이해는 안되지만 어쨋든 돌아간다

    해당 동작은 어느 레벨이든 시도하게 됩니다. 쥬니어든 시니어든 말이죠. 비율의 차이가 있겠죠. 시간(마감) 이라는 정해진 리소스안에서 최대한의 (보여지는) 성과를 내기 위해서라고 생각합니다. 물론 길게보면 정석적인 접근법이 좋겠죠.


    제가 얘기하고 싶은건 어느정도의 반복학습과 추상적인 동작들로 인해서 얻어지는 배움역시 개발자에게는 도움이 되고 어떨때는 빠른 해결법이 될수 있다는 말이 하고 싶습니다.

    초보 개발자 시절에는 API문서 읽으라 해도 한글도 아니고 친절하지도 않고, 대부분 나가떨어지지 않을까 싶습니다. 저도 그랬구요. 현재도 공식 문서 참 보기어려운걸 항상 느낍니다. 구글이나 애플이 쓴것두요..

    그래서 가이드 문서와 샘플을 제공해주고 stard guide를 제공해서 손을 움직여서 이해를 못하더라도 돌아간다는 느낌을 우선 몸으로도 알게 해주는게 학습과정에서는 필요하다고 생각합니다.


    개발자라면 반드시 알아야 하는 기본기라고 글을 쓰셨기에 모두들 이 글에 대해서 무겁게 받아들이지 않았으면 하는 마음에 댓글 남겨봅니다.

    10
  • 열심히배우자
    603
    2020-01-30 14:05:00

    기본기 

    아무리 강조해도 부족하죠

    저도 부족한듯 ㅡㅡ

    0
  • fender
    17k
    2020-01-30 14:09:47 작성 2020-01-30 14:10:27 수정됨

    인절미후후 // 보통 '회피책(workaround)'이라고 하는 건, 예컨대 플랫폼 자체의 한계 등으로 정상적인 처리가 어려울 때 해당 문제가 해결되기 전까지 사용하는 임시 방편을 뜻합니다.

    물론 가끔은 시간이 없을 때 일단 돌아가게 만 하는 구현을 그렇게 부르는 경우도 있습니다만, 그런 경우에도 보통은 정상적인 방식이 무엇인지 이해를 하는 전제로 그에 상대적인 개념으로 임시 조치라고 하는 것이지, 올바른 접근이 무엇인지 모르는 채로 복붙하는 행동을 뜻하진 않습니다:

    A workaround is a bypass of a recognized problem or limitation in a system or a policy. A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed.

    (참고: 위키백과의 'workaround'에 대한 정의)

    제 의견이 절대적일 수는 없으니 생각이 다른 부분은 존중하지만, 전 말씀하신 내용에 공감하기 어렵습니다. 자동 번역도 있는 시대에 API 문서 보는 것이 그렇게 어려운가요? 또, 설사 어렵다 쳐도 그게 정말 오류 날 때 마다 게시판에 질문하고, 소 뒷걸음 치다 쥐잡는 식으로 이것 저것 마구잡이로 바꾸어 보는 식의 삽질보다 대단히 힘이 드는 일이던가요?

    저는 그래서 초보 개발자가 API 문서나 오류 메시지를 읽는데 어려움을 겪는다면 이해할 수 있습니다. 그런데 이는 어렵게 느끼면 남들보다 더 노력해서 숙달해야할 내용이지, 일단 제쳐두고 훨씬 복잡한 프레임워크 코드부터 복사 붙여넣기 연습을 하겠다고 덤빌 내용은 아니라고 봅니다.

    전 노력을 해도 API나 오류도 못 읽는 경우라면 애초에 개발을 직업으로 해선 안된다고 생각합니다.

    2
  • fender
    17k
    2020-01-30 14:20:42 작성 2020-01-30 14:22:48 수정됨

    참고로 아마도 질답 게시판에서 가장 많이 올라온 질문이자, 의미만 알면 보통 10초 안에 원인을 알 수 있는 자바의 널포인터 예외에 대한 공식 API 문서의 설명은 아래와 같습니다.

    영어로 된 걸 그냥 구글 번역기에 돌렸더니 이렇게 나오는군요:

    객체가 필요한 경우 응용 프로그램에서 null을 사용하려고하면 발생합니다. 여기에는 다음이 포함됩니다.
    • null 객체의 인스턴스 메서드를 호출합니다.
    • 널 오브젝트의 필드에 액세스하거나 수정합니다.
    • 배열인 것처럼 널 길이를 가져옵니다.
    • 배열인 것처럼 널 슬롯에 액세스하거나 수정합니다.
    • Throwable 값인 것처럼 null을 던집니다.

    여기까지 하는데 1분도 안걸렸습니다. 그리고 '객체'나 '배열', '메서드' 같은 개념을 모르면 어차피 제대로된 자바 개발이 불가능하다고 보고, 번역된 내용에서 넉넉잡고 한 30분 쯤 고민하거나 검색하면 이해 못할 내용이 있던가요?

    전 그래서 이 정도 노력하는게 예를들어, 널포인터만 발생하면 매번 스크린샷에 소스 통째로 복사에 질문 글 올리고 답 올라올 때까지 무한정 기다리고 하는 것보다 대단하게 어렵다고 느끼는 걸 이해하지 못하겠습니다.

    제가 볼 때는 학원 등에서 아무도 그게 중요하다고 안알려주고 들입다 스프링 연습부터 시키거나 해서 단지 습관이 안되어 있을 뿐인 것 같습니다.

    1
  • 팥빵미인
    4
    2020-01-30 14:23:39

    API 보는걸 습관처럼 해야한데 아직 많이 부족하네요.

    좋은글 감사합니다.

    0
  • yrrehc
    68
    2020-01-30 14:37:16

    좋은 글 감사합니다.

    잘 읽고가요! 

    0
  • 인절미후후
    480
    2020-01-30 14:46:32

    @fender

    글쓴이 의견이 틀리다는 얘기는 절대 아닙니다.


    제가 댓글을 단 내용 역시 임시책으로 해결하면서 개발을 계속 하라는 얘기가 아닙니다.


    우선적으로 개발을 시작할때 원론적인 접근만으로 문제를 해결하려고 하면 시작의 허들자체가 높아서 포기할 가능성이 높으니 이런저런 시도를 해보라는 의미였습니다.

    그러면서 자연스럽게 해당 내용의 본질을 알수 있도록 노력하길 바라는게 제 의견입니다.


    그리고 제목과 내용 타겟이 미묘하게 다른 부분이 있어서 해당 내용에 대해서 정확히 짚고 싶은 부분은 있습니다.

    개발자라면 반드시라고 쓰셨으나 내용으로 보건데 타겟은 깊은 생각없이 우선 질문올리고 복붙으로 해결하려는 쥬니어 개발자에 대한 글로 보여집니다.

    저는 해당 내용의 타겟으로 얘기하고 있지 않습니다.

    숙련된 개발자라고 할지라도 임시책으로 문제를 해결하는 케이스는 있다고 생각합니다.

    물론 기본적으로는 공식 자료라던가 근본적인 해결을 찾으려 노력합니다.


    전 노력을 해도 API나 오류도 못 읽는 경우라면 애초에 개발을 직업으로 해선 안된다고 생각합니다.

     - 이 글 역시 대부분 동감합니다만 애초에 개발을 직업으로 하면 안된다는건 좀 과격한 의견이라고 보여지네요.

    0
  • fender
    17k
    2020-01-30 14:57:53 작성 2020-01-30 15:00:46 수정됨

    인절미후후 // 

    개발자라면 반드시라고 쓰셨으나 내용으로 보건데 타겟은 깊은 생각없이 우선 질문올리고 복붙으로 해결하려는 쥬니어 개발자에 대한 글로 보여집니다. 저는 해당 내용의 타겟으로 얘기하고 있지 않습니다.숙련된 개발자라고 할지라도 임시책으로 문제를 해결하는 케이스는 있다고 생각합니다.

    제가 본문에서 개발자가 알아야하는 기본기로 제시한 건 딱 두 가지, 즉 API 문서를 보는 방법을 익힐 것, 그리고 예외를 보는 방법을 배울 것입니다.

    한 번 그런 기본기를 배웠다면 숙련된 개발자가 된 다음에 갑자기 API나 스택 트레이스 읽는 법을 잊어 버리진 않을 겁니다.

    제 생각에는 제가 제목과 본문의 내용이 일치하게 쓰지 않았다기 보단, 인절미후후님이 제 글을 대략 "개발자라면 절대로 임시조치를 하면 안된다"는 정도로 잘못 읽으신 게 아닌가 싶습니다.

    애초에 개발을 직업으로 하면 안된다는건 좀 과격한 의견이라고 보여지네요.

    사람마다 능력이 다 다르니 남들보다 어떤 분야의 배움이 늦는 건 비난 받을일은 아닙니다. 하지만 비난 여부와 별개로 각 분야별로 정상적으로 업무를 처리하기 위한 최소한의 소양이라는 건 있습니다.

    극단적인 예를들어, 곱셈을 못하는 사람이 전문 개발자가 되려 한다면 어떻게 생각하시나요?

    물론, API를 보는 것이 곱셈하는 것보다야 어렵겠지만, 익숙해지는데 시간이 오래걸린다는 차원이 아니라 아예 노력해도 못하겠다, 또는 그 정도 노력할 의지가 없다는 수준이면 전문 개발자가 되는데 부적격한 건 마찬가지라고 봅니다.

    사실 전 예컨대 스택트레이스 읽는 법도 어려워서 못배우겠다는 사람이라면, 그와 비교도 안되게 복잡한 의존성주입 프레임워크 기반으로 실제 기업에서 쓰는 다계층 웹서비스를 구축하겠다는 것 자체가 말이 안되는 일이라고 봅니다.

    0
  • jslovers
    2k
    2020-01-30 15:02:29

    fender님 말씀에 백번 공감합니다.

    몇 분만 검색해도 방법을 충분히 찾을 수 있고 약간의 시간만 들이면 배울 수 있는 디버깅을 뒤로하고 모래사장에 바늘 찾기 하는 분들은 신입, 경력을 가리지 않고 마주치는 것 같습니다.

    0
  • 인절미후후
    480
    2020-01-30 15:21:18

    @fender


    여러가지 부가 설명 감사합니다 상황을 이해하는데 도움이 많이 되었습니다.

    서로의 백그라운드가 다른 관계로 용어에 대한 정의부터 많이 다른 상황에서 이야기가 전개된듯합니다.

    0
  • 곰개발자
    2020-01-30 15:36:10


    3
  • 코코리니이
    22
    2020-01-30 15:51:54

    감사합니다 선배님 글과 댓글 읽으며 정신차립니다

    0
  • 보보8
    839
    2020-01-30 16:32:35

    API 문서 읽는법 강의 있으면 수강하고 싶습니다..

    그런 강의는 없더라구요..ㅠㅠ


    수십개의 API 도큐먼트를 보았지만 제 경우는 예제가 없으면 실제 코드에 적용하는게 쉽지 않더라구요.

    한두개 예제 있으면 응용하는건 하겠는데, 예제가 아예 없는 경우에 이거보고 어떻게 쓰라는거지..?


    라는 생각 밖에 안들더라구요.


    API 문서 이해를 잘하는 특별한 방법이 있을까요?

    1
  • fender
    17k
    2020-01-30 16:55:28 작성 2020-01-30 17:01:58 수정됨

    보보8 // 우선 개발 과정에서 소소하게 습관을 들이는 것이 중요합니다. 예컨대 IDE에서 바로 선택 항목에 대한 API 문서가 나오게 하거나 브라우저에 언제라도 접근할 수 있게 책갈피 해놓는 것으로 시작하는 걸 추천드립니다.

    그렇게 해놓고 개발하는 중에 접하는 메서드의 사용법이 궁금하다거나 콘솔에 예외 클래스를 포함하는 오류가 발생했을 때 바로 문서를 찾아서 읽어보는 연습을 하면 좋습니다.

    그리고 API 문서 마다 나름의 체계가 있습니다. 예를들어 자바 API라면, 계층도, 상속 받은 메서드나 필드, 자체적으로 정의한 메서드 등이 구분되어 표시되어 있는데, 나중에는 그런 체계도 한 눈에 들어오게 됩니다.

    처음에는 예컨대 단순히 'NullPointerException'의 의미는 무엇인가? 같은 단순한 내용을 찾게 되지만, 나중에는 객체지향이나 디자인 패턴 지식과 결합하면 한 눈에 어떤 라이브러리나 프레임워크의 기능을 파악하는데 유용하게 활용하는 기술이 될 수 있습니다.

    예를들어 처음 보는 프레임워크가 있다면, 우선 홈페이지에서 간단한 설명을 읽어보고 API 문서를 열어서 어떤 패키지가 있는지 살펴보고, 패키지 안에 어떤 인터페이스가 있는지, 또 핵심 유형의 계층 구조가 어떤지 살펴보면 매우 효율적으로 해당 프레임워크의 전반적 구조를 이해할 수 있습니다.

    그래서 처음에는 단지 API를 자주 찾아보는 걸로 시작해서 IDE에서 '유형 계층 보기(Show Type Hierarchy)' 같은 기능과 병행해서 습관을 들이면 나중에는 새로운 기술을 배울 때도 크게 도움이 됩니다.

    그 단계까지 가지 않더라도 API를 보는 습관은 여러모로 도움이 됩니다. 예를들어 자바에서 흔히 사용하는 리스트의 모든 항목을 다른 리스트로 옮겨야 할 때, 누군가는 아무 생각없이 for 문으로 복사를 할테고, 다른 누군가는 무조건 구글에 이런 저런 검색어를 입력하면서 답을 찾아 해메겠지만, API를 보는 습관이 있다면 바로 ArrayList의 메서드 목록을 죽 훑다가 쉽게 addAll을 찾을 것입니다.

    물론 IDE의 자동 완성을 활용해도 좋습니다. 단지 이 경우는 자동 완성 뿐 아니라 앞서 언급한 계층 보기 등 다른 기능도 활용해서 API 문서가 제공하는 모든 정보를 IDE 내에서 확인할 수 있도록 연습할 필요는 있습니다.

    2
  • ISA
    1k
    2020-01-30 21:08:18
    속성으로 하려다보면 이런 경우가 많긴 한거 같아요 개발의 기본 소양 괜찮은 글이네요. 그런분들은 그냥 이해를 전혀 못한 상태로 어떻게든 길을 부여잡고 걷고 있는거죠
    0
  • Rawfish
    789
    2020-01-30 22:13:33

    stackoverflow에 질문 올릴때는 그래서 1st/2nd attempt를 해본 코드도 같이 올리라고들 하죠

    0
  • 보보8
    839
    2020-01-31 06:06:04

    fender // 계층보기 감사합니다~^^

    역시나 문서는 자주보는 수 밖에 없는거네요.ㅠㅠ

    0
  • smik
    230
    2020-01-31 22:05:24

    저도 API 문서는 잘 정리된 인기 개발자 블로그의 글보다 더 가치 있다고 생각합니다. 실제 개발자가 만든 문서니깐 말이죠

    그래서 API 문서 보려고 노력하는데요... 그놈의 언어의 장벽이... 

    왠만한 건 다 영어로 되어 있어서.. 그렇다고 구글 번역기 돌려도 번역이 정확하진 않구요...

    그래서 단어 하나하나 찾아서 스스로 번역 할 때도 있는데, 그러다보면 시간이 어느새 새벽이 되고 아침이 되고... 그러더군요... 그런 문제 때문에 독해 위주로 영어를 공부하고 있습니다만... 홈페이지 구현 문제도 있기 때문에 집중이 잘 안 되더군요 ㅠㅠ

    0
  • ramisiel
    2k
    2020-02-01 16:06:18

    본문 내용처럼 API을 읽는것도 중요하고

    제발 무슨무슨 언어 써봤다, 공부했다 이런것보단

    어떻게 개발했냐가 중요한거 같은데...

    대부분의 사람들이 언어주의로 빠진듯 해서 아쉽네요;

    0
  • kim
    284
    2020-02-02 12:49:56

    저의 경우 저런 것들을 딱히 배워서 아는 내용은 아닌데, 저걸 모르면, 걍 학교/학원에서 시킨거만 공부하고 혼자 무엇을 만들어볼 생각을 안한거라 볼 수 밖에 없겠네요.

    취미는 취미, 직업은 직업이라고 하는 분들이 많은데, 개발만큼은 취미로 좀 끄적여 본 분들이 해봐야 한다고 생각함.. 집에가서 컴퓨터 안켠다는걸 어찌 그리 자랑스럽게 얘기하는 사람들이 많은지 이해 불가..

    0
  • 어쩌다개발자
    1k
    2020-02-03 13:55:55

    맞는말씀이네요.

    신입때 그렇게 했는데 반성하게 됩니다.ㅠㅜ

    0
  • 박스무스
    120
    2020-02-04 21:49:18 작성 2020-02-04 21:50:23 수정됨

    그냥 답글이 안 달리면 서칭을 하게 되고 자연스래 api문서를 보게 되고 그렇게 기본 소양이 갖춰진다고 생각합니당


    프로그래밍으로 본인이 원하는 거, 생각하는 거를 직접 만들어보면 자연스레 갖춰지는 건데 학교, 학원에서 코딩마저 주입식으로 배우니까 그렇게 되는게 아닌가 싶어욤


    실제로 그런 질문의 대다수는 실무자가 아니라 학생분들이기도 하구욤


    기본기가 부족하다! 물어보는 최소한의 자세가 안돼있다! 마인드는 자칫하면 텃세가 될 수 있으니 경계하는게...

    2
  • untap
    2
    2020-02-05 14:48:48

    작성자분의 생각가진 분들이 많아졌음 좋겠습니다.

    0
  • fastutle
    40
    2020-02-05 14:51:59

    동의합니다..

    0
  • smasma
    2k
    2020-02-07 19:14:48

    fender님 경치가 12k 시넹...ㄷㄷ

    0
  • 참서빈
    3k
    2020-02-09 08:25:29
    질문의 수준이 
    지식과 경험의 수준이라 생각합니다.

    해결방법을 찾아보려 노력하고
    여러가지를 시도해 보고
    고민해 본 후 예의 있게
    질문하는 분들은

    아마 앞으로도 크게 성장하지 않을까 싶습니다.

    1
  • 간고등어코치
    393
    2020-02-10 14:10:00

    RTFM 리턴하기전에 잘 좀 읽으십시오 휴먼

    불만있습니까? 당신의 뉴런, 퍼셉트론으로 대체되었다

    0
  • 피신왕통키
    468
    2020-02-12 00:08:51

    fender님의 글을 읽고 이제 어느정도나마 에러코드를 읽고 왜 문제가 나는지 생각하는 연습을 해서 점점 성장하는 느낌을

    받는데 api 문서는 어떻게 읽어야하고 어떻게 응용해야할지 감이 잘 오지 않습니다.어렵네요

    0
  • fender
    17k
    2020-02-12 07:14:13

    프로그래밍 언어를 자연어에 비교하면, API 문서는 쉽게 말해서 사전 같은 것입니다. 외국어를 공부하다 모르는 단어가 있으면 사전을 찾아서 정확한 정의와 예문을 찾듯, 코딩을 하다 모르는 클래스나 메서드를 접하면 API에서 해당 클래스의 계층 구조나 메서드의 용도나 동작, 그리고 예시를 찾아보시면 됩니다.

    2
  •  
    2k
    2020-02-12 16:50:09

    제가 하는짓거리

    에러가 난다 -> 대충 읽고 에러를 복사한다 (대부분 맨 마지막줄) -> 모르겠으면 구글링 한다 -> 끗


    언어랑 외모는 달라도 휴먼은 다 같은 휴먼이라 물어보는 에러도 다 같더라고요

    스텍오버플로 가면 앵간하면 해결!!

    단, 노하우 같은건 없더라고요


    0
  • 참서빈
    3k
    2020-02-13 18:52:06

    예전에 제가 올렸던 글입니다(^_^)

    https://okky.kr/article/224329?note=224329

    1
  • 고플밍
    10
    2020-02-14 15:14:45

    스스로를 되돌아 보게 됩니다. 감사합니다.

    0
  • 1122cc
    262
    2020-02-14 16:36:41

    API 문서를 읽는 능력과 습관.. 정말 기본이면서도

    띵하면서 기본기를 잊고 있었던 느낌입니다.

    제 자신을 되돌아보게 해주는 글이 였어요 감사합니다.


    P.S

    혹시 API 문서들이 거의 영어일텐데.. 영어를 못하면

    번역기를 써서 읽고 유추해야되는지 아니면 영어를 공부해서라도 한땀한땀 API에 나와있는

    클래스나 기능들을 해석해야하나요?

    그럴려면 내장함수 하나 해석하는데도 시간이 꽤 걸리지 않을까 싶어서요.. 끝이 안보인달까

    0
  • fender
    17k
    2020-02-14 17:31:23

    1122cc // 개인적으로는 영어 독해 공부는 추천 드리고 싶습니다. 아무래도 기술 관련해서는 우리말로 번역되는 정보는 양도 적고 최신 내용이 아닐 가능성이 높습니다.

    영어 공부 관련해서 전에 쓴 글이 있으니 관심있으시면 참조하시기 바랍니다:


    제 생각에는 꾸준히 영어 공부를 하면서, 당장 필요할 때는 구글 번역기의 힘을 빌어서 API 보는 습관을 키우시면 괜찮을 듯 합니다.

    0
  • 파스하나
    14
    2020-02-19 19:18:06

    감사합니다 막 신입 개발자로 취업해서 늘 오류를 복사하면서 찾는 제 자신을 보며, 무엇인가 겉도는 느낌이었습니다!

    개발에 기본을 알려주셔서 감사합니다

    0
  • 오내가젊
    932
    2020-02-28 14:09:18

    동감합니다

    0
  • 하마
    6k
    2020-02-29 00:44:25
    좋아요 , 추천 꾹 ^^
    0
  • supermaya
    2
    2020-03-01 08:43:46

    몇개의 프로젝트를 자체 개발하면서 운영중입니다.
    원하지는 않았지만 개발에 참여해야하는 상황이네요.
    영어와 중국어로된 API도 봐야하는 상황입니다.
    봐야하는 양이 많다보니 회피책은 기본이 된것 같습니다.

    1
  • 노빠꾸
    24
    2020-03-05 19:21:24
    맞습니다..
    0
  • 리디
    268
    2020-03-11 10:42:49

    이 글을 공지사항으로!!!

    0
  • 빵빵빵호빵
    168
    2020-03-16 19:51:05

    아아..! 눈부셔! 먹구름 사이로 정체 모를 빛이 나고 있어!!

    0
  • 학도고
    12
    2020-03-22 08:30:52

    진짜 오류트레이스는 왠만하게 이상한거 아니면 다 뭐가 잘못됬는지 보이는데....추천하고 갑니다ㅎㅎ

    0
  • coffee&paste
    28
    2020-03-26 17:58:49

    fender님 글에 매우 동의하면서 인절미님 댓글에 공감도 됩니다 ㅎㅎ
    프로그래머도 근본은 과학자라고 생각하는데 과학적인 사고를 꺼리는 분들을 많이 
    접합니다. 개발자 세계에서도 반지성주의는 팽배한 것 같아요.

    1
  • 두더징
    2
    2020-03-28 14:42:41

    뜨끔합니다. 좋은 글 감사합니다. api 와 오류 메시지를 읽는 습관 메모메모

    0
  • lilith
    33
    2020-04-11 22:51:57

    삽질이 전문이다보니 api 문서를 열씨미 삽질해도 기미가 안보이다가 한가닥이 딱 맞아 떨어질때는 희열을 느끼죵 ~

    좋은 글보고 가용~

    0
  • 스칼라가좋아
    324
    2020-04-16 19:59:03

    이건 개발 환경마다 약간 다를 수 있다고 생각되네요. Nodejs 환경에서 프로그래밍 하면 자바와 달리 정말 기상천외한 오류가 많습니다. 환경 설정이 약간만 달라도 오류가 생기고 대부분의 모듈이 오픈 소스인지라 자바와 달리 documentation이 부족한 경우가 많습니다. 그럼 해당 git repository에 가서 직접 개발자에게 물어야 하고 조금 특이한 프레임워크나 툴을 쓰면 새로운 버그를 발견하는 경우도... 심지어 module 자체는 괜찮은데 모듈의 의존성에 해당하는 모듈이 업데이트 되면서 새로 문제가 생기던가.

    예전에 Hyper라는 오픈소스 프로젝트 참여할 때 yarn으로 윈도우에서 환경 설치하면 env 값에 문제가 생겨 고생하다가 그 당시는 잘 몰라 익숙한 리눅스로 개발하자는 생각에 WSL에 electron 구동하려다 계속 이상이 생겨 나중에야 WSL이 지원을 못하는 걸 WSL 쪽 github issue에서 발견한게 생각나네요. 당시 너무 시달려서 윈도우 포맷하고 우분투를 설치해서 돌렸던 기억이 아직도 생생하네요... 생겨 API document가 상대적으로 빈약한 js의 경우 구글링이 빠른 경우가 많습니다. 이렇게 시달리다 보면 왜 Docker를 극찬하는지 알게 됩니다.

    결론은 API document와 그 빈약한 문서를 이해하기 위해 구글링도 함께 하게 되더군요....

    -1
  • fender
    17k
    2020-04-16 21:18:28 작성 2020-04-16 21:19:37 수정됨

    스칼라가좋아 // 기본적인 API 문서 해석도 못하고 스택트레이스 보고 디버그도 못하는 수준의 개발자가 정말 깃헙 이슈 찾아보고 영어로 개발자한테 직접 물어보면서 문제 해결하는 게 가능할 거라고 보시나요?

    API를 볼 줄 안다고 구글링 안해도 된다는 주장을 한 적은 없습니다. API를 볼 줄 아는 건 제목에 적었듯 개발자의 기본 소양이고, 그런 개발자도 말씀하신 사례와 같이 구글링에 의존할 때가 있는 것이지, 구글링이 API 보는 능력이나 스택트레이스 읽는 법 같은 기본기를 대체하진 않는다는 뜻입니다.


    0
  • 스칼라가좋아
    324
    2020-04-16 22:14:27

    fender // 저도 님의 의견에 동의합니다. 다만, 앞에 말했듯이 개발환경마다 정보를 습득하고 문제를 해결하는 패턴이 달라진다 정도의 의견입니다. (고로 님에 의견해 반대한 적도 없습니다. 주장이 동의나 반대 둘 중 하나일 필요는 없으니까요) 예를 들어, DB2 같은 경우 구글링을 해도 나오는게 없어서 강제로 IBM Reference만 보게 되는 경우도 있고 그런 특이 경우를 언급한 것입니다. 저는 이 사이트에 온지 얼마 되지 않았고 프로그래밍도 국내에서 배운 것이 아니라 OKKY나 한국의 개발 문화가 어떤지는 잘 모릅니다. 말씀하신 내용을 들으면 한국의 진입장벽은 상당히 낮은 것처럼 들립니다. 캐나다에서는 적어도 프로그래머가 되기 위해선 관련 학과를 나와서 학과 상위권은 물론이고 포트폴리오부터 기술면접까지 어느 정도 뒷받침이 되어야만 합니다. 프로트 엔드 엔지니어를 뽑을 때도 화이트 보드 테스트를 합니다. 대기업이 아니라 일반적인 기업을 가기 위해서 철저한 소양을 요구해서 쥬니어 포지션을 구하는게 쉽지가 않습니다. 그럼에도 기본기가 안되서 낙오되는 사람이 많은데. 님이 말한 수준의 사람들이 개발자를 할 수 있다는게 상당히 이상하게 들립니다. 그런 분들은 학교 프로젝트 경험상 같이 일하는 동료들에게 피해를 주는 수준인데 어떻게 개발자로 일할 수 있는지 궁금하네요.

    0
  • fender
    17k
    2020-04-17 00:23:10

    스칼라가좋아 // 아무래도 어떤 주장을 하는 글타래에 "상황에 따라 다를 수 있다"는 전제로 반례를 든다면 기본적으로 본문에 반대하는 입장으로 해석할 수 밖에 없지 않을까요?

    님이 말한 수준의 사람들이 개발자를 할 수 있다는게 상당히 이상하게 들립니다. 그런 분들은 학교 프로젝트 경험상 같이 일하는 동료들에게 피해를 주는 수준인데 어떻게 개발자로 일할 수 있는지 궁금하네요.

    말씀하신대로 매우 이상한 상황이 맞고, 본문의 글은 바로 그런 이상하게 왜곡된 환경에서 국비교육 학원 등을 통해 기초는 다 건너 뛰고 딱 정해진 틀에 맞춰서 페이지 찍어내는데 최적화된 훈련을 받을 수 밖에 없는 그런 분들을 위해 쓴 글입니다.

    본문의 도입부에서 그 부분을 이야기했는데, 아마도 국내 환경에 익숙하지 않으시다보니 내용을 최소한의 기본은 갖춘 개발자들이 검색으로 문제를 푸는지 문서로 푸는지 문제에 대한 일반론으로 읽으신 것 같습니다.

    -1
  • dma
    829
    2020-04-17 08:35:55 작성 2020-04-17 08:41:35 수정됨
    그나마 메시지가 명확하지않아서 삽질하면 이해하는데.. 제 옆사람 무슨문젠지 정확히 알려주는 메시지보고도 물어봐요.. 살려주세요.. ㅠㅠ 알고보니 전공자출신이 아니던데 개발자양산에 비전공자 많은것도 기여한거같아요.. 제 경험으로는 비전공자들이 새로운거 잘 못하시더군요..

    그리고 저 개인적으로는 api보고 개발하는걸로 공부를 했는데 현실에 오니까 구글링하는게 빨라서.. 다 까묵었어요.. 슬프다..
    -1
  • 함박스텍
    95
    2020-05-09 18:35:54

    우리나라 개발자들 보면, 도중에 하기 싫으니까 무슨 방법으로든 어떻게든 대충 떼울라고만 하고 그런 사람들 참 많습니다.

    왜 이런 증상이 일어났는지 오류 로그를 자세히 확인하면서 오류를 조치하는것이 어느 회사를 가거나 무슨 개발을 하든 가장 기본인데 왜 이걸 계속 안하려고만 합니까!

    그런식으로 하면 실력 절대로 향상 못됩니다.

    계속 그런식으로만 할거면 한시라도 빨리 개발자 포기하고 다른 직업 구해서 먹고 살수 있도록 노력하는게 정답입니다.

    -1
  • dhjhi
    147
    2020-05-15 13:56:38

    잔소리충 포함 인간 기본 안 된것들이 더 짜증남.

    -2
  • 대원
    50
    2020-05-21 09:25:37

    조금 주제에서 벗어날수도 있겠지만.. 

    저는 검색'도' 해야 한다고 생각해요. 물론 API문서와 스스로 찾아가는 노력도 중요하긴 하지만

    다른사람이 생각하는 의견도 들어보는게 장기적으로 봤을 때 도움이 되는 경우가 많거든요

    검색을 하다보면 엉뚱한 주제의 글을 찾아보게 되기도 하지만 그 행위 자체가 찾고자 하는

    결과에 도움이 되지 않을 수 있으나 다양한 시도와 방법을 간접경험 할 수 있다고 생각해요

    우리가 커뮤니티에 와서 글들을 읽어 보고 있는 것 처럼요~^^

    0
  • 정훈
    24
    2020-05-26 15:22:51

    카피 & 붙여넣기가 답

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.