스택(Stack) 영역과 힙(Heap) 영역은 프로그램에서 사용하는 데이터를 관리하기 위한 메모리 영역에 속하며 각 영역의 주요 차이점은 프로그램에서 메모리를 할당하는 방식과 사용하는 방식에 존재한다. 스택(Stack) 영역 스택 영역은 컴파일할 때 크기가 정해지며 함수를 호출할 때 메모리가 쌓이고 함수에 정의된 데이터를 담아두는 영역으로 후입선출(LIFO, Last In First Out)의 특성을 가진다. 함수를 호출할 때 스택 프레임이 생기고 그 안에 호출된 함수의 매개변수, 지역변수, 리턴 값 등을 담아 두며 함수가 종료되면 메모리도 해제된다. 스택 영역의 크기는 제한이 있기 때문에 함수를 너무 많이 반복하여 사용하게 되면 오버플로우가 발생하여 예기치 않은 동작이 발생할 수 있고 이를 최소화할 방..
파싱할 수 없는 구조화된 데이터가 있다는 보고를 받았다. 문제가 발생한 글은 수정한적이 없었는데.... 2020년 04월에 작성된 글에서 문제가 되었다는 내용이 2023년 03월 부터 보고되기 시작했다. 우선 보고된 오류의 유형은 "문자열의 이스케이프 시퀀스가 잘못됨" 이고 공식 문서에서는 "문자열 값에 잘못된 이스케이프 시퀀스가 사용되었습니다." 라는 추가 설명이 있다. 결론은 문서에 역슬래시를 사용했기 때문에 발생한 것이였다. 따라서 역슬래시를 대신할 문자를 넣어주어 해결하는데, ㄱ 한자에 존재하는 특수문자를 사용했고, 기본 폰트를 사용하면 원하는 모양이 나오지 않기 때문에 글꼴을 바꿔주어 문제의 원인을 제거했다. 제거 후 URL검사에서 실제 URL 테스트를 진행하여 문제가 없는 것을 확인했다. 이제..
오버라이드(Override)란 부모클래스를 상속받은 자식클래스가 부모클래스에 존재하는 메서드를 다시 정의하는 것을 뜻한다. 메서드를 다시 정의하는 것이기 때문에 메서드의 구조는 같아야한다. class BaseClass { public void Method() { } } class DerivedClass : BaseClass { public void Method() { } } 오버라이드하고 있는 위 코드는 재정의하고 있는 DerivedClass.Method에 경고가 발생한다. 위와 같은 경고가 발생하지 않도록 수정한느 방법은 두 가지가 있다. 하나는 override 키워드를 사용하는 방법이 있고 (override 키워드를 사용하기 위해서는 부모클래스의 메서드에 virtual나 abstract 키워드를 사용..