나는매일가운데

디버깅 용어(?) 및 인텔리제이에서 활용법 본문

for JAVA

디버깅 용어(?) 및 인텔리제이에서 활용법

전로찡 2023. 9. 18. 22:22
반응형

1. Debugging...?

- 컴퓨터 프로그램 개발 단계 중 시스템의 논리적인 오류나 버그를 찾아내 그 원인을 밝혀내고 수정하는 작업 과정을 의미한다.

- 혹은 실제 데이터, 코드를 변경하지 않고 임의 값을 디버깅 중간에 넣어서 확인하는 과정을 말한다.

  => 두 번째의 경우 코드를 변경하지 않더라도 값을 임의로 변경할 수 있기 때문에 활용방안이 높다 (유지 보수성 증가...??)

 

2. Break point...?

- 개발에서 프로그램을 의도적으로 잠시 혹은 완전히 멈추게 하는 지점, 디버깅 목적으로 넣는 포인트를 의미함.

 

3. Bug...?

- 잘못되거나 예기치 않은 문제를 발생시키는 결함 혹은 문제 (예를 들어 내가 짠 코드...ㅎㅎ)

 

4. 주의사항

- 현재 라인으로 이동했을 때, 실행된 상태가 아니다. 즉, 현재 라인에서 다음 라인으로 이동한 상태가 되어야 이전 라인이 실행된 것이며, 변수를 확인할 수 없다 (선언된 상태가 아니기 때문).

 

- 일반적으로 스프링 내부에서 제공하는 라이브러리나 API는 확인하지 않고, 개발자 본인이 작성한 코드를 확인하는 용도이다.

다만, 내부 함수 등 추상화가 너무 잘되어있기 때문에 때에 따라서 내부도 디버깅하는 경우도 있다.

(그에 맞춰 활용할 수 있는 방법을 다시 확인하는 용도...?? 현재까지는 이렇게 이해)

 

- SYSOUT으로 다 찍어보는 것보다 훨씬 효율적임 (가시적으로 정확하게 보려면 이게 더 괜찮을 수 도 있지만, 짜피 SYSOUT은 배포 이후 다 주석 처리 혹은 지워야하기 때문에 불편... 로그만 쌓을 거면, log4j로 대체할 수 있지 않을까...??)

 

(실행 사진은 주말에 다시 코드 짜보면서 할래요...지금은 너무 졸립니다...)

 

5. IntelliJ에서 단축키

- F6 : 현재 브레이크 지점을 실행하고 다음 브레이크 포인트로 이동함

- F7 : 브레이크 지점의 함수 내부로 이동

- F8 : 현재 실행 지점에서 다음 줄로 이동하여 실행함

 

6. 느낀점...

- 이 전까지 개발을 공부하면서 디버깅에 대해 생각해 본적이 거의 없었다. 사실 이전에도 프로젝트를 진행하면서 값을 확인하기 위해 SYSOUT으로 다 찍어보고 배포 전 지우거나 주석처리 해서 불편했었는데 오늘 디버깅은 물론 활용방안의 중요성을 확인했다.

- 단순히 가독성이 좋은 코드, 유지 보수가 쉬운 코드만을 생각만 했는데, 디버깅이야 말로 이를 제일 뒷받침 해주는 방안이아닌가 싶다.

- 개발자라면 디버깅이라는 스킬을 꼭 익혀야겠다.

- 현재는 자유자재로 다루기는 힘들지만, 적극적으로 활용해서 익숙해지고자 한다. 

 

반응형