본문 바로가기
일상,취미

다시 시작하는 TIL 13일차

by 진득한진드기 2024. 6. 24.

오늘 한일 

 

이벤트가 일어나는 구간에 더블 버퍼링을 구현하였다. 내가 a to z까지 다 구현하는거는 힘들거 같아서 꼼수를 부려서 해결했다.

 

먼저 기존에 그리는 buffer에다가 같은 자료형 buffer를 선언하여 만든다.

 

이후에 버퍼가 잘리지 않게만 한다음 보낼 경계선을 그어 해당 자리까지는 출력하고 다시 buffer2에서 buffer1로 채워준다.

 

실제 동작은 저렇게 되지만 win32 api나 MFC를 사용해본 사람이면 어렵지 않게 구현 가능 할 것이다.

 

실제 랜더링이 문제긴 한데 그거는 생각보다 그리는거에 대한 처리를 잘해줘서 생각보다 어렵지 않게 해결할 수 있었다.

 

그리고 오늘 선임분에게 배운게 있는데 우리가 코딩을 할 때 객체에 접근해서 값을 사용할 때

 

즉 예를 들어

 

answer = Object 라는 형식이면

answer.id = "park"

answer.password = "qwer1234";

answer.email = "asdf@naver.com";

 

이런 형식으로 반복적으로 객체 값에 접근 하는 방식 이라면 

 

answer 라는 변수에 주소를 flag처럼 찍어두고 접근연산자(.)을 사용하지 않고 객체의 주소로 캐싱해서 사용할 수 있다고 한다.

 

캐시 메모리의 지역성을 이용한 직접적인 코딩 방식이어서 속도 향상에 이점이 어느정도 있다고 한다.

 

근데 요즘 프로그램은 뭐 워낙 빨라서 가독성을 지키는게 더.... 좋다고는 하신다.

 

퇴근 후 공부

 

TCP/IP 프로토콜 스택

 

- 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택
- 큰 문제를 작게 나눠서 계층화 한 결과
- 데이터 송수신의 과정을 네 개의 영역으로 계층화 한 결과
- 각 스택 별 영역을 전문화하고 표준화 함
- 7계층으로 세분화가 되며, 4계층으로도 표현함

간단하게 생각하면 TCP/IP는 프로토콜이 차곡차곡 쌓여져 있는 스택과 같다.

 

굳이 네트워크를 계층화 한 이유 -> 큰 문제를 작게 나눠서 계층화 한 결과

 

소켓 프로그래밍은 4개의 계층으로 설명할 수 있다.

 

====================

4. 응용계층

3.전송 계층 

2. IP계층 -> 라우터 장비 사용  = > 라우팅 알고리즘 = 데이터를 목적지까지 보내는데 사용되는 알고리즘

1. 링크계층  -> 물리적인 계층으로 보면 된다.

====================

 

표준화란 공학화 한다는 뜻이다. 그만큼 어떤 기술에 대해 공부하여 깊게 파서 전문화 시킬수 있다.

 

IP계층에서는 데이터를 주고 받는 길은 이미 완료된 것.

 

어떻게 할것인지를 TCP/UDP로 송수신 하는것.

 

소켓 프로그래밍을 한다는것은 어플리케이션에서(응용계층)의 데이터 송수신 방법을 정의하는 것과 같다.

Link 계층의 기능 및 역할

 

- 물리적인 영역의 표준화 결과
- LAN,WAN,MAN과 같은 물리적인 네트워크 표준 관련 프로토콜이 정의된 영역
- 아래의 그림과 같은 물리적인 연결의 표준이 됨

 

IP 계층의 기능 및 역할

 

- IP는 Internet protocol을 의미함
- 경로의 설정과 관련이 있는 프로토콜 => 나름의 경로찾기 알고리즘이 있음

 

TCP/UDP 계층의 기능 및 역할

 

- 실제 데이터의 송수신과 관련 있는 계층
- 그래서 전송 계층이라고도 함
- TCP는 데이터의 전송을 보장하는 프로토콜 ,UDP는 보장하지 않는 프로토콜
- TCP는 신뢰성을 보장하기 떄문에 UDP에 비해 복잡한 프로토콜이다.

 

인터넷 자체가 불완전한 상태인데 내가 전송한 데이터가 잘 전달됐는데 확인하는 과정으로 IP계층 위에 올린게 TCP이다.

 

호스트A가 Message를 B에게 보낸다고하면 받았다고 응답을 받아야한다.

 

만약 응답을 받지 않았다면 응답을 받을 때까지 다시 보내서 확인한다.

 

IP라는 계층에 TCP라는 방법을 올려서 확인하는 과정을 거쳐서 데이터를 주고 받는 방식이 TCP이다.

 

Application 계층

 

프로그래머에 의해서 완성되는 Application 계층
- 응용 프로그램의 프로토콜을 구성하는 계층
- 소켓을 기반으로 완성하는 프로토콜을 의미함.
- 소켓을 생성하면 앞서 보인 LINK, IP, TCP/UDP 계층에 대한 내용은 감춰진다.
- 그러니 응용프로그래머는 Application 계층의 완성에 집중하게 된다.

'일상,취미' 카테고리의 다른 글

다시 시작하는 TIL 15일차  (0) 2024.06.27
다시 시작하는 TIL 14일차  (0) 2024.06.26
다시 시작하는 TIL 12일차  (0) 2024.06.22
다시 시작하는 TIL 11일차  (0) 2024.06.20
다시 시작하는 TIL 10일차  (0) 2024.06.19