체크인 사이트에서 로그인을 할 때 42 인트라 아이디와 비밀번호를 사용한다. 제일 처음에는 접속하려는 아이디가 인트라에 등록된 아이디인지 판단해야 한다. 비밀번호가 일치해야 한다. 라는 요구사항을 만족하려면 1. 42 API에서 회원정보를 전부 받아와서 내 db에 저장을 해서 로그인 요청마다 db에서 find를 한다. 라고 생각을 했었다. 그래서 user 테이블을 따로 만들어 ID, PW 등을 저장하는 방식으로 그림을 그렸다. 하지만 그 후, 2. 비밀번호는 나한테 없는데 어떻게 확인을 하지 ...? 2번에서 막혀서 생각이 진전되지 않아 실제 체크인사이트에서 로그인이 실행되는 과정을 살펴보았다. 인트라에 접속하지 않았을 경우 체크인사이트에서 로그인 페이지로 넘어가고, 인트라에 접속이 되어 있는 경우 로그..
출처 C++의 멤버함수 중 클래스 안에서 직접 선언하지 않으면 컴파일러가 자동으로 선언해주는 함수들 : 기본형 생성자 / 복사생성자 / 복사대입연산자 /소멸자 Class Empty{}; //위와 아래는 서로 같다 Class Empty { public: Empty() {} // 생성자 Empty(const Empty& ) {} // 복사생성자 ~Empty() {} // 소멸자 Empty& operator=(const Empty&) {} // 복사대입연산자 } 생성자 Empty() {} 출처 멤버 변수의 초기화 메모리에 생성된 객체는 모든 멤버 변수를 초기화하기 전에는 사용할 수 없다. 특히 객체의 멤버 중 private 멤버에는 직접 접근할 수 없기 때문에 일반적인 초기화 방식으로 초기화가 불가능하다. 따..
참조자(Reference) 할당된 하나의 메모리 공간에 다른 이름을 붙이는 것, 자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름 (=별명) 포인터와의 차이 - 이미 선언되어 있는 변수에 대해서만 참조자 선언이 가능 = 참조자 선언과 동시에 누군가를 참조해야 한다. = NULL값이 없다 - 한번 지정한 객체를 변경할 수 없다. int main(void) { string str = "hello world"; string* ptr = &str; string& ref = str; // str = *ptr = ref } 위처럼 변수와 참조자를 동시에 선언하여 사용하는 상황보다는, 참조자가 함수에 활용되는 경우가 많다. 함수에 인수를 전달하는 3가지 방법 출처 값으로 전달 = 기본 자료형의 값을 전달할 때 ..
메모리의 구조 출처 프로그램이 실행되면 운영체제가 메모리(RAM)에 공간을 할당한다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간엔 4가지가 있다. 1. 코드(code) 영역 함수, 제어문, 상수 등이 저장된다. 우리가 작성한 소스코드가 들어가는 부분. 텍스트영역이라고도 부른다. 2. 데이터(data) 영역 전역변수와 static 변수가 저장된다. 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 3. 스택(stack) 영역 지역 변수와 매개변수가 저장된다. 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다. 메모리의 높은 주소에서 낮은 주소의 방향으로 할당된다. 컴파일 시에 크기가 결정된다. 4. 힙(heap) 영역 사용자가 직접 관리하는 영역. 사용자에 의해 메모..