CS/Terminology

1. 메모리 누수란? 개인적으로 필자가 cpp를 처음 공부할 때 이해하기 어려운 개념중에 하나였다. 메모리가 샌다는거 자체가 무슨말인데?? 메모리가 액체야? 그래서 새면 어떻게 되는건데??? 결론부터 말하면 메모리누수란 "프로그램이 동적으로 할당한 메모리를 반환하지 않고 계속해서 쌓이는 현상" 을 말한다. 직관적으로 설명하면 여러분들한테 "배낭" 이라는 메모리가 있다고 가정하자. (여러분은 집에서 출발한다!!!) 정적과 동적은 따로 글을 쓸 필요가 있지만 여기서 간단하게만 설명을 하면 정적으로 배낭에다 물건을 넣는 행위 == 여러분이 집에서 나올 때 필요할 것 같은거 미리 정해서 챙겨나오는 것 동적으로 배낭에다 물건을 넣는 행위 == 길을 걸으면서 그때 그때 상황에 맞춰 길에 있는거 주워다 배낭에다 넣..
1. 하드코딩이란? 하드코딩은 코드내에 직접 값을 고정적으로 지정하는 것을 말한다. 주로 값, 구문, 경로 3가지가 주요하다. 간단한 예시를 통해서 보면 #python print("hello world!") 여기서 우리는 "hello world!" 를 출력하도록 고정적으로 지정해줬다. 이렇게 되면 다른 메세지를 출력하고 싶으면 코드 자체를 수정해줘야한다. (ex) print("goodbye world!") 다른 예시로는 //JAVA int discount = 10; totalPrice = originalPrice - (originalPrice * (discount / 100)); 이런 코드가 있다고 가정하자 여기서 우리는 상품의 할인율을 10%로 강제하여 discount 라는 변수에 할당해주었다. 마찬가..
0. 찾아보게 된 계기 vscode 같은 에디터를 사용하다보면 아래 이미지와 같이 붉은 밑줄등으로 내 코드의 문법상 오류나 도달할 수 없는 값 등을 알려주는 경우가 있다. 컴파일러든 인터프리터든 난 코드를 실행시키거나 컴파일한 적이 없는데, 어떻게 가능한 건지 궁금했었다. 에디터는 어떤 원리로 내 코드를 감시하는 거지? 실시간으로 나 몰래 실행시키나? 찾아보니 린터(linter) 다른 말로는 린트(lint) 라는 도구가 내가 작성한 코드를 정해진 규칙에 맞게 검사해주고 있다는 것을 알았다. 사실 위 경우는 특별한 린터를 설치했다기보다는 vscode가 제공하는 기본 문법검사기가 찾아준 것이지만 위 검사기 또한 간단한 린터로 볼 수 있다고 한다. 1. 린터란? 다양한 정의들이 많지만 결국 요약하면 "코드를 ..
새벽녹차
'CS/Terminology' 카테고리의 글 목록