C++/ 생성자, 기본 생성자, 복사 생성자
·
C++/개인 공부
생성자생성하자마자 초기화를 해준다. 객체 생성시 자동으로 호출된다.디폴트 생성자class Date{ ~~~ ~~~}int main(void){ Date day;}Date의 생성자를 명시하지 않아도, 생성자를 클래스내에 정의하지 않아도, 기본 생성자가 호출된다. → 컴파일러가 자동으로 추가해줌생성자 오버로딩생성자로 인자를 다르게 해서, 생성시 초기화할때 어떤 생성자를 사용할 것인지 선택할 수 있다.Date day; //기본 생성자 호출Date day2 = Date(); //기본 생성자 호출Date day3(1, 11, 111); //사용자 정의 생성자 호출Date day4 = Date(2, 22, 222); //사용자 정의 생성자 호출Date day2(); //XXX 이렇게 하면 안됨.동적..
C++/참조자(레퍼런스)
·
C++/개인 공부
참조자(레퍼런스)C는 포인터만 사용할 수 있었지만, C++은 포인터뿐 아니라, 참조자(reference)방식도 제공한다.int a = 3;int& a_ref = a; //a_ref변수는 변수a의 참조자다.cout 포인터와 레퍼런스는 비슷해 보이지만, 몇가지 차이점이 있다.1. 레퍼런스는 선언과 동시에 초기화 해야한다.포인터는 선언만 먼저 해도됨2. 한번 별명이 지정되면 별명을 바꿀 수 없다.포인터는 가리키던 주소를 바꿀 수 있음3. 메모리상에 존재하지 않을 수 있다.포인터는 일종의 변수이기 때문에, 메모리상에 존재함int a;int& a_ref = a; //a_ref는 변수 a의 레퍼런스이다.이 경우에는, 컴파일러가 a_ref가 쓰이는 메모리공간을 모두 a가 사용하는 메모리 공간으로 대체한다.int x ..
API란 무엇인가요
·
Web
이번에 팀 프로젝트로 웹 서비스를 개발하면서, API에 대한 지식이 필요하다고 느껴 공부해본 바를 적고,실제 팀 프로젝트에서 어떻게 활용했는지 기록함API의 정의API는 Application Programming Interface의 줄임말로, 두 어플리케이션의 구성 요소가 서로 통신할 수 있게 하는 메커니즘.인터페이스는 두 어플리케이션 간의 서비스 계약이라고 보면됨.즉, 두 어플리케이션이 서로 통신하는 방법을 정의하고, API문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 있다.클라이언트와 서버API는 일반적으로 클라이언트와 서버 측면에서 설명됨.요청을 보내는 쪽을 Client, 응답을 보내는 쪽을 Server라고 한다.REST APIAPI의 4가지 작동 방식 중 하나이다.Repres..
3학년 1학기 후기
·
똥글
개강한지 엊그제 같은데, 벌써 종강, 그리고 거진 2주가 흘렀다.. 2학년 2학기 학점 4점대를 맞고, 자신감이 넘쳤는데ㅋ.ㅋ 이번 학기 학점은 처참하다. 그래도 좋아하는 과목, OS, Linux System Programming은 뭐 괜찮다. 방학 동안 할게 참 많은데 다 할 수 있을지 의문이다. 매 학기, 방학마다 할 것들을 적어놓고 벌써부터 무언가를 이룬듯 설레발치지만 결국 똑같다. 너무 게으르다 그래서 애초에 목표를 낮게 잡기로 정했다. 공학경진대회 준비, C++(코테준비), 시스템프로그래밍 복습 정도? (아마 자료구조 전부 구현해보기도 해야할 듯..) 이것도 많은가? 공학경진대회를 준비하며, 요즘 React JS를 공부중 인데(의도치 않게 front end를 맡게됨..) 어떻게 프로젝트를 구조화..
정적 링킹(Static Link), 동적 링킹(Dynamic Link), 그리고 컴파일
·
컴퓨터 공학(Computer Science)
컴파일 과정프로그래머가 코드를 작성하면 컴파일러는 .exe(실행파일)을 만들어 낸다.그 과정은 이렇다.코드 작성 : 프로그래머가 c코드를 작성.전처리(Preprocessing) : 전처리기 처리컴파일(Complie) : C컴파일러가 작동하여, C코드를 어셈블리어로 변환어셈블(Assembling) : 어셈블러가 .obj(목적파일)을 생성링킹(Linking) : 링커가 라이브러리의 .obj(목적파일)을 다른 .obj파일과 결합해 실행파일 생성여기서 볼 구간은 링킹구간이다.예를 들어, 다음과 같은 간단한 C코드가 있다고 가정해보자.#include int main(void){ printf("hello world!\n"); return 0;}이 코드에서 stdio.h라는 헤더 파일을 전처리 한다(헤더파..
OS와 인터럽트
·
컴퓨터 공학(Computer Science)/OS
OS와 인터럽트 Interrupt 인터럽트만 장치들이 어떤 상황이 발생했음을 CPU에게 알리는 하드웨어적 방법. 인터럽트 발생시 하던 작업을 멈춤 돌아올 주소를 저장 해당되는 ISR()을 실행 ISR()끝나면, 하던 작업을 마저함 인터럽트 종류 하드웨어적 : 입출력 장치들이 전기적 신호를 CPU에게 보냄 소프트웨어적 : 프로그램 내에서 CPU기계명령으로 인터럽트 과정 진행 인터럽트 제어기 인터럽트가 처리되려면, CPU와 인터럽트 제어기들의 하드웨어가 협력해야함. CPU와 입출력 장치 사이에 APIC(인터럽트 제어기)가 사용되며 APIC는 입출력 장치로부터 직접 인터럽트 신호를 받는 I/O APIC장치와 I/O APIC로부터 인터럽트 정보를 받아 CPU핀에 직접 인터럽트 신호 발생시키는 Local APIC..