본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
[꼬리 재귀(Tail Recursion)] 재귀 하나의 함수에서 자신을 호출하여 작업을 수행하는 방식으로 문제를 푼다. 함수는 호추할때 함수의 입력값,리턴값,돌아갈 위치 값들을 스택에 저장한다. 재귀 함수를 사용하면 함수가 끝나지 않은 채 함수를 계속해서 호출함으로 스택에 메모리가 쌓이게 되고 오버 플로우가 발생한다. 이러한 단점을 보완하기 위해 꼬리재귀를 사용한다! 꼬리재귀란 ? 재귀호출이 끝난 후, 현재 함수에서 추가 연산을 요구하지 않도록 구현하는 재귀의 형태이다. 함수 호출이 반복되어 스택이 깊어지는 문제를 컴파일러가 선형으로 처리하여 재사용 가능하다. //일반 재귀 예시 int Factorial(int n) { if (n == 1) return 1; return n * Factorial(n-1); } //꼬리재귀 예시 int Factor.. 2021. 5. 18.
[HTTP 요청/응답 헤더] 2021.05.17 - [Tech.log/네트워크] - [HTTP VS HTTPS] HTTP 는 하이퍼 텍스트 전송 프로토콜 통신을 사용하면서 클라이언트와 서버 간의 두 가지 유형인 Requeset & Response의 메시지를 주고 받는다. HTTP Header HTTP 본문(Body) 및 요청/응답에 대한 일반적인 정보를 포함한다. HTTP 공통 헤더 HTTP 헤더 내 일반 헤더 (General Header) 항목 요청 및 응답 메시지 모두에서 사용 가능한 일반 목적의(기본적인) 헤더 항목 Date HTTP 메시지를 생성한 일시 (RFC 1123에서 규정) Date: Sat, 2 Oct 2018 02:00:12 GMT *Connection * 클라이언트와 서버 간 연결에 대한 옵션 설정(다소 모호한 .. 2021. 5. 17.
[HTTP VS HTTPS] HTTP 하이퍼 텍스트 전송 프로토콜의 약자이다. 서로 다른 시스템들에서 통신을 주고받는 가장 기본적인 프로토콜입니다.웹서핑을 할때, 브라우저로 데이터를 전송해주는 용도로 사용된다. HTTPS 하이퍼 텍스트 전송 프로토콜의 보안(Hypertext Transfer Protocol Secure)의 약자이다. HTTP의 암호화 되지않는 문제점을 보완하기 위해SSL(보안 소켓 계층)을 사용한 프로토콜이다. 두 프로토콜의 큰 차이점은 SSL인증서 이다. SSL인증서는 웹서버와 웹사이트에서 이루어지는 모든 정보전송을 암호화 하는 인증서 이다. HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜이고 이를 통해 안전하게 데이터를 전송한다. *추가 )암호화의 방법 대칭키 암호화화 복호화를 동일한 키(대칭키)를 사용하는.. 2021. 5. 17.
[TCP의 3-Handshake VS 4-Handshake ] 2021.05.11 - [Tech.log/네트워크] - [TCP/IP VS UDP] [TCP/IP VS UDP] TCP/IP 프로토콜이라고 주로한다. 신뢰성에 초점을 맞추고 데이터가 신뢰성 있게 올바르게 전송 되도록 하는 프로토콜이다. TCP는 IP 프로토콜로 만들어졌으며 패킷의 전송흐름을 담당한다. 패킷 itfordoit.tistory.com TCP는 3- way Handshake 을 사용한 이유는 양방향 연결 지향으로 신뢰성있는 데이터 전송을 하기 위해서였다. 1. 클라이 언트는 서버에세 접속을 요청 하는 SYN을 보낸다. 이후 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다. 2.서버는 SYN요청에 대한 수락을 한다. ACK와 SYN flag 패킷을 전송하고 ACK의 대한 응답을 기다린다.. 2021. 5. 12.