📖 Java의 특징객체지향 언어객체지향 언어의 특징인 캡슐화, 상속, 다형성을 지원한다.객체를 만들기 위한 설계도인 클래스를 작성하고, 객체간의 연결을 통해 목적에 맞게 프로그램을 만든다.모든 운영체제에서 실행 가능JVM을 사용하기 때문에 자바 실행 환경이 설치되어 있는 모든 운영체제에서 실행 가능하다.하이브리드 언어컴파일 언어인 동시에 인터프리터 언어로 작성한 코드를 컴파일하여 이진 파일을 만든 후, 자바 런타임이 이진 파일을 인터프리트하며 실행된다.자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 가진다. 메모리를 직접 관리개발자가 직접 메모리에 접근하지 않을 때, 자바가 직접 메모리를 관리한다.예를들어 객체 생성 시 자동으로 메모리 영역을 찾아 할당하고, GC를 실행시켜 사용하지 않는 객체를 자..
1. 월별 잡은 물고기 수 구하기select count(*) as fish_count, month(time) as monthfrom fish_infogroup by month(time)order by month(time); 2. 물고기 종류 별 잡은 수 구하기select count(a.fish_type) as fish_count, b.fish_namefrom fish_info a inner join fish_name_info bon a.fish_type = b.fish_typegroup by fish_nameorder by fish_count desc; 3. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기select car_type, count(*) as carsfrom car_rental_comp..
SQL의 SELECT 쿼리문이 어떤 순서로 실행이 되는지를 알면 올바르고 효율적인 쿼리를 짜는데에 많은 도움이 된다. 따라서 SQL 문법 순서와 실제 실행 순서를 다음과 같이 정리해 본다. 💡 SQL 문법 순서• SELECT• FROM• WHERE• GROUP BY• HAVING• ORDER BY 💡작성 예시-- SELECT: 원하는 열(필드)을 선택SELECT CustomerName, SUM(TotalAmount) AS TotalSpent-- FROM: 데이터를 추출할 테이블 지정FROM Orders-- WHERE: 조건을 기반으로 데이터를 필터링WHERE OrderDate >= '2023-01-01' AND OrderDate 1000-- ORDER BY: 결과를 정렬ORDE..
1. 가상 메모리의 개요 - 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 이로 인해 프로세스는 운영체제의 위치와 물리 메모리의 크기에 구애받지 않고 마음대로 메모리를 사용할 수 있다. 모든 프로세스는 위치에 상관없이 0부터 시작하는 연속된 메모리 공간을 갖는다. - 메모리 관리자는 물리 메모리의 부족한 부분을 스왑 영역으로 보충한다. 물리 메모리가 꽉 차면 일부 프로세스를 스왑 영역으로 보내고, 몇 개의 프로세스가 작업을 마치면 스왑 영역의 프로세스를 메모리로 가져온다. - 가상 메모리의 크기 = 물리 메모리(실제 메모리) + 스왑 영역 -> 이 과정을 동적 주소 변환이라고 하는데 이후 프로세스는 아무 제약 없이 사용자 데이터를 물리 메모리에 배치할 수..
1. 메모리 관리의 개요 - 폰노이만 구조에서 메모리는 유일한 작업 공간이며 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 따라서 메모리의 효율적인 공간 관리가 필수적이다. 이를 위해 CPU 안에 캐시를 만들어 작업하고, 보조저장장치를 활용하기도 한다. - 복잡한 메모리 관리는 메모리 관리 시스템이 담당한다. 프로세스와 메모리 관리자는 메모리를 두고 충돌하는데 이를 메모리 관리의 이중성이라고 한다. - 컴파일러는 소스코드를 기계어로 번역한 후 한꺼번에 실행하고, 인터프리터는 소스코드를 한 행씩 번영하여 실행한다. 컴파일러 방식은 오류 발견과 소스코드 최적화에 이점이 있다. 참고로, 라이브러리는 자주 사용하는 함수를 시스템 내에 미리 만들어둔 것이고, 실행할 때 삽입되는 함수를 가진 동적 라이브러리가..
✨ TCP와 UDP 의 차이? TCP와 UDP는 모두 인터넷 프로토콜(IP)에서 사용되는 전송 제어 프로토콜이다. 하지만 TCP와 UDP는 목적과 특성이 서로 다르다. TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 보장하는 연결형 프로토콜이다. TCP는 전송할 데이터를 패킷으로 분할하여 전송하며, 각각의 패킷은 목적지에 도달할 때까지 재전송된다. 또한 TCP는 데이터 전송을 보장하기 위해 순서 제어, 오류 제어, 혼잡 제어 등의 기능을 제공한다. 이러한 기능으로 인해 TCP는 안정적인 데이터 전송을 보장하지만, 전송 속도가 느리고 대역폭을 많이 차지한다. 반면에 UDP(User Datagram Protocol)는 비연결형 프로토콜로서, 데이터 전송의 신뢰성보다..