NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 학원 강사를 하면서 느낀점~ 왜 코딩 입문자들이 밤을 새는가?

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 약~ 10여년전 이야기인데요. Visual Studio Code가 나오기도 전에 웹, C#, Java등등... 국비 교육과 일반인 취업반등등... 강의를 했었을 때 이야기입니다. 물론, 회사를 다니면서 주말반도 강의를 나가곤 했었습니다. 그때 당시에 작성 해두었던 "빠르게 개발자가 되는 방법"이란 글이 사라졌는지 도저히 못찾겠네요-_-; 강좌 사이트를 만들어서 운영하다가 해킹으로 인해 개인 서버가 폭발해서 잠시 접었는데... 자료들이 많이 사라져서 아쉽습니다. 학원 강의를 하면서 수강생들의 개발 퍼포먼스가 왜 늦는지 그리고, 실무에 가서 왜 야근을 하는지에 대해 이야기 해보려고 합니다. 요즘에는 린터(Linter)들의 종류도 많고, 언어별로 다 제공하고 있기 때문에 아래 내용과 안맞는 것들도 있을겁니다. 그래도~ 가벼운 마음으로 한번 읽어 보시길 바랍니다^^

    ※ 린터란? 소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 코드를 찾아주는 도구를 말합니다.

    vTOVCA3.png

     

     

    웹 개발 환경이 궁금하다면 [ Node + Angular + Typescript 개발 환경 구성하기 ] 글을 참고하세요.

     

    1. 타이핑 실수

    요즘은 이럴일이 없어서 크게 문제가 되지는 않을거예요. 통합 개발 환경(IDE)에서 오타를 허용하지 않기 때문입니다. 하지만, 문자열인 경우에는 IDE에서도 오타를 체크할 수 없죠. 특정 아이디 또는 타입을 문자열로 받아서 처리하는 함수들은 문제를 찾기가 쉽지 않습니다. 그래서 아이디나 타입, 키워드와 같은 것들은 문자열이 아닌 enum을 사용해야 합니다. 그렇지 않다면~ 예제 코드를 복사해서 붙여넣기로 하세요. 코드량이 많으면 오타를 찾기가 정말 어려워집니다.

    <head>
    <meta charset="utf-8">
    </head>
    <script src='./javascript.js'></script>
    <button id='myButton'>Welcome!</button>
    window.onload = function() {
        let myButton = document.getElementById("myButon");
        myButton.addEventListener('click', () => { alert('클릭해주셔서 감사합니다!'); });
    }

     

    버튼을 클릭하면 "클릭해주셔서 감사합니다!" 메세지를 표시하는 간단한 프로그램입니다. 이 프로그램이 왜 동작하지 않는지 찾으셨나요? 몇줄 안돼기 때문에 금방 찾을 수 있을겁니다^^;

     

    2. 디버그 메세지 확인

    대부분의 문제는 디버깅하다가 발생되는 에러 메세지를 보고 해결이 가능합니다. 하지만, 이상하게도 에러 메세지를 확인하지도 않은채 질문을 하는데요. 왜 그런지 모르겠습니다-_-; 아마도, 옆에 잘 아는 사람이 있으니 쉽게 가고 싶은 마음이겠죠^^? 엔지엠 에디터도 디버깅을 지원합니다. 아래 글도 한번 읽어보면 도움이 될거 같아요~

    [ 빠르게 스크립트를 제작할 수 있도록 도와주는 디버깅 방법 ]

     

    위 코드를 실행하면 아래와 같은 에러가 발생합니다. 당연한 이야기겠지만, 위 코드에서 버튼 아이디에 오타가 있었습니다. 이미 찾으신 분들도 계시겠죠? 아마 못찾으신분들은 아래와 같은 에러를 만날겁니다.  에러 내용을 보면 "addEventListener" 속성을 읽을 수 없다고 합니다. 이유는 null이기 때문이죠. 이건, js 소스에서 "myButton" 객체를 가져오지 못해서 발생하는 문제입니다.

    oVkWtXf.png

     

     

    디버그 내용만 유심히 읽어봐도 대략적인 또는 완벽한 수정 사항을 알려주기도 합니다. 물론, 대부분은 대략적인 내용만 확인하고, 개발자가 의심되는 부분을 확인해야 하지만요. 코드가 복잡해질수록 디버깅에서 표시해주는 에러 메세지를 잘 봐야 합니다. 또한, Trace 내용을 보면 에러의 원류가 어디인지도 파악할 수 있습니다.

     

    3. 캐쉬 또는 저장 문제

    이 내용은 웹에만 국한된 이야기 입니다. 컴파일 언어(C, C#, Java)들은 코드를 작성하고 저장하지 않더라도 컴파일할 때 자동으로 저장 후 컴파일 되기 때문입니다. 이렇게 동작하는건 IDE가 서비스(?)로 해주는 부분이기에 개발자가 크게 신경쓰지 않아도 됩니다. 고전적인 방법을 사용한다면 cl 또는 csc, javac로 컴파일 할겁니다. 이 때에는 당연히 파일을 저장 후 커멘드 라인에서 실행해야 합니다. 아무튼, 웹 환경에서는 라이브 서버(Alt+L, O)를 이용하거나 Open in Application을 사용하게 됩니다.

    epUmdwJ.png

     

     

    오래전~ IE(인터넷 익스플로러)를 사용할 때는 브라우저 옵션에 페이지를 열때마다 캐시를 삭제하는 기능이 있었습니다. 지금은 대부분 크롬에서 작업하고 있어서 이와 동일한 기능이 있는지 찾는 분들도 많아졌는데요. 일반적으로 라이브 서버나 노드를 사용하면 자동으로 새로 고침이 되기 때문에 문제가 되지는 않습니다. 그러나~ 캐시가 남아 있어서 수정된 내용이 반영 안되는 경우도 종종 발생합니다. 보통은 콘트롤+F5를 누르면 캐시를 비우고 다시 열어줍니다. 또는 콘트롤+시프트+R을 눌러서 캐시를 비우고 하셔도 됩니다. 이런것도 귀찮다면~ 크롬 개발자 도구에서 브라우저의 캐시 사용을 disabled 시키세요.

    HavPojD.png

     

     

    4. 설명 없는 콘솔 활용

    이 내용은 저도 해당되는 이야기이기도 합니다-_-; 설명 및 주석 달기가 귀찮아서 콘솔도 값만 찍는 경우가 많은데요. 이런 경우에는 어디서 어떤 값이 문제가 되는지 알기가 어렵습니다. 물론, 한두개라면야 금방 찾을 수 있겠죠. 그러나 수십개의 콘솔 정보를 보다보면 이게 도대체 왜 이렇게 찍히는지 감이 안올때가 있습니다. 그래서, 콘솔을 찍을 때는 알 수 있는 어떤 키워드와 조합해서 출력할 수 있도록 해줘야 합니다. 프로그램을 개발하다보면 트레이스나 디버그 정보들도 찍어야 하는 일이 비일비재합니다. 특히나 서버 프로그래밍은 아주 중요합니다. 로그나 콘솔을 출력할 때는 항상 "장비 1번: 상태 값={0}"과 같이 작성하는게 좋습니다.

     

    5. 도움을 요청할 때는 상대방을 배려해서~

    학원 이야기이기도 하지만, 프로젝트 매니저를 하면서 개발자들이 자주하는 행동이기도 합니다. 일단, 심각한 표정으로 큰일이 발생했다고 말하며 도와달라고 합니다. 별거 아닌일인데도 말이죠. 대부분 프로젝트를 관리하다보면 큰일이라는건 버그로 인해 서버가 죽거나, 메모리가 늘거나 또는 보안을 위반하는 일들입니다. 배포 후 심각한 버그가 발견되서 롤백해야 하거나 재배포해야 하는 상황도 포함됩니다. 학생 또는 주니어 개발자분들은 사소한것도 큰일난것처럼 말할 때가 있습니다. 그러면 저도 짧은 순간이지만 이런 저런 최악의 상황들이 떠오르면서 긴장하게 되죠. 그러면, 말이 좋게 나가기 힘들게 됩니다-_-;

     

    도움을 요청하면서 준비가 안된 경우도 생각보다 많습니다. 여러가지 테스트를 해보고 어디어디까지 해봤는데 문제를 못찾겠다고 하면 괜찮습니다. 하지만, "에러 메세지가 나왔어요. 좀 봐주세요."라고 물어보는 개발자도 많습니다. 도와주러 가보면~ 에러 메세지에 답이 나와있는 경우가 대부분입니다. 권한 문제라던가... 네트워크 문제 또는 Git에서 소스를 잘못 내려 받았거나 참조 문제등등... 원인은 다양합니다. 결론은 문제가 되면 에러 메세지를 먼저 확인하고, 에러 내용을 구글에 붙여넣기하고 찾아보는 겁니다. 그러면 대부분은 해결될거에요.

     

    개발을 시작한지 20년이 넘었는데요. 예나 지금이나 처음 코딩을 접하는 분들은 항상 비슷합니다 ㅎㅎ; 개발 도구가 발전해도 위와 같은 상황이 반복되거든요. 왜 그럴까 곰곰히 생각해보면 한국인만의 급한 성격탓이 아닐까 생각되기도 합니다. 어쩌면, 책을 읽으면서 늘어나는 독해력이 점점 떨어져서 그런건가 싶기도 하죠. 저도 아이들을 키우는 부모 입장에서 스마트폰으로 정보를 습득하는 요즘 상황을 지켜보고 있노라면 답답한 부분들이 있습니다. 여러분들도 마음의 여유를 가지고 책을 많이 읽으세요^^; 독해력이 문제 해결 능력과도 밀접하게 관련되어 있어서 회사 생활하는데도 많은 도움이 됩니다. 그럼~ 다음에는 더 재미있는 주제로 찾아 뵙도록 하겠습니다~

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.