25.07.28)개인과제 트러블슈팅

허윤·2025년 7월 27일
post-thumbnail

NewtonSoft.Json을 사용하여 객체를 파싱하는 작업 도중 테이블이 제대로 출력되지 않는 이슈를 발견하였습니다.

위)역직렬화를 받을 객체
아래)직렬화된 원본 데이터(Json)

일단 정상파싱이 되지 않는 케이스는 크게 두가지를 염두하고 있었습니다.
1.데이터의 이름이 올바르지 않다.
2.객체 타입이 올바르지 않다.




원인파악 프로세스

    1. 중단점을 통해 Linq 쿼리문이 잘못되었는지 확인.
    • 확인하였으나 쿼리문의 문제 이전 역직렬화 과정에서 문제가 있음을 확인
    1. 역직렬화를 받아와야 할 객체가 비어있음을 확인
    • 엑셀데이터를 jsonData로 변환하였기에 Sheet라는 래핑 데이터가 상위에 있을것을 고려
    1. 역직렬화를 받아와야 할 객체를 DialogData에 DialogStruct 데이터를 배열형으로 선언하여 파싱받을 수 있도록 작업.
    • 하지만 또다시 변환되지 않아 dataTable에 문제가 있음을 확인
    1. 스프레드 시트로 작업을 하였는데 자동적으로 Sheet가 아닌 시트1라는 객체로 래핑되어있음을 최종 확인
    • sheet로 변경하며 최종 수정 하여 문제 해결


마무리)

  • 이번 트러블 슈팅에서 얻은 교훈은 3가지입니다.
    • 데이터의 구조를 잘 확인하는 습관을 가지자
    • 저렇게 래핑되어있다면 시트가 길어질때 where절로 처리하기엔 부적합하므로 더 적합한 방법을 찾아봐야 함을 인지
    • 코드,시트,데이터에서 반드시 오탈자 확인을 꼼꼼히 하자

이렇게 세가지로 마무리 지을 수 있겠습니다.

profile
C# 클라이언트 프로그래밍 지망

0개의 댓글