프로그래밍의 반은 디버깅

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • 디버깅 하는 법을 버리고 다른 방법으로 품질을 올리겠다고 하는 건 말도 안되는 헛소리 입니다.
    #디버깅

ความคิดเห็น • 63

  • @yeh35_dev
    @yeh35_dev ปีที่แล้ว +1

    5년만에 다시 봤는데 시간을 돌이켜보면 진짜 중요한 것은 제품을 만드는 것이 맞는거 같습니다😂

  • @jeongsupark1485
    @jeongsupark1485 8 ปีที่แล้ว

    항상 말씀 해주시는거
    가슴에 새기고 있습니다
    감사합니다~

  • @멜론맛케익
    @멜론맛케익 2 ปีที่แล้ว +4

    옛날에 교수님말씀이 에이스 프로그래머는 버그없는 코드를 만드는사람이 아니라 코드에서 버그를 고치는 사람이라 그러셧습니다.
    라즈베리파이로 컴퓨터비전을 활용한 임베디드 소프트웨어를 만든적이 있는데(카메라로 라인보고 로봇 욺직이는 대회였죠) 라즈베리파이안에서 짜니까 제대로 디버깅하는법도 모르겠고 컴퓨터비전도 처음해봐서 쓰레기값이 이상한대서 들어와서 잡아내느라 삽질을 엄청했죠. 그때 한 1주일 지금생각해보면 논리적으로 아주 간단한걸로 삽질하고 하드웨어랑 직접 소통하고 그랬더니 그뒤로 디버깅능력이 많이 좋아지더라고요

  • @sangrokpark5589
    @sangrokpark5589 3 ปีที่แล้ว +2

    테스트케이스 디버깅 하다가 빡쳐서 들어왔는데 많은 힘을 얻고 갑니다.

  • @괴발자-r9l
    @괴발자-r9l 8 ปีที่แล้ว

    늘상 포프님 영상은 재밌어요 ㅋㅋㅋ 좋은 말씀 감사합니다.

  • @calmtot
    @calmtot 8 ปีที่แล้ว +2

    !!! 포프님. 오늘은 정말 충격적인 영상이네요! 저는 주로 비주얼스튜디오를 사용해서 개발을 해왔는데요. F9와 F10을 누르고 Call Stack 과 Watch 창을 보며 코딩하는 걸 당연하다고 생각했었어요. 그런데 요즘 TDD, SOLID원칙, 디자인패턴 같은 개념들을 읽어 보면서 IDE를 이용해 디버깅한다는 사실이 제가 실력이 부족해서 그런 것 같다는 생각을 하게 되었어요. 그래서 될 수 있으면 단위테스트 만으로 디버깅을 해보려고 노력하고 있었거든요. 그런데 전보다 개발시간이 더 늦어지더라고요. '아직 익숙하지 않아서 그렇겠지' 생각했었어요. 그런데... 결국 정작 중요한 '제품'에 대해서는 소홀했던 것 같습니다. 가장 중요한 걸 잊고 있었네요. 오늘도 영상 보고 중요한 사실 깨닫고 갑니다!! 감사합니다 :)

  • @yjc6160
    @yjc6160 8 ปีที่แล้ว

    이번영상은 완전 마음에 드네요..ㅎ
    특히 초기에 문제 안잡아서.. 나중에 어디서 발생할지 몰라서 전체 프로젝트 작업을 다시 했던적이 있네요.. 삽질 해보니 필요성 엄청 느껴지더군요...

  • @jaeseunglee5836
    @jaeseunglee5836 8 ปีที่แล้ว

    포프님 동영상 보고 있으면 눈이 감기는걸까요...?! 목소리가 너무 좋으셔서 그러는건지 ㅎㅎ

  • @cnbmonster1042
    @cnbmonster1042 7 ปีที่แล้ว

    I finally understood why my teacher emphasized memories and debugging. Thanks for explanation.

  • @klistychoi
    @klistychoi 8 ปีที่แล้ว +3

    제가 제일 못하는 것 입니다. ㅠㅠ 그래서 말씀하신 것처럼 이것저것 보는데, 주변에선 그게 맞다고 하니 그 방향이 말고 다른 방향을 생각을 못했는데, 말씀하신 안좋은 것을 제가 다 하고 있네요. 다음에 한번 초보자를 위한 디버깅을 한번 더 해주실 수 있나요? 회사 신입사원에게 조언 하듯이요.

    • @rina-pu3fw
      @rina-pu3fw ปีที่แล้ว

      이제는 잘하시나요

  • @foranie
    @foranie 8 ปีที่แล้ว +1

    내이야기가 왜 여기에 ㅋㅋㅋㅋ

  • @이동현-e3w1h
    @이동현-e3w1h 8 ปีที่แล้ว +1

    안녕하세요 6년차 엔지니어입니다. (만29.8세에요^^)
    음.... 하셨던 말중에서
    디버그모드로 실행을 해서 break point를 찍고 값을 실시간으로 확인하는 방법이 더 좋다라 하신듯해서요...
    전 마이컴들을 다루어서 C언어를 주로 합니다.
    전 보통 디버그 코드를 넣어 중요한 값들이 보여주는 것을 택해서 값을 확인 하고 있습니다.
    아래 함수 같이 putstr_DEBUG를 통해 값을 확인하고 코드가 마무리되면
    putstr_DEBUG함수를 고쳐 호출하더라도 표시되는 값이 안나오게 고치고 있습니다.
    물론 마이컴도 break point를 찍고 real time으로 모든변수값을 확인하는 게 있습니다.
    하지만 전 아래 방식을 취하는 데.....
    지금부터라도 디버그모드로 break point를 찍고 연습해야할까요?
    void read_FLASH(lint addr)
    {
    uint i;
    byte data;
    char buf[30];
    putstr_DEBUG("read_FLASH
    ");
    SPI_WREN();
    SET_MEMORY;
    send_SPI(0x0B);
    send_SPI(((addr & 0xFFFFFF) >> 16));
    send_SPI(((addr & 0xFFFF) >> 8));
    send_SPI(addr & 0xFF);
    send_SPI(0x00);
    for(i=0 ; i

    • @triump3411
      @triump3411 5 ปีที่แล้ว

      브레이크 걸어서 메모리 확인하는 것도 방법이고, 로그 찍어서 흐름을 파악하는 것도 방법이라고 생각합니다. 특히나, 비동기 통신이나 멀티쓰레드 돌리는 경우에 로그를 찍는게 유용한데요. 저는 개인적으로, 저만의 로그 패턴 코드를 넣고, 편집기로 그 로그만 필터링해서 봅니다. 그러면, 내부동작의 흐름을 한눈에 볼 수 있어요. 거기서 범위를 좁혀 나가는 거죠. 또한 정상적인 동작의 경우 규칙적인 로그 패턴이 나타나는데 에러가 발생하는 경우 그 패턴이 달라지거든요. 그런게 한눈에 들어오죠. 그럼, 그 문제되는 지점에 브레이크를 걸고 메모리를 확인해 보는거죠.
      결론은, 상황에 따라 자신이 편한 방법으로 디버깅을 하면 된다고 생각합니다.

  • @윤민창-o2z
    @윤민창-o2z 4 ปีที่แล้ว

    어느 사이트에 갔는데 운영팀이 개발계에서 로그보며 테스트 하더군요 ㅎ 일단 새로운 사이트에 들어가면 무조건 디버깅 환경을 만듭니다. 디버깅 환경 만드는데 8할이더군요 근데 그 환경을 만드는게 너무 진빠집니다.ㅠ.ㅠ

  • @junkman9010
    @junkman9010 8 ปีที่แล้ว +2

    제가 아는 교수님이 이런 말씀을 하셨죠.
    어떤걸 만들때 100%로 나타낸다면, 이론(로직)이 49%, 코딩(개발)이 1%, 디버깅이 50%를 차지한다.
    그거랑 비슷한 느낌의 영상이네요.

  • @kcd71461
    @kcd71461 8 ปีที่แล้ว

    VisualStudio♡

  • @rbalsdldiify
    @rbalsdldiify 8 ปีที่แล้ว

    동영상과는 관계가 없지만... UI프로그래머가 정확히 어떤일을 하는건가요? UI를 직접 디자인해서 프로그래밍으로써 적용시키는 건지 아님 단순히 디자이너와 협력해서 프로그래밍만 하는건지. 그리고 처우는 어떻게 되나요?( 페이라던가..)

  • @이건-x1p
    @이건-x1p 8 ปีที่แล้ว

    람다식 자주 안쓰긴 했는데 람다식의 단점으로 무엇이있나요?

  • @dojinkim1125
    @dojinkim1125 8 ปีที่แล้ว +12

    처음부터 끝까지 다 공감가는 영상입니다. 디버깅도 못하는 개발자가 개발자가 맞는지... 그리고 디버깅 못하는 개발자가 만든 프로그램이 품질이 나올지도 의문입니다. 물론 엄청난 시간과 노력이 들어가면 어느정도 나오기야 하겠지만요.

  • @hbj5649
    @hbj5649 8 ปีที่แล้ว +13

    결론: 내가 개발한 소스는 내가 세상에서 제일 잘 알아야 한다.

  • @pino0079
    @pino0079 6 หลายเดือนก่อน

    3:20

  • @wilsonthevolleyball6432
    @wilsonthevolleyball6432 2 ปีที่แล้ว +1

    맨땅에 헤딩하기, 삽질하기, 처음 들었을 때 성의없는 답변같이 들릴 수도 있는데, 정답입니다.... 이제서야 참 뜻을 깨닭고 부랴부랴 맨땅에 헤딩중;;

    • @포프티비
      @포프티비  2 ปีที่แล้ว +1

      저도 아직 헤딩하는 걸요. 뭘 :)

  • @cjsfl1000
    @cjsfl1000 8 ปีที่แล้ว +3

    감사합니다! 늦게 프로그래밍에 재미을 붙인 경제학과 학생입니다. 마침 c, c++을 비쥬얼로 배우면서 브레이크포인트 걸고 디버깅 돌려서 f10눌러보면서 메모리값 변하는걸 재미있게 관찰하고 있습니다. 훌륭한 프로그래머가 되려면 많은 시간이 걸리겠지만... 크게 될 싹수가 보이는 행동을 하고있었다고 생각하니 용기가 생겼습니다! 늘 감사합니다!

  • @no-Name..
    @no-Name.. 8 ปีที่แล้ว +1

    디버깅... 디버깅... 자바스크립트로만 코드를 짜서
    항시 console.log로 값들을 확인해봤는데
    코드량이 많이지고 복잡도가 늘어가면 늘어갈 수록
    이런걸로는 뭔가 되질 않더군요.. 더군다나
    정신력 소모도 길고
    디버깅을 훈련을 많이 해야겠습니다.
    특히 디버깅을 하면 자동으로 어떤 인자 값들이나
    몇번째 for문이 돌아서 배열에 어떤게 담기는지를 다 보여주는건...
    정말이지... 사랑스럽지 않을수가 없더군요 ㅠㅠ....
    (이걸 왜.. 이제사 알았을까요.. 아니.. 그보단 알았지만
    평소에 짠 코드가 길지 않아서 할 필요성을 못느꼈다는게 더 맞겠네요.ㅠㅠ);
    그런데 포프님이 이런얘길 하시니까 엄청나게 명확해지고 뚜렸해졌습니다.
    이미 삽질의 즐거움은 몸에 배어있지요.
    그러나 그 삽을 어떻게 퍼야하는지에 대한 수련은 아직도 많이 멀게도 느껴집니다.
    그리고 삽질하시니까 생각이 나는데요
    요즘은 코딩하면서
    쌍팔년도 애니에이션에 나올법한
    정의감에 불타오르는 주인공이
    아주 힘있게 맨트치는 느낌으로
    "정의의 삽질!"
    "삽질은 승리한다!"
    이런 멘트가.. 자꾸 머리속에 맴돌면서
    자꾸 저를 괴롭히네요.. ㅠㅠㅋㅋㅋ
    "정의의 삽질", "삽질은 승리한다!", "돌풍 삽질군단!"
    항상 좋은얘기 고맙게 듣고 있습니다.
    ㅎㅎ 고맙습니다.~

  • @zealaster
    @zealaster 8 ปีที่แล้ว +2

    제가 존경하는 어떤분이 그러셨어요. 장인은 도구를 탓하지 않는다. 그러던지 말던지 난 개발자이고 생산성 향상을 위해 최고의 도구에 항상 욕심을 낸다. 그래야 자기 시간을 가질 수 있다.

  • @funsoftware1905
    @funsoftware1905 6 ปีที่แล้ว +1

    디버깅을 하면서 개발을하면 프로그램의 시작 main 부터 소멸할때까지 코드 동작 과정과 내부자료구조, 함수호출 스택, 등등,, 프로그램내부 전부를 볼수있는데...개발시 정말 필요한것같은데 그냥 빌드하고 실행만 으로 개발 하시는 분들이 좀 있더군요ㅠㅠ

  • @yoojinn_
    @yoojinn_ 8 หลายเดือนก่อน

    디버깅은 추리 문제를 푸는 것 같아요. 특히 남의 코드를 고치고 디버깅할 때, 그 사람이 했던 생각을 되짚고 이해하게 되는데 그게 참 재미있더라구요.

  • @cometkim-i7p
    @cometkim-i7p 8 ปีที่แล้ว +1

    제가 배울때 돌이켜서 생각해보면
    디버깅이 진입장벽이 조금 높아서 그런 것도 같네요.
    디버깅 자체를 회피하기 보단 하고는 싶었는데 환경설정에 삽질을 너무해서... 지금도 VS가 너무 좋습니다

  • @automation_develop
    @automation_develop 2 ปีที่แล้ว

    TDD 저격때 살짝 공감하고 넘어갔었는데요.
    많은 이야기들에서 정말 중요한 맥을 잘 짚어주시네요. 격한 공감을 하고 갑니다. ㅎ

  • @발언계산기
    @발언계산기 3 ปีที่แล้ว

    이런 이론주도의 문제점은 주니어 인터미디엇이 시니어로 올라가기 전까지 진짜 개고생을 한다는 것.
    그럴듯한 말로 다 "내 말대로하면 문제없다"라고 가르쳐서 진짜 문제없는 줄 알고 실무에서 남탓하기 급급해짐.
    근데 막상 따져보면 이론에서 말한 "내 말대로"를 제대로 하는 것도 아니야.
    왜냐면 안목이 없어서 시야가 좁고, 개념을 미시적으로 이해하거든.
    이론상에선 거시적 개념 때문에 보통 개념 상충을 어떻게 해결할지 다루는 게 부분이 많은데.
    인터미디엇이 이해한 개념은 미시적이라 실무영역으로 보면 빈공간이 너무 많아.
    옆에서 그 빈 공간 다 채워주면 "역시 내생각이 맞았네" 라고 생각하지만 사실은 혼자 프로젝트해보면 진행조차 안됨.
    그들에게 이론이 없다면 하나하나 설명해주면 되는데 그들에게 이론이 있어서 설명해줘도 이론꺼내서 반박.
    그니까 그 이론과 너의 실력이 일치하지 않는다니까... 너가 그 이론급 실력이면 이런 고생 안했어ㅠㅠㅠ

  • @khs239
    @khs239 5 ปีที่แล้ว +1

    2년전의 동영상을 이제보고 공감을하네요 ㅎㅎ 2016년부터 이 일을 시작했지만, 디버깅의 중요성을 최근에서야 느꼈습니다. 이 동영상을 보면서 제가 답답했던부분이 머릿속에 정립이되네요 !
    감사합니다

  • @멜론맛케익
    @멜론맛케익 2 ปีที่แล้ว

    오늘 저를 프로그래밍의 세계로 끌어들인 형님과 오랜만에 만나서 술한잔했습니다.(전안먹음)
    한번은 리눅스에 대한 이야기를 하다가 저는 gdb를 잘 못쓰겠어서 리눅스가 호감이 안가고 vs있는 윈도우를 선호한다 했더니 자기는 어짜피 눈으로 보면 되는데 디버거를 왜쓰냐고 하더라고요. (그 형님은 아이큐 160의 천재형? 이심)
    머신러닝 석사하시고 계신데 자기는 응용소프트웨어를 만드는 sw학과라 근본론인 cs학과를 다니는 너와 다르다 그런얘기도 하셨습니다.(코딩테스트 알고리즘 대회 검수일도 하심)
    그냥 한때 제가 동경해서 따라간 형님이 이제는 저와 다른길을 걷게 되셔서 감상에 젖어 길거리 돌아다니다 적어봅니다.

    • @포프티비
      @포프티비  2 ปีที่แล้ว +1

      소프트웨어에서 가장 많은 부분을 차지하는 게 데이터 처리인데... 그 데이터를 눈으로 보기 위해 필요한게 디버거죠..
      눈으로 보면 된다는 마음은 UI 디자이너의 마음입니다....

  • @republickorea1307
    @republickorea1307 2 ปีที่แล้ว

    디자인패턴을 잘 알지는 못하지만 디버깅만 5년넘게 하여 성장해왔습니다. 제가 볼때 느끼는 점은 포프님 말씀처럼 제품을 만드는데 그 패턴들이 인수인계는 물론 넘쳐나는 버그들로 똥만 싸고 도망가는 경우가 많았습니다. 전 아직도 그런사람들을 쓰레기만도 못하다고 취급합니다. 이 한국사회 쓰레기같은 비지니스를 생각하면 사장들은 그런 코드가 대단한줄 알고 당장은 그런 사람을 쓰고 돈주니 서브로 대충 짜고 도망가고 사장은 다된다고 구라치고 파니 팔리긴 하더군요. 막상 그런 디버깅은 사회초년생들이 하거나 이직하는 사람들이 대부분 고치죠. 문제생기면 그때서야 머리아픈척 하는 사장이나 그런 쓰레기 코드를 양산하며 돈만 챙기는 외주 프로그래머나 답이 없내요. 디버깅만 5년하니 짜증나서 한탄글 써봅니다. 감사합니다..

    • @포프티비
      @포프티비  2 ปีที่แล้ว

      으어어 고생 많으셨군요. 그래도 더 밝은 미래가 있을 겁니다. 화이팅 ✋

  • @raymondyoo5461
    @raymondyoo5461 2 ปีที่แล้ว +1

    좋군요. 디버깅의 중요성

  • @김형수-q8h1c
    @김형수-q8h1c 8 ปีที่แล้ว

    새로운 기술은 회사에서 바로 쓰지 않는다고 해서 궁금한데-
    새로운 기술은 회사에서 잘 안쓰는 편인데 대부분 어떤 사람들이 많이 쓰고 대중화 시키나요?
    또 새로운 기술은 선두주자가 없어서 구글링으로도 정보를 얻기 힘든데 보통 사람들은 어떻게 익히나요?
    주먹구구식으로 관찰하고 출력 해보고 이건 이렇구나 예측하고 그렇나요?

  • @secondseason1690
    @secondseason1690 4 ปีที่แล้ว

    뭔가 제 얘기를 하는거 같아서 뿌듯하네요. 학생때부터 친구들이 어려워하는 디버깅 도와주다보니 자연스럽게 디버깅 실력이 많이 올라가서 실무볼 때도 많이 도움되더라고요.

  • @yejunjang1058
    @yejunjang1058 3 ปีที่แล้ว

    최근 플러터로 엄청 삽질했습니다.
    버전따라 차이가 있어서.. ㅠㅜ

  • @nene36578
    @nene36578 7 ปีที่แล้ว

    오늘 프로그래밍을 하면서 느낀건데.. 디버깅을 많이 하다보면 프로그램을 제손발처럼 쓸 수있게 하는느낌?? 설명이 애매한데 뭐,,그런느낌을 받았습니다 ㅎㅎ

  • @PureBlueWater
    @PureBlueWater 8 ปีที่แล้ว +1

    디버깅 진짜 오래걸리죠. 코드가 복잡해 져서...

  • @김지은-j4g
    @김지은-j4g 7 ปีที่แล้ว

    저도 알고리즘 공부하는데 디버깅 하기싫어도 할수밖에 없는데 확실히 코딩실력 늘어요 디버깅을 하면

  • @앙포프띠
    @앙포프띠 8 ปีที่แล้ว

    항상느끼지만 뭔가 정점을찍으신분의 경험담을 듣는기분이라 상당히 신비로움을 느낌..

  • @jsy3729
    @jsy3729 4 ปีที่แล้ว

    영상 하나하나가 다 내용이 주옥같네요. 항상 감사히 보고 배우고 있습니다.

  • @mistaque
    @mistaque 5 ปีที่แล้ว

    디버깅 IDE의 갑은 역시 visual studio ㅎㅎ

  • @user-dh5ct1nh5x
    @user-dh5ct1nh5x 7 ปีที่แล้ว

    어후..난 컴에 컴자도 모르는데 이분 왜케좋지 ㅋㅋㅋ뭔말인지도 모르는데 계속듣고있어 ㅋㅋ

  • @reversalspring
    @reversalspring 8 ปีที่แล้ว

    4등! 초보개발자인데 윈도우 리눅스커널을 c로 짠 이유는 빨라서 일까요?

    • @포프티비
      @포프티비  2 ปีที่แล้ว

      그것도 있고.. 그 당시에는 C가 가장 쌔삥한 좋은 언어기도 했어요...

  • @BonexGoo
    @BonexGoo 8 ปีที่แล้ว

    완전 진리네요..!

  • @니얼굴창문된다구독안
    @니얼굴창문된다구독안 7 ปีที่แล้ว

    창.문.조.아

  • @세모네모-s3h
    @세모네모-s3h 6 ปีที่แล้ว

    티뻐낑

  • @괴랜드정정용의제로투
    @괴랜드정정용의제로투 8 ปีที่แล้ว

    전 중학교땐까지는 게임개발자가 껌일줄알았더니.. c언어는 그냥 취미로 해야겠네요

  • @박형주-f5g
    @박형주-f5g 8 ปีที่แล้ว +1

    이래서 수학 잘해야 하는 거여 젠장. 말씀 잘들었습니다.

    • @phillipyoon4608
      @phillipyoon4608 8 ปีที่แล้ว +1

      Winter Rose 어디서 수학이 언급되었길래 수학을 언급하시는거죠? ㅜ

    • @포프티비
      @포프티비  2 ปีที่แล้ว

      수학의 가설 세우고 증명해 나가는 과정이 효율적인 디버깅 방법과 매우 비슷하거든요.

  • @phillipyoon4608
    @phillipyoon4608 8 ปีที่แล้ว

    아, 디버깅 중요성에 대한 영상이었군아ㅋㅋ 디버깅하는법인줄 알았네요

    • @김지은-j4g
      @김지은-j4g 7 ปีที่แล้ว

      그런데 6개월정도 영상 안올리시더라고요^^

  • @orthogonality6047
    @orthogonality6047 6 ปีที่แล้ว

    비버깅 않하는 법. 없다
    하지만 디버깅을 줄이는 법은 있다
    뭐냐면 처음부터 신중하게 짠다
    그리고 코드 그 자체가 되라
    (포프님이 해석해주실거야)