운영체제란시스템의 자원과 동작을 관리하는 소프트웨어프로세스, 저장장치, 네트워킹, 사용자, 하드웨어를 관리메모리메모리 구조: code, data, heap, stack코드 영역실행할 프로그램의 코드(소스 코드)데이터 영역전역 변수정적 변수힙 영역사용자의 동적 할당(데이터가 동적 할당)런타임에 크기가 결정됨스택 영역함수의 호출 정보지역변수매개변수컴파일 타임에 크기가 결정커널- 인간의 심장과 같음시스템 콜- 커널로부터 핵심적인 기능을 제공받는지 프로세스 및 스레드 관리프로세스실행중인 프로그램각각의 독립된 메모리 영역(code, data, stack, heap)을 할당 받는다스레드프로세스 안 실행 단위프로세스 안에 스레드 여러 개가 존재하여 code와 data, heap은 공유하지만 stack은 스레드마다 ..
컴퓨터가 이해하는 정보데이터- 명령어가 실행되기 위한 재료- 0과 1로 이루어져있는 데이터- 컴퓨터가 이해하는 정보로 어떤식으로 읽히게 되는지- 인코딩과 관련명령어- 어떻게 소스 코드가 컴파일러 되서 명령어를 실행하는지- 인터프리터인 경우에는 소스코드가 어떻게 읽어 들어 명령어를 실행하는지 컴퓨터의 핵심 부품CPU- 인간의 두뇌와 같음- 명령어를 어떻게 빠르게 처리하는지메모리- 종류와 성능- 보조하는 캐시 메모리- 실행되는 프로그램을 저장- 휘발성보조기억장치- 보관할 프로그램을 저장- 비휘발성- 어떻게 안정적으로 저장할 것인지입출력장치
IP인터넷 프로토콜, 통신하기 위해 필요한 주소loopback127.0.0.1호스트에 할당된 아이피를 의미내가 가지고 있는 컴퓨터에서 localhost 또는 127.0.0.1로 서버를 띄울 경우 서버를 띄운 컴퓨터에서만 접속이 가능공인 IP공인 IP의 경우에는 어디에서나 접속이 가능192.168.0.x사설 IP사설 IP의 경우에는 같은 대역의 사설 IP를 할당받은 모든 기기에서 접속이 가능단, 같은 대역의 사설 IP에 붙어있지 않은 경우 (같은 와이파이가 아닌 경우) 접속이 불가능 IPv4IPv4 전 세계적으로 첫 번째 사용된 첫 번째 프로토콜32bit로 이루어진 주소이며 합산해보면 약 43억개의 주소를 가지게 된다(0 ~ 2의 32승)전 세계적으로 인터넷 사용자 수가 급증하면서 주소가 고갈될 위기가 처..
Stream이란?데이터의 흐름에서 원하는 값을 가공하여 원하는 값을 리턴하는 역할을 수행스트림은 컬렉션(배열)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다내부 반복자를 사용하므로 병렬처리가 쉽다스트림 생성.stream()배열 스트림Stream.of("a", "b", "c")IntStream.of(1,2,3)Arrays.stream(arr)컬렉션 스트림Stream.builder()Builder를 사용하면 스트림에 직접적으로 값을 넣을 수 있음.build메서드로 스트림을 리턴함Stream builderStream = Stream.builder() .add("A").add("B").add("V") .build(); // [A, B, C]중간 연산매핑, 필터링, 정..
정수 배열을 하나 받습니다. 배열의 중복값을 제거하고 배열 데이터를 내림차순으로 정렬해서 반환하는 solution( ) 함수를 구현하세요.제약조건배열 길이는 2 이상 1,000 이하입니다.각 배열의 데이터 값은 -100,000 이상 100,000 이하입니다.입출력의 예코드 리뷰import java.util.Arrays;import java.util.Collections;class Solution { private static int[] solution(int[] arr) { // ❶ 중복값 제거 Integer[] result = Arrays.stream(arr).boxed().distinct().toArray(Integer[]::new); // Arrays.stream() stream으..
접근하는 경우에는 임의 접근이라는 방법으로 모든 위치에 있는 데이터를 단번에 접근할 수 있으므로, 데이터에 접근하기 위한 시간 복잡도는 O(1)하지만 데이터를 어디에 저장하느냐에 따라 추가 연산에 대한 시간복잡도의 차이게 존재한다맨 뒤에 삽입하는 경우다른 데이터 위치에 영향을 주지 않음시간 복잡도는 O(1)맨 앞에 삽입하는 경우기존 데이터들을 뒤로 한 칸 씩 밀어냄데이터 개수가 N개 일 때, 시간 복잡도 O(N)중간에 삽입하는 경우해당 뒤의 데이터를 뒤로 한칸 씩 밀어내야함현재 삽입한 데이터 뒤에 있는 데이터 개수만큼 미는 연산밀어야하는 데이터 개수가 N개일 때 시간 복잡도O(N)고려사항배열의 경우 데이터에 자주 접근하거나 읽어야 하는 경우 좋은 성능을 낼 수 있지만 메모리 공간을 충분히 확보해야하는 단..