WiFi로 연결하는 프린터가 인식이 안된다면 아래와 같은 문제를 점검해보면 된다. (1) 프린터와 PC가 같은 라우터에 연결되어 있는가?(2) 드라이버가 손상되거나 변조되었는가?(3) 프린터 펌웨어가 손상되거나 변조?(4) 사용자 권한 문제 이 중에서 특수한 조건 하에 있게 되는 문제로 특기하고 싶은 것은 (1)이다. 특수한 조건이란 이러하다. 모종의 이유로 라우터를 두대를 연결해서 쓰는 경우가 있다. 요즘은 모뎀과 라우터가 한 기기로 …
윈도우를 쓰는 PC와 macOS를 쓰는 맥 데스크탑 사이에 소스코드를 옮기려면 일단 여러 방법이 존재합니다. (1) USB 메모리에 복사해서 옮기기 (2) 외장 SSD에 복사해서 옮기기 (3) Github에 등록해서 git clone으로 옮기기 이 중에서 제일 긱키한 방법은 물론 (3)인데 소스코드가 공개될 것 같아 안쓰구요. (2)는 NTFS로 보통 포맷해서 쓰지만 macOS에서는 비용지불해야 NTFS에 쓰기가 가능한지라 읽기에도 문제가 있을 …
프로그램이 실행되면 메인 메모리에서 코드 세그먼트, 데이터 세그먼트, 스택, 빈 공간, 힙 메모리로 로드된다. 함수를 실행하면 스택에서 작동이 이루어진다. 스택은 LIFO(Last In First Out) 구조로 나중에 집어넣어진 것이 제일 먼저 빼내어지는 구조다. 이 구조가 필요한 이유는 함수 실행시 호출 순서에 따라 먼저 실행된 함수가 대기상태에 있고 나중에 실행된 함수가 먼저 실행되어야 하는 C 언어의 절차형 …
함수 호출시 매개변수로 원본을 넘겨주는 방식을 참조 호출( call by reference)라고 하고 사본을 넘겨주는 방식을 값 호출(call by value)라고 한다. C에서는 함수 호출시 매개변수로 변수를 넘기면, 그 변수 자체가 아니라 그 변수의 값이 복사되어 피호출 함수로 전달된다. 그래서 피호출 함수가 작동을 마치면, 호출을 실행한 함수의 변수는 값이 그대로 유지된다. 이 이유는 스택 프레임의 작동 방식 …
변수의 영역 또는 변수 스코프는 변수가 영향을 주는 유효 범위를 말한다. 지역 변수의 예를 들면 그 변수를 선언한 블록 내에서만 영향을 준다. 위 코드에서 add() 함수는 main() 함수의 c에 접근할 수 없다. 이는 스택 프레임의 구조상 c에 접근하지 못하기 떄문이다. 아래와 같은 경우에도 마찬가지다. main()과 add()에서 쓰이는 a와 b라는 변수는 서로 다른 유효 영역에서 실행되므로 …
C 언어의 변수 처리에 대해 알려면 컴퓨터의 메모리에서 있는 일들을 알면 좋다. 현대적인 디지털 컴퓨터는 폰 노이만 구조를 따른다. 폰 노이만 구조에서 핵심적인 부분은 CPU와 메모리다. CPU는 컴퓨터의 두뇌 역할을 하고 메모리는 해마와 같은 기억에 관련된 역할을 한다. 모든 데이터는 CPU가 처리에 관여하고 메모리에 불러져와서 그에 맞는 기능을 수행한다. 프로그램은 실행전에는 보조기억장치에 파일로 존재하게 된다. …
교재에서 챕터 2에서 살펴본 내용 중에 키 유도 함수(key derivation function)에 대해 심화하고 있습니다. 키 유도 함수는 고정된 길이의 키에서 정보를 보호하기 위한 다른 키를 유도해내는 원리입니다. TPM 2.0에서는 암호화와 복호화를 수행하기 위해 키들이 서로 일대일로 대응되어야 할때 칩 내부의 부족한 공간을 극복하려고 키 유도 함수를 써서 하나의 키에서 다른 키를 다수 생성하게 합니다. 키 …
태블릿을 쓰다보면 배터리가 갑자기 쑥쑥 소모되기 시작합니다. 이 경우 구입하고 시간이 지나가면 배터리 사이클 문제라고 생각하는데요. 사이클 문제일 수도 있지만 특수한 경우 이런 것이 원인일 수도 있는 것 같습니다. 안드로이드는 오픈소스라 소스코드를 구해서 변경하는게 쉽습니다. 배터리 사용량을 측정하는 태블릿 내부 파일이 변조되어 누군가 태블릿에 심으면 물리적인 배터리는 아직 쓸만한데, 배터리 잔량 측정 미터가 부정확하게 되는 …