목록분류없음지식🔦 (27)
EEALL@ONCE
가상 머신(VM, Virtual Machine)은 물리적 하드웨어 위에서 가상의 컴퓨터 시스템을 만들어내는 소프트웨어입니다. 이 소프트웨어는 실제 컴퓨터처럼 작동하지만, 실제 물리적 기계가 아니라 소프트웨어로 구현된 환경입니다. 가상 머신은 크게 두 가지 유형으로 나뉩니다: 시스템 가상 머신: 이 유형의 가상 머신은 완전한 컴퓨터 시스템을 가상화하여, 하나의 물리적 컴퓨터에서 여러 개의 독립된 가상 컴퓨터를 동시에 실행할 수 있게 합니다. 각 가상 머신은 자체 운영 체제를 가지며, 서로 다른 운영 체제를 실행할 수도 있습니다. 이러한 가상 머신은 주로 서버 가상화, 테스트 환경, 시스템 개발 등에 사용됩니다. 예를 들어, VMware, VirtualBox가 이에 해당합니다. 프로세스 가상 머신: 이 유형..
스레드(Thread)는 컴퓨터 프로그램에서 실행 흐름의 기본 단위입니다. 하나의 프로세스 내에서 동시에 여러 작업을 수행할 수 있도록 하는 메커니즘으로, 각 스레드는 프로세스의 자원을 공유하면서 독립적인 실행 경로를 가집니다. 스레드의 특징 독립적 실행 경로: 각 스레드는 독립적인 실행 경로를 가지며, 자신만의 스택을 갖습니다. 이를 통해 프로그램 카운터, 레지스터 세트 등의 실행 컨텍스트를 유지합니다. 자원 공유: 같은 프로세스 내의 스레드들은 힙 메모리와 같은 자원을 공유합니다. 이를 통해 데이터 교환과 통신이 용이하지만, 동시성 문제를 일으킬 수 있습니다. 경량 프로세스: 스레드는 종종 '경량 프로세스'라고 불리며, 프로세스에 비해 생성, 종료, 컨텍스트 스위칭 비용이 적습니다. 멀티스레딩: 하나의..
Java에서 사용되는 Lombok 라이브러리의 어노테이션들인 @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder에 대해 설명하고 각각에 대한 예시를 들어볼게요. 이 어노테이션들은 코드를 더 간결하게 만들어 주어 매우 유용합니다. @Getter 이 어노테이션은 클래스의 각 필드에 대한 getter 메소드를 자동으로 생성합니다. 예시: @Getter public class User { private String name; private int age; } //// 이 경우, User 클래스에는 자동으로 getName()과 getAge() 메소드가 생성됩니다. @Setter 이 어노테이션은 클래스의 각 필드에 대한 setter 메소드를 자동..
해시(Hash): 해시는 데이터를 대표하는 고정된 길이의 값 또는 문자열입니다. 이 값은 일반적으로 원본 데이터보다 훨씬 짧으며, 원본 데이터의 고유한 "지문"처럼 작동합니다. 해시는 데이터의 무결성을 검증하거나, 데이터베이스 조회에서 키로 사용되는 등 다양한 목적으로 활용됩니다. 해싱(Hashing): 해싱은 원본 데이터를 해시로 변환하는 과정 또는 그 방법을 지칭합니다. 해싱은 해시 함수를 사용하여 수행되며, 이 함수는 원본 데이터를 받아 고유한 해시값을 생성합니다. 해싱의 주요 목적은 데이터를 고유하고 효율적으로 식별하는 것이며, 이 과정은 보안, 데이터 저장, 검색 최적화 등에서 중요한 역할을 합니다. 해시와 해싱의 차이점은 간단히 말해, 해시는 "결과물"이고, 해싱은 그 결과물을 생성하는 "과정..
네트워크 주소와 호스트 주소는 IP 주소를 구성하는 두 가지 주요 요소입니다. 이들의 차이는 다음과 같습니다: 네트워크 주소: 네트워크 주소는 네트워크 자체를 식별하는 데 사용됩니다. 이는 IP 주소의 일부분으로, 네트워크의 위치를 나타냅니다. 예를 들어, 192.168.1.0/24에서 192.168.1.0 부분은 네트워크 주소입니다. 여기서 "/24"는 네트워크 부분이 24비트임을 의미합니다. 호스트 주소: 호스트 주소는 특정 네트워크 내의 개별 장치(예: 컴퓨터, 프린터 등)를 식별하는 데 사용됩니다. 이는 IP 주소의 나머지 부분으로, 특정 장치를 나타냅니다. 같은 예에서, 192.168.1.1과 같은 주소는 호스트 주소 부분입니다. 여기서 마지막 숫자 "1"은 특정 장치를 나타냅니다. 간단히 말해..
우리 회사에 내가 늘 질문을 던지면 힘들어하면서 성실히 답장해주는 애완개발자(우리들 사이의 별칭이다 ㅋㅋ) 가 있다. 무튼 TCP/IP 4계층 모델 과 OSI 7계층 모델의 차이에 대해 포스팅을 해두기까지 했지만 자꾸 까먹어서 안까먹게 " 애완개발자 " 한테 다시 질문했다. 나 🐣 / 애완개발자🐓 🐣 그래서 도대체 두 개 차이가 뭐에요? 🐓 4계층은 진짜로 그렇게 통신하는 거고 / OSI는 그걸 좀 더 관념적으로 쪼갠거에요. 사실상 똑같은 걸 어떻게 보는지 차이에요. 🐣 그럼 일단 물리계층부터 설명을 좀... 🐓 물리 말 그대로 물리 눈에 보이는거에요 예를 들어 케이블 어떤걸로 사용해서 전달할지 / 유선으로(이더넷) 전달할래 무선으로(와이파이)로 전달할래? 이런거요. + 추가 ) 데이터 링크 계층은 OS..
. L7 스위치(레이어 7)는 웹 아이콘이 있는 웃는 컴퓨터로 표현되어 있으며, 이는 웹사이트와 같은 고수준의 어플리케이션을 상징합니다. L4 스위치(레이어 4)는 기본 데이터 이동을 나타내는 화살표가 있는 웃는 컴퓨터로 표현되어 있습니다. L7 스위치: 이 부분은 'L7 스위치'라고 한글로 레이블링 되어 있습니다. 그림에는 웹 아이콘(지구본 모양)이 그려진 웃는 컴퓨터가 표현되어 있습니다. 이는 L7 스위치가 어플리케이션 레이어에서 작동하며, 웹사이트와 같은 고수준의 데이터 처리를 담당한다는 것을 상징합니다. L4 스위치: 'L4 스위치'라고 한글로 표시되어 있습니다. 여기에는 기본적인 데이터 이동을 상징하는 화살표가 있는 웃는 컴퓨터가 그려져 있습니다. 이는 L4 스위치가 트랜스포트 레이어에서 작동하..
클래스파일에 포함되고 jvm에 로드되지 않는다는건 무슨 뜻이야 "클래스파일에 포함되고 JVM에 로드되지 않는다"는 말은 자바 프로그래밍과 관련된 특정한 상황을 설명합니다. 이를 이해하기 위해, 자바의 컴파일 과정과 클래스 로딩 메커니즘에 대해 알아야 합니다. 자바에서 프로그램을 작성하고 실행할 때, 다음과 같은 과정이 일어납니다: 코드 작성: 먼저, 자바 언어로 소스 코드를 작성합니다. 컴파일: 작성된 소스 코드는 .java 파일에 저장됩니다. 그 후, 자바 컴파일러(javac)를 사용하여 이 소스 코드를 컴파일합니다. 컴파일 과정에서 소스 코드는 .class 파일로 변환되며, 이 파일은 자바 바이트코드를 포함합니다. 실행: .class 파일은 JVM에 의해 로드되고, JVM은 이 바이트코드를 읽어 컴퓨..