본문 바로가기

개인공부

(7)
콜드부팅이란? 저번 주 회의에서 '콜드부팅을 했을땐 정상 작동 하였습니다" 라는 말이 있었습니다 어렴풋이 부팅이라는 단어는 알고있지만 콜드부팅은 뭔지?! 알아봤습니다 먼저 부팅이란 전원 버트을 눌렀을 때 POST(Power On Self Test) 검사 단계를 거친 이후 OS를 렘으로 읽어 들여 컴퓨터가 우리 명령을 받아들일 준비하는 과정을 얘기합니다 POST검사단계는 바이오스에서 컴퓨터에 어떤 부품들이 있는지 잘 작동하는지 확인하는 단계라고합니다 콜드부팅은 렘이 차가운 상태(아무 정보도 없게 만든 상태)에서 부팅 하는 것으로 POST 단계를 거칩니다 예를들어 본체의 재부팅 버튼을 누르는 경우를 말합니다 웜부팅은 렘이 따듯한 상태에서 부팅 하는 것으로 ctrl+alt+del 이후 재시작을 하는 경우를 말합니다 (제가 ..
C#은 리버스가 된다?? 지난 주 회의에서 C#은 리버스가 된다는 얘기가 있었습니다. 리버스 엔지니어링이란 만들어진 프로그렘을 디컴파일링하는 것으로, 최초에 만들어진 코드와 약간 다를지는 몰라도 어떻게 작동하는지 알 수 있고 소스를 뽑고, 코드를 복사할 수 있는 행위입니다. 특히나 .Net Framework로 제작된 C#프로그렘은 구글링하면 간단히 찾을 수 있는 디컴파일러로도 쉽게 노출 됩니다. 그러기에 C#으로 프로그렘을 만들 경우 보안상 중요한 부분은 Native C++ / C++/CLI Wrapper Class 단계를 거쳐 코드를 지킨다고 합니다. C++또한 디컴파일링이 가능하지만 어셈블리어로 밖에 되지 않는다고합니다.
연결 리스트 연결 리스트에 공부하기에 앞서 선형 자료 구조에 대해 알 필요가 있습니다 1. 어레이 2. 연결 리스트 3. 스택 4. 큐 ...기타등등 스택과 큐는 나중에 알아보기로 하고 일단 어레이와 연결 리스트에 대해 봅시다 어레이는 기차입니다 앞이 0번이고 기차의 길이 N은 항상 정해져있습니다 JAVA에서 우리는 int[] arr = new int[n]; 이렇게 쉽게 이용이 가능합니다 arr 기차의 길이는 n이고 각 객실에는 int 가 탑승한다는 뜻입니다 K번 객실에 탄 사람? arr[K-1] 로 바로 호출이 가능합니다 어레이는 하나의 객실이 기본이라면 연결 리스트는 '노드'가 기본이 됩니다 노드는 하나의 데이터와 하나의 포인터로 이루어져있습니다 데이터에는 데이터가 담기고 포인터는 이 노드 다음에 어떤 노드가 오..
[C++, 과제] 사칙연산과 소괄호로 이루어진 문자열의 자연스러운 계산 8월 9일 오늘 과제가 주어졌다 사칙연산을 해주는 프로그렘을 만들되 -문자열 길이에 제한이 없고 -괄호와 곱셈 나눗셈의 우선순위를 생각하여 컴퓨터가 아닌 직접 답을 구하는 것 처럼 계산하는 프로그렘이다 힌트는 제귀함수 가장 먼저 생각건 string -> string으로 괄호를 제거해주는 재귀함수를 만들자 였다 입력값이 정상적이라고 가정할때 문자열을 받아 괄호가 없다면, 정상적인 계산을 하고 괄호가 있다면, 괄호 내부의 부분 문자열을 다시 재귀함수로 보내는 방식을 생각했다. 1. 괄호 분리 재귀 함수 2. 계산 함수 두개를 통해 문제를 해결하려했다 결론부터 말하면 +와 -까지의 연산은 잘 완성된 것 같다 하지만 *와 /의 우선순위를 높게 잡는 방법은 전혀 생각이 나지 않아 일단 여기까지 완성한 코드를 올리..
[C++] 매개변수의 기본값 가끔 인터넷에 올라온 코드를 보면 어? 이 함수, 저번에 매개변수 2개 넣었던거 같은데 이번엔 1개네? 아~ 바로 전에 배웠던 오버로딩인가?? 그럴 수도 있고 아닐 수도 있다 아닌 경우는 '매개변수의 기본값'을 설정해서 그렇다 다음과 같은 함수가 매개변수 기본값 설정이 완료된 함수이다 int MyFunc(int num1=1, int num2=2) return num1+ num2; } 딱 보면 알겠지만 생략된다면, 기본값을 넣은 셈 친다 추가로 MyFunc(5) 이렇게 실행한다면 첫번째 매개변수에 5를 넣고, 두번째 매개변수는 기본값으로 계산을 하게 된다 즉 MyFunc(), MyFunc(1), MyFunc(1,2)는 똑같은 흐름으로 계산되고, 똑같은 값을 반환한다 매개변수의 디폴트 값은 함수의 선언 부분..
[C++] 함수 오버로딩 C에서는 동일한 이름의 함수가 여러번 정의되는 것을 허용하지 않는다. (자바는 함수 오버로딩이 있음) int MyFunc(int num) num++; return num; } int MyFunc(int a, int b) { return a+b; } 두 함수는 이름이 같지만 매개 변수의 수가 다르다 MyFunc(1) 과 MyFunc(2,3) 충분히 컴퓨터가 구분할 수 있을 것 같고, 구분 한다. int MyFunc(int num) num++; return num; } void MyFunc(int num) std::cout
[C++] 입출력 방식 파이썬, C, C#, JAVA에서는 print문을 이용해 출력했습니다 하지만 C++에서는 특이한 방법을 이용합니다 #include int main(void) { int num = 20; std::cout