8-프로파일링한 데이터에 고급 시각화 도구 적용하기

JDBC 접속 문제 감지 쿼리를 보내려는 앱이 DB에 커넥션을 맺을 때부터 문제가 생길때 원인 파악을 프로파일러로 할 수 있다. 호출 그래프를 보고 앱의 코드 설계 파악 언젠가 코드를 정확히 분석하게 되겠지만, 호출 그래프를 활용하면 어떤 일이 일어나느지 미리 신속하게 개괄할 수 있다. 플레임 그래프를 그려 성능 문제 밝히기 호출 그래프가 객체와 메서드 호출 간의 관계에 집중한다면, 플레임 그래프는 잠재적인 레이턴시를 발견하는 데 가장 유용하다. NoSQL DB에서의 쿼리 분석

2025-05-26 · 1 min · 68 words

5-로그를 활용하여 앱 동작 감시하기

로그 메시지는 스트링일 뿐이라서 이론적으로는 어떤 문장이라도 남길 수 있지만, 깔끔하고 사용하고 편한 로그를 남기려면 앞으로 이 장에서 설명한 몇 가지 베스트 프랙티스를 따르는 것이 좋다. 개발자가 문제를 조사할 때는 무엇보다 로그를 가장 먼저 확인해야 한다. 로그를 보면 이상한 동작이 바로 보이기 때문에 어디서부터 조사를 시작해야 할지 정확하게 진단할 수 있기 때문이다. 로그가 모든 질문에 정답을 제공하는 것은 아니지만, 출발점을 찾아내는 일은 매우 중요하다. 로그를 이용하여 조사하기 로그는 과거 특정 기간의 앱 실행에 초점을 맞춘다....

2025-05-13 · 4 min · 715 words

4-원격 앱 디버깅

원격 디버깅이란? 앱을 개발할 때에는 적어도 세 가지 환경을 사용한다. 개발 환경(development environment, DEV): 앱을 배포할 환경과 유사한 환경이다. 개발자는 주로 로컬 시스템에서 개발을 진행하고 이 환경에서 새로운 기능과 수정 사항을 테스트한다. 사용자 인수 테스트 환경(user acceptance test, UAT): 개발 환경에서 테스트를 마친 앱은 사용자 인수 테스트 환경에 설치된다. 사용자는 새로운 구현체와 수정된 코드를 시험하고, 실체 데이터가 있는 프로덕션 환경에 앱을 배포하기 전에 정상 작동하는지 확인한다. 프로덕션 환경(production environment, PROD): 새로운 구현체가 예상대로 잘 작동되고 사용상 문제가 없다면 프로덕션 환경에 앱을 설치한다....

2025-05-13 · 2 min · 399 words

3-고급 디버깅 기법으로 문제의 근본 원인 찾기

조건부 브레이크포인트로 조사 시간 최소화 조건부 브레이크포인트: 특정한 조건을 만족할 경우에만 코드 라인에서 앱 실행을 중단시키는 방법이다. 조건부 브레이크포인트를 잘 활용하면 조사하려는 특정한 케이스를 찾아 헤매지 않고 소중한 시간을 절약할 수 있다. 단점: 조건부 브레이크포인트는 스코프에 있는 변숫값을 디버거가 지속적으로 가로채서 브레이크포인트 조건을 평가해야 하므로 실행 성능에 상당히 큰 영향을 미친다. 조건부 브레이크포인트의 또 다른 용도는 여러 가지 표현식 값 또는 특정 조건에 대한 스택 트레이스 등의 세부 정보를 기록하는 것이다....

2025-05-12 · 2 min · 331 words

2-디버깅 기법으로 앱 로직 이해하기

코드 분석만으로는 불충분한 경우 코드 읽는 법이 시 읽는 법과 다른 점 코드는 선형적이지 않다. 코드는 한 라인 한 라인 그냥 읽는 대상이 아니다. 시와 달리 코드는 항상 모든 사람에게 동일한 의미를 지닌다. 아무리 작은 코드 조각이라도 커맨드를 더 자세히 들여다봐야 할 때가 많다. 어떤 커맨드는 조사를 생략해서 전체 프로세스를 단순하게 가져갈지, 아니면 프로세스가 더 복잡해지더라도 자세히 살펴보고 개별 커맨드를 확실하게 이해할지 선택해야 한다. 디버거를 이용한 코드 조사 디버거를 사용하면 조사 프로세스가 간소화된다....

2025-04-28 · 2 min · 387 words

1-앱에서 모호한 부분 밝히기

디버깅은 원래 ‘문제를 찾고 해결하는 것’이라는 뜻이지만, 개발자는 코드의 작동 방식을 분석하는 다양한 목적으로 디버깅을 수행한다. 새로운 프레임워크 배우기 문제의 근본 원인 찾기 기본 로직을 이해하여 새로운 기능으로 확장하기 앱을 더 쉽게 이해하는 방법 코드 조사: 소프트웨어 기능의 특정한 동작을 분석하는 프로세스 ‘소프트웨어 에러를 찾아 고치는’ 디버깅이라는 용어를 혼용해서 사용하고 있다. 코드 조사를 하는 이유 어떤 문제를 찾아낸다. 어떤 소프트웨어의 기능이 어떻게 작동되는지 알아야 개선할 수 있다. 어떤 기술 또는 라이브러리를 학습한다....

2025-04-10 · 3 min · 535 words