학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
이 수업과는 무관하지만 고민이 있어 글 써봅니다.
개발 중에 오류가 발생하면 막막하고 어떻게 분석을 해야할지 모르겠습니다.
간단한 개발을 하더라도 오류가 발생하면 두려움이 먼저 옵니다...
어떤식으로 오류에 대해 익숙해져야하고 반응해야하나요? ㅠㅠ
이런 오류에 관해 분석을 하거나 읽는 방법을 배울 수 있는 책이라도 있나요?
안녕하세요. 이승호님
우선 일반적인 답을 드리자면 다음과 같습니다.
1. 오류에 대한 기본 태도 변화
두려움을 줄이는 방법: 오류가 발생하면 "내가 잘못했다"라고 생각하기보다는 "이 코드를 더 이해하고 개선할 기회"라고 생각해보세요.
오류는 문제 해결 퍼즐: 오류는 개발 과정에서 풀어야 할 작은 퍼즐입니다. 문제 해결 능력을 키워나간다고 생각하면 두려움 대신 호기심을 가질 수 있습니다.
2. 오류 메시지 읽는 습관 기르기
오류 메시지를 꼼꼼히 읽기: 컴파일 오류, 런타임 오류, 예외(stack trace) 등이 발생하면 메시지 전체를 끝까지 읽는 습관을 드립니다. 오류의 원인을 대략적으로라도 짚을 수 있는 키워드나 파일명, 라인 번호, 함수명이 포함되어 있는지 확인합니다.
에러 메시지를 검색: 메시지 중 핵심 키워드나 에러 코드, 예외 타입을 구글링하거나 Stack Overflow에 검색해보세요. 비슷한 사례를 통해 접근 방법을 익힐 수 있습니다.
디버거 사용하기: IDE나 에디터의 디버깅 기능을 활용해 변수 상태, 함수 호출 스택, 로직 흐름을 추적합니다. 단순히 콘솔 로그를 찍는 것보다 디버거를 통해 변수를 스텝별로 관찰하는 습관을 들이면 어느 시점에 문제가 생기는지 파악하기 쉬워집니다.
3. 작은 단위로 문제 쪼개기
작은 단위 테스트 작성: 기능을 구현할 때, 전체 기능 완성 전 단계에서 작은 유닛 테스트를 통해 미리 오류를 만납니다. 이렇게 하면 오류의 범위가 좁아져서 분석이 쉬워집니다.
부분적으로 코드 실행/확인: 복잡한 로직이라면 부분 부분을 주석 처리하거나 임시로 return 값을 다르게 하여 어느 지점부터 잘못되었는지 파악합니다.
진짜 이야기
사실 오류에 대해서 자신감이 없는 진짜 이유는 기본기와 경험 부족이라는 2가지에서 나옵니다.
기본기: 기본기가 부족하면 왜 이런 문제가 발생했는지 원인 자체를 이해하기 어렵습니다. 특히 추상화가 많이 이루어진 스프링, JPA 같은 프레임워크들을 기본이 없이 단순히 기능만 배워서 사용하는 경우 왜 이런 문제가 발생했는지 이해하기 어렵습니다.
경험 부족: 해당 기술에 대한 어느정도의 경험이 필요합니다. 사실 많은 개발자들이 거쳐가는 오류들이 있습니다. 이때 해당 오류의 원인을 파악하고 다음에는 비슷한 문제가 발생해도 빠르게 해결하게 됩니다. 이때 중요한 점은 오류가 발생했을 때 파고 들어서 해결하는 습관을 들이는 것입니다. 그렇게 파고 들어가면 그게 진짜 자신의 실력이 되는 것이지요.
감사합니다.
답글