게이트웨이 vs 라우터

 

게이트웨이 :

현재 네트워크와 다른 네트워크를 연결하는 지점. 추상적인 개념. 고속도로의 톨게이트 개념.

패킷을 변환하는 역할. Ex)음성데이터의 음성코덱을 바꾸는 경우.

즉 두개의 컴퓨터가 네트워크 상에서 서로 연결되려면 동일한 통신 프로토콜을 사용해야함. 따라서 프로토콜이 다른 네트워크 상의 컴퓨터와 통신하려면, 두 프로토콜을 적절히 변환해 주는 변환기가 필요한데, 게이트웨이가 이러한 변환기 역할을 하는 것.

 

라우터 :

게이트웨이가 구현된 물리적 장치패킷의 최적 경로를 찾는 장비. 

종류 :정적,동적 라우팅.

즉 라우터가 게이트웨이를 포함한 개념.

 

Ex)

컴퓨터 게이트웨이는 무엇으로 잡는가?

è  그 컴퓨터의 게이트웨이는 155.230.156.5로 잡아라.

여기 라우터 뭐 쓰나요?

è  여기 라우터xxx 쓰는데, 이 장비는 대역폭이 1Gbits나 된대.

1. 변수의 메모리 주소 구하기

int num1 = 10;


&num1 // 008A7FC, num1의 메모리 주소


2. 메모리 주소를 저장하기 (포인터변수 : 메모리 주소를 저장하는 변수)

구조 : 자료형 *포인터이름;

포인터 = &변수

 char *numPtr; //char형 공간을 가리키는 포인터

int num1 = 10;

numPtr = &num1;


&num1 의 값과 numPtr의 값이 같다. 


[Call by reference, Call by value]

3.메모리 주소가 있는 곳으로 이동해서 값을 가져오기 (역참조 연산자, dereference)


[역참조 연산자로 변수의 메모리 주소에 접근하여 값 가져오기]

구조 : *포인터

int *numPtr;

int num1 = 10;


numPtr = &num1;


*numPtr 은 10 //dereference 연산자로 num1의 메모리 주소에 접근하여 값을 가져옴.


[포인터 변수에 역참조 연산자를 사용한 뒤, 값을 할당하기]

int *numPtr;

int num1 = 10;


numPtr = &num1; 

*numPtr = 20;


*numPtr 값은 20, num1 값도 20


/********************자료형 맞춰주기******************************/

역참조 연산자로 자료형을 바꿀 수 있다.

int *numPtr; 에서 *numPtr처럼 역참조하면, pointer to int 에서 pointer to를 제거한 "int"가 된다. 

따라서 포인터 numPtr에 변수 num1값을 할당하고 싶다면, 역참조 연산자로 자료형을 맞추면 된다 


int *numPtr;

int num1 = 10;


numPtr = num1 //컴파일 warning. 자료형 불일치

: *numPtr = num1;//이렇게 하면 자료형 일치.


&로도 자료형을 맞출 수 있다.

int *numPtr;

int num1;


numPtr = &num1 이렇게 주소값을 가리키는 자료형으로 맞춰준다. //Pointer to int와 address of int는 자료형이 같다. 



4. 다중 포인터

int a = 10;

int *p1 ;

int **p2;


p1 = &a; //a의 주소값을 포인터 변수 p1에 저장.

p2 = &p1 // p1의 주소값(인 a의 주소값이 가리키고 있는 데이터를) 포인터 변수 p2에 저장


printf("%d", **p2 ); 를 출력하면 a의 값인 10이 출력됨.



이렇게 따로따로 선언이 되어있으면 하나씩 풀어가니까 헷갈리지 않은데 

int *p1 = &a;

int **p2 = &p1; 이렇게 선언되어있으면 괜히 당황스럽다.

다중포인터는 헷갈리므로 괄호를 사용하면서 괄호부터 처리하는게 안헷갈리고 좋다.

*(*p2) 이렇게.

1) *(*p2)는 p1의 주소값을 가지고 있다.

2) (*p2)는 p1이 가지고 있는 값을 의미한다.

3) *p1은 a의 주소값을 가지고 있다. 

