함수형 인터페이스란? Java에서 하나의 추상메소드가 정의된 interface를 함수형 인터페이스라 한다. 이러한 특성 때문에, 함수형 인터페이스는 메소드 참조를 통해, 혹은 람다식 정의를 통해 stream에서 사용할 수 있다. java 에서 제공되며 가장 기본적으
빌더패턴을 사용하지 않는 경우, 인스턴스를 생성하는 방법에는 크게 두 가지가 있다.장점필수값을 지정할 수 있다생성자마다 사용되는 중복 로직을 제거할 수 있다.단점필드의 개수만큼 생성자를 구현해야 한다.필드가 많고 타입이 겹치는 경우 생성자를 사용하는 입장에서 헷갈려 실
병행성(Concurrency) 과 병렬성(Parallelism) 은 컴퓨터 과학에서 중요한 개념으로, 여러 작업을 동시에 처리하는 방법에 관한 것이다. 이 두 개념은 서로 밀접하게 관련되어 있지만, 구체적인 의미와 적용 방법에서 차이가 있다.병행성은 여러 작업이 시간적
커널 모드(Kernel Mode) 는 운영 체제에서 가장 높은 권한을 가진 모드로, 시스템의 핵심 부분을 관리한다. 이 모드에서 실행되는 코드는 하드웨어와 시스템 자원에 대한 전체적인 제어 권한을 가지며, 컴퓨터 시스템의 가장 깊은 부분을 조작할 수 있다.전체 권한커널
가상 메모리(Virtual Memory) 는 운영 체제에서 사용하는 중요한 개념으로, 컴퓨터의 메인 메모리(일반적으로 RAM)가 부족할 때 보조 저장 장치(예: 하드 드라이브, SSD)의 일부를 메모리처럼 사용하는 기술이다.메모리 관리가상 메모리는 프로그램에 물리적 메
자바의 PriorityQueue는 내부적으로 힙(Heap)을 통해 구현된다.힙은 최소 힙, 최대 힙으로 구분된다.최소 힙 구현아래는 Java로 구현된 최소 힙이다.작동방식 설명최소 힙은 자료구조 내 요소 중 가장 작은 값의 요소를 root에 위치시킨다.조회힙의 가장 첫
인터프리터 방식은 프로그래밍 언어가 소스 코드를 직접 실행하는 방식이다.특징직접 해석 및 실행인터프리터는 소스 코드를 한 줄씩 읽으면서 바로 실행한다. 이는 소스 코드가 별도의 컴파일 과정 없이 실행되는 것을 의미한다. 각 줄이 실행될 때마다 인터프리터는 해당 코드를
각 사양 별 메모리 최대값 계산 방법32비트 사양\-> 2의 32승 만큼의 메모리 주소값을 가진다.\-> 하나의 메모리 주소는 1byte 용량의 데이터를 저장한다.\-> 2의 32승(약 42억) byte 만큼의 데이터를 저장할 수 있다.\-> 2의 32승 바이트는 4G
도메인 입력(naver 예시) 후 요청 시 해당 도메인의 IP를 찾는 과정은 다음과 같다. 1\. 초기 DNS 쿼리웹 브라우저에 www.naver.com을 입력하면, 컴퓨터는 먼저 로컬의 hosts파일 혹은 DNS 캐시를 확인하여 해당 도메인의 IP 주소를 찾는다.로컬
TCP, 전송 제어 프로토콜(Transmission Control Protocol)은 주요 인터넷 프로토콜 중 하나이다. TCP는 인터넷에서 데이터를 신뢰성 있고 순차적으로 전송하는 데 사용된다. TCP는 데이터가 손실되거나 순서가 바뀌지 않도록 보장하며, 데이터 전송
네트워크에서 흔히 발생할 수 있는 장애 종류 다섯 가지를 소개하고자 한다.💡 개념TCP 연결에서 발생하는 현상으로, 수신측의 버퍼가 가득 차서 더 이상 데이터를 받을 수 없을 때 발생하는 장애 현상이다. 제로 윈도우 발생 시 송신측은 수신측에 해당 상황을 알리기 위해
TCP 를 이용하여 외부 서버와 연결하는 과정은 다음과 같다.(3way handshake) TCP 를 이용하여 외부 서버와 연결을 끊는 과정은 다음과 같다.(4way handshake)
L3 에서 사용하는 IPv4(Internet Protocol version 4) 기준 IP 주소는 32비트로 구성되어있다.이론상으론 2의 32승인 약 42억개의 IP가 존재할 수 있다.여기서 의문이 생긴다. 42억개의 IP주소가 전 세계의 호스트를 감당할 수 있을까?인
필자의 동세대라면 어릴 때 한 번쯤 해봤을 서든어택의 인게임 화면이다.익숙한 화면, 짜증나는 상황이다.'핑'이라는 컬럼에 빨간 불이 들어와있는 상황, 즉 무언가 인터넷 연결이 서로 원활하지 않은 상태이다.어릴적 기억을 살려보면, 이런 상황을 두고 '핑이 높다' 혹은 빨
packet 은 L3 에서의 데이터 전송 단위이다.L3통신 단위에 맞게 패킷의 헤더에 담긴 Source와 Destination의 주소는 ip주소이며이외에 헤더는 IP 버전, 패킷의 총 length, 패킷의 수명인 TTL(Time To Live), payload에 있는
previous 이전 포스팅에서, 대칭키와 비대칭키를 이용하여 서버 간 통신을 안전하게 하는 방법에 대해 알아보았다. 서버와 서버 간 대칭키를 공유하기 위해, 비대칭키를 이용하여 client가 server에 대칭키를 전송하며 그 과정은 다음과 같았다. (구글과의 통신
previous이전 포스팅에서는 대칭키 + 비대칭키 조합을 이용하여 https 통신을 하는 방법과 각 키의 역할 그리고 대칭키 + 비대칭키 조합이 필요한 이유에 대해 알아보았다.대칭키를 공유하는 과정에서 public key를 이용해 대칭키를 암호화하고, 이를 전달받은
ssl key대칭키대칭키는 마치 우리가 어렸을 때 사용했던 집 열쇠와 비슷하게, 키 하나만으로 집 문을 잠그거나 열 수 있다.대칭키는 키 하나만으로 평문을 암호화, 암호를 복호화 가능하다.통신하는 양 측 서버에서는 같은 대칭키를 가지고 있는 것만으로도 양측 간을 오가는
풀이모든 정점들에 대해 서로의 최소 거리를 구하는 플로이드 와샬을 이용하여 푸는 문제이다.단, 단순히 서로의 정점에 대한 최소값을 구하는 것이 아니라 서로의 정점을 최소값으로 가기 위해 먼저 지나야 하는 다른 정점을 구해야 하는 변형문제이다.최종적으로 도출되는 표를 통
문제 상황실무에서 새로운 기능을 개발할 때,설계를 고민하느라 선뜻 기능개발을 하지 못하고 시간이 지나치게 지체되는 경우가 있다.특히 요즘 더 그러하다.처음부터 완벽한 설계를 위해 고민하다보면 시간이 많이 소요되고,어떻게 설계를 겨우 겨우 짜 개발에 적용하다보면 예상치