스택 스택은 배열과 마찬가지로 데이터를 저장하고, 데이터를 꺼내기 위해 사용하는 자료구조 중 하나이다. 스택은 이와 다르게 최근에 저장한 데이터만 꺼내올 수 있다. 스택이라는 이름 뜻 그대로, 데이터를 차곡차곡 쌓아 저장하고, 데이터를 꺼낼 땐 위에 쌓아 넣은 것부터 하나씩 추출하는 자료구조이다. 이러한 스택의 특성을 가리켜 후입선출(Last In, First Out) 특성을 가진다고 한다. 스택의 시간복잡도 push push 함수는 스택의 맨 위에 데이터를 삽입한다. 즉, 스택 내부에 있는 다른 데이터에 접근하지 않기 때문에, 어떤 데이터가 들어오더라도 시간복잡도는 항상 같다.이 경우, Big-O 표기법에 따라 O(1)로 표기한다. pop pop 함수도 push함수와 마찬가지다. 다른 데이터에 접근할 ..
HTTPS VS HTTP HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP라는 의미다. HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 메시지를 주고 받는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다. 이를 보안한 것이 HTTPS다. SSL SSL(Secure Sockey Layer)은 보안 소켓 계층 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜 전자상거래 등의 보안을 위해 넷스케이프(netscape)에..
복잡도 복잡도는 문제 해결에 사용되는 연산의 횟수를 의미하는 시간복잡도와 프로그램이 종료되기까지 필요한 자원 공간의 양을 의미하는 공간 복잡도로 나뉜다. 복잡도는 알고리즘에 데이터가 주어질 때 연산 시간, 혹은 연산에 사용되는 공간의 크기를 객관적으로 비교할 수 있는 기준을 제공하기 때문에, 문제를 해결하는 알고리즘을 평가하는 데에 사용된다. 공간 복잡도 공간 복잡도란 프로그램을 실행시킨 후 완료하기까지 필요로 하는 공간의 크기를 의미한다.이때 필요한 공간은 고정 공간과 가변 공간으로 나뉜다. 고정 공간 : 코드가 저장되고, 단순한 변수와 상수가 저장되는 공간. 알고리즘과 무관하다. 가변 공간 : 코드가 실행되는 도중에 동적으로 필요한 공간, 알고리즘과 연관된 공간 Big-O 표기법을 사용해 입력된 데이..
네트워크 토폴로지 (통신망의 구조) 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결한 형태를 의미한다. 계층형(Tree) 토폴로지 트리 구조 형태로 정보 통신망을 구성하는 것으로 정보 단말 장치를 추가하기 용이한 구성 장점 분산 처리 이용 가능 단말의 추가, 삭제 간단 단점 단방향 버스형(Bus) 토폴로지 중앙의 통신 회선 하나에 여러 개의 정보 단말 장치가 연결된 구조로 LAN에서 주로 사용, 신뢰성 우수 장점 구조 간단 노드 추가, 삭제가 간단 단말의 고장이 통신망에 지장을 주지 않음 단점 우선 순위 제어가 어려움 통신 회선 길이 제한 기밀성 제공 불가 성형(Star) 토폴로지 중앙에 있는 정보 단말 장치에 모두 연결된 구조로 항상 중앙의 정보 단말 장치를 통해서만 연결이 가능한 구조, ..
HTTP는 Stateless 한 특징을 가진다. 그러나 로그인 상태, 쇼핑몰 장바구니 기능 등을 위해 상태를 유지해야 할 때가 있는데, 이때 세션과 쿠키를 사용한다. 세션 서버 측에 저장되어 관리되는 정보. 세션의 특징 클라이언트와 서버 간의 접속을 유지시켜주는 역할 클라이언트가 서버에 요청할 경우 서버는 각 클라이언트를 구분할 수 있는 식별자(세션 ID) 부여 여러 클라이언트가 요청하는 정보들은 이 세션 ID를 통해 각 클라이언트를 구분해 정보 저장 세션 동작 순서 클라이언트가 페이지에 요청 (사용자가 웹사이트에 접근) 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여, 클라이언트가 해당 session-id를 보냈는지 확인 session-id가 존재하지 않는다면 서버는..
서블릿과 스프링에 관한 좋은 글을 발견했다. 작성자가 글을 아주 잘 쓰는 것 같다. 두고두고 봐야겠당 https://jypthemiracle.medium.com/servletcontainer%EC%99%80-springcontainer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B4-%EB%8B%A4%EB%A5%B8%EA%B0%80-626d27a80fe5 ServletContainer와 SpringContainer는 무엇이 다른가? Controller 1개는 어떻게 수십 만개의 요청을 처리하는가 jypthemiracle.medium.com
인터넷 구성과 주소 부여 체계 Network of Networks Internet : 이기종 네트워크를 라우터로 연결 Subnet : 라우터로 연결된 서브넷은 유일한 ID를 가짐 Host : 호스트는 서브넷에서 유일한 ID를 가짐 인터넷 차원의 주소 : IP 주소 인터넷에서 통신 장치를 유일하게 식별 Network ID + Host ID 네트워크 주소 : Host ID = 0 네트워크 주소 (Network ID) 기반 라우팅 라우팅 테이블 크기 축소 인터넷 성능 제고 IP 주소 구조 IPv4 주소 구조 : 32비트(2의 32승 - 4,294,967,296) 주소 구조 활용 방식 클래스 IP 주소 (Classful Addressing) 비클래스 IP 주소 (Classless Addressing) 클래스 주..
IP 서비스 개요 비연결형 서비스 연결 설정 과정 없음 일련의 데이터그램을 독립적으로 전달 최선형 서비스 전송속도, 지연시간 보장 없음 오류 복구 서비스 미지원 서브넷 독립적 서비스 다양한 서브넷을 통해 IP 데이터그램 전송 가능 서브넷 주소와 독립적인 IP 주소 사용 Hop-By-Hop IP 데이터그램 구조 Version - 프로토콜 버전(4, 6) Header length - 헤더의 길이 (4 bits로 표현하기 위해서 실제 길이에 4를 나눈 값을 저장) Total Length - 헤더와 데이터를 합한 총 길이 Identification, Flags, Fragment offset - 데이터 그램의 크기가 커서 Fragmentation(단편화) 할 때 사용하는 필드들 TTL - 데이터그램이 최대로 거칠..