4) 그러므로 (*p2)는 a의 주소값을 가리킨다.

5) *p1은 a의 주소값을 가지고 있으므로 *(*p2)는 a의 값이 된다. 


call by value를 통해 a의 값을 바꿀수 있다.

*(*p2) = 20; //p2를 이용해서 a가 가지고 있는 값을 20으로 바꾼 것임.

*(*p2) 는 a의 값이므로.




Call by value, Call by reference 참고 사이트 : 

http://11bike.blogspot.kr/2011/04/c-call-by-reference.html

출처 : 코딩도장

https://dojang.io/mod/page/view.php?id=276

https://m.blog.naver.com/PostView.nhn?blogId=jyyunp3&logNo=90053409572&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F



'업무 > 영상처리 그리고 OpenCV' 카테고리의 다른 글

CvPoint2D32f  (0) 2017.12.05
[이미지 데이터 저장소] IplImage,Mat  (0) 2017.12.04
OpenCV 함수 정리  (0) 2017.12.02
ROI(Region Of Interest)  (0) 2017.12.01
YCbCr  (0) 2017.11.16

포인터의 사이즈는 CPU 사이즈와 관계가 있다.


만약 사용하는 CPU가 64bit인 경우 포인터의 사이즈는 8byte이고 

32bit인 경우 포인터의 사이즈는 4byte이다.


가상 메모리 주소가 64bit의 CPU ->한번에 전송할 수 있는 데이터 : 2^32 (4G)

(=가상주소를 취급하는 어드레스 버스의 크기가 64bit)


*CPU 사이즈에 국한된 것은 아니고 컴파일러에 따라 다르다. 

64bit CPU에서 32bit로 컴파일 시 -> 포인터 사이즈 4byte

64bit CPU에서 64bit로 컴파일 시 -> 포인터 사이즈 8byte



공통4.pdf

1.사고조사방법에 대한 설명으로 틀린것은?

1)사고처리시 현장은 그대로 보존한다.

2)물적 증거와 관계 자료를 수집하고 분석한다.

3)신고부터 한 후 사고현장은 천천히 조사한다.

4)현장의 목격자, 감독자, 피해자 등의 진술을 확보한다.


2.요양보상급여의 지급시기는

->매월 1회 이상


직무 스트레스 중재요인 중 대처 기술 중 가장 긍정적 방법론에 해당되는 것은?

1)회피

2)사회적지지 구하기
3)참기

4)직면 대응


2. 심폐소생술을 중지하여도 되는 경우가 아닌 것은?

1)교대자가 있는 경우

2)119 구급대원이 현장에 도착한 경우

3)자동심장충격기(자동제세동기)의 패드를 붙이려고 할 때

4)환자가 깨어난 경우




말그래도 자료형이 정해지지 않은 상태.


값을 가져올 수도 없고(역참조), 사이즈도 정해진 바가 없다. 


크기가 정해지지 않았기 때문에 사용하는 것을 추천하지 않는다. (메모리 할당이 많아질 수 있으므로)

YCbCr : 영상시스템에서 사용되는 색공간의 일종

-명칭 : 

Y - 휘도

Cb,Cr : 색차 성분(크로마)

-속성 : 

1)절대 색공간이 아니고 RGB정보를 인코딩하는 방식의 하나.  

그러므로 YCbCr로 표현된 값은 표준 RGB 색상이 사용된 경우거나, 색상을 변환하기위해 사용할 ICC프로파일을 첨부한 경우에만 예측가능하다.

2) 장점 : 적은 데이터로 많은 색상을 나타낼 수 있다

3) 단점 : RGB보다 색상의 분리 및 전달 효과는 약하다.



참고 : 위키백과 https://ko.wikipedia.org/wiki/YCbCr

'업무 > 영상처리 그리고 OpenCV' 카테고리의 다른 글

CvPoint2D32f  (0) 2017.12.05
[이미지 데이터 저장소] IplImage,Mat  (0) 2017.12.04
OpenCV 함수 정리  (0) 2017.12.02
ROI(Region Of Interest)  (0) 2017.12.01
TI Porting 최적화 관련 링크  (0) 2017.11.28

+ Recent posts