전체 글 101

프로세스

프로세스 - 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 이 과정을 프로세스를 생성한다라고 표현한다. - 컴퓨터가 부팅되는 순간부터 수많은 프로세스들이 실행되는데 윈도우에서는 작업관리자의 프로세스 탭에서 확인할 수 있고, 유닉스 체계의 운영체제에서는 PS 명령어로 확인할 수 있다. - 사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스라고 부르고, 사용자가 보지 못하는 뒤편에서 실행되는 프로세스는 백그라운드 프로세스라고 부른다. - 이러한 백그라운드 프로세스를 유닉스에서는 데몬이라고 부르고, 윈도우에서는 서비스라고 부른다. * 프로세스 제어 블록(Process Co..

타임리프의 표현식과 문법

타임리프 - 타임리프는 템플릿 엔진입니다. 템플릿 엔진은 스프링 서버에서 데이터를 받아 우리가 보는 웹페이지, 즉 HTML 상에 그 데이터를 넣어 보여주는 도구입니다. * 타임리프 표현식과 문법 - 표현식 표현식 설명 ${...} 변수의 값 표현식 #{...} 속성 파일 값 표현식 @{...} URL 표현식 *{...} 선택한 변수의 표현식. th:object에서 선택한 객체에 접근 - 문법 표현식 설명 예제 th:text 텍스트를 표현할 때 사용 th:text=${person.name} th:each 컬렉션을 반복할 때 사용 th:each="person : ${persons}" th:if 조건이 true인 때만 표시 th:if="${person.age} >= 20" th:unless 조건이 false인..

기술면접 질문 리스트

Java의 특징 - Java는 JVM에서 실행되기 때문에 어떤 운영체제에서든지 독립적으로 Java 언어를 사용할 수 있다. - Java는 객체 지향 프로그래밍을 지원하며, 클래스와 객체를 사용하여 모듈화와 재사용성을 강화합니다. - Java는 멀티스레드를 지원하여 동시에 여러 작업을 수행할 수 있습니다. - Java는 동적 메모리 할당을 지원하며, 가비지 컬렉션 기능을 통해 메모리 누수를 방지합니다. - Java는 컴파일 언어이면서 인터프리터 언어입니다. * 인터프리터는 소스 코드를 읽고, 이를 바로 실행하는 프로그램이나 환경을 가리킵니다 * 컴파일은 소스 코드를 기계어 또는 중간 언어로 변환하는 과정을 말합니다 JVM이란? - Java Virtual Machine의 약자로 Java 프로그램이 실행되는 ..

JAVA 2023.12.11

운영체제

운영체제 - 운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역이라는 공간에 따로 적재되어 실행된다. - 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 프로그램이 적재되는 영역을 사용자 영역 이라고 한다. - 운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리를 관리한다. - 운영체제는 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당하고, 올바르게 실행되도로 관리하는 역할을 한다. - 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다. - 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있는데, 사용자 인터페이스가 있다. 그 종류에는 그래픽 유저 인터페이..

프로그래머스 문자열 잘라서 정렬하기(JAVA)

문제 설명 정답 import java.util.*; class Solution { public String[] solution(String myString) { String[] answer = myString.split("x"); Arrays.sort(answer); answer = Arrays.stream(answer) .filter(s -> !s.isEmpty()) .toArray(String[]::new); return answer; } } -> 먼저 split 메서드로 x를 기준으로 나누어 준다. -> 그리고 Arrays.sort 메서드로 문자열을 오름차순으로 정렬한다. -> 이제 빈 문자열 처리를 해주기 위해서 answer 배열을 stream으로 변환 후 -> filter 메서드는 주어진 조건에..

프로그래머스 2023.12.06

RAID의 정의와 종류

RAID(Redundant Array of Independen Disks) - RAID는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높은 성능응 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다. - 여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여라가지가 존재한다. - RAID 구성 방법을 RAID 레벨이라 표현하는데, RAID 레벨에는 대표적으로 RAID 0, 1, 2, 3, 4, 5, 6이 있다. * RAID 0 - RAID 0은 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식이다. - 이때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입(stripe)이라 하고..

보조기억장치

하드디스크 - 자기적인 방식으로 데이터를 저장하는 보조기억장치. - 대용량 저장 장치가 필요한 작업이나 서버실에 자주 출입하는 작업을 한다면 하드디스크를 자주 접한다. - 하드디스크에서 실질적으로 데이터가 저장되는 곳을 플래터라고 한다. 플래터는 자기 물질로 덮여있어 수많은 N극과 S극을 저장한다. N극과 S극은 0과 1을 수행한다. - 플래터를 회전시키는 구성 요소를 스핀들이라고 한다. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현한다. - 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드라고 한다. 헤드는 원하는 위치로 헤드를 이동시키는 디스크 암에 부착되어 있다. - 플래터는 트랙과 섹터라는 단위로 데이터를 저장한다. 섹터는 하드디스크의 가장 작은 전송 단위이..

메모리의 주소, 캐시 메모리

물리주소와 논리주소 - 메모리가 사용하는 물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미한다. - CPU와 실행중인 프로그램이 사용하는 논리주소는 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다. - CPU가 이해하는 주소가 논리 주소라고는 해도 메모리와 상호작용하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다. - 논리주소와 물리주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리장치(MMU)라는 하드웨어에 의해 수행된다. - MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다. - 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하고, 논리주소는 프로그램의 ..

RAM의 특징과 종류

RAM의 특징 - RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. 하지만 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아간다. 이렇게 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장장치 라고 한다. - 전원을 꺼도 저장된 내용이 유지되는 저장 장치는 비휘발성 저장 장치 라고 한다. 대표적으로 하드디스크나 SSD, CD-ROM, USB 메모리와 같은 보조 기억 장치가 있다. - CPU는 보조기억장치인 비휘발성 저장 장치에는 보관할 대상을 저장하고, 휘발성 저장 장치인 RAM에는 실행할 대상을 저장한다. - CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다. - RAM 용량이 충분히 크면 보조기억장치에서 많은 데이터를 가져와 미..

API, 응답코드, 직렬화, 역직렬화

API - 네트워크에서 API는 프로그램 간에 상호작용 하기 위한 매개체 - 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 돌려주는 역할 REST API - 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식 - url의 설계 방식 - url에는 동사를 쓰지말고, 자원을 표시해야 한다. - 장점 - url만 보고도 무슨 행동을 하는 api인지 명확하게 알 수 있다 - http 표준을 사용하는 모든 플랫폼에서 사용할 수 있다 - 주소와 메서드만 보고 요청의 내용을 파악할 수 있다 - 단점 - http 메서드, get, post와 같은 방식의 개수에 제한이 있다. - 공식적으로 제공되는 표준 규약이 없다, 응답코드 200 OK 요청이 성공적으로 수행 201 Created 요청이 ..