분류 전체보기 474

[Spring 기본편] (1) 스프링이란 / 스프링과 객체 지향에 대하여

Spring(스프링) - 스프링이란, 자바 언어 기반의 프레임워크 - 자바 언어의 가장 큰 특징 = 객체 지향 언어 - 스프링은 객체 지향 언어가 가진 강력한 특징(객체지향)을 살려내는 프레임워크 -> 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 Spring Framwork(스프링 프레임워크) - 스프링의 핵심기술 Spring boot(스프링 부트) - 스프링 부트란, 스프링을 편리하게 사용할 수 있도록 지원 - 단독으로 실행할 수 있는 스프링 어플리케이션을 쉽게 생성 - Tomcat 같은 웹서버를 내장해서 별도의 웹서버를 설치하지 않아도 됨 - 손쉬운 빌드 구성을 위한 starter 종속성 제공 (Dependency 라이브러리 간편 관리) - 스프링과 3rd parth(외..

[백엔드 면접 질문] CS - JAVA 면접 질문 정리(2)

JAVA 관련 백엔드 면접 질문-답변 정리(2) 절차지향 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 절차지향 프로그래밍이란 실행하고자 하는 절차를 정하고, 이 절차대로 프로그래밍하는 방법을 의미합니다. 객체지향 프로그래밍이란 연관되어 있는 변수와 메서드를 하나의 그룹으로 묶어 클래스(개념)를 구현하고 이들 사이의 상호 작용을 프로그램으로 나타낸것을 의미합니다. 함수형 프로그래밍이란 주어진 문제를 작은 문제로 나눈 후, 이 작은 문제를 순수 함수로 만들어 순수함수를 조합하여 프로그램을 만드는 선언형 프로그래밍 기법입니다. 절차지향 프로그래밍이란 절차지향 프로그래밍 장단점 절차지향언어는 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 합니다. 절차지향언어의 구조는 컴퓨터의 처리구조와..

CS 면접 준비 2022.05.11

[백엔드 면접 질문] CS - JAVA 면접 질문 정리(1)

JAVA 관련 백엔드 면접 질문-답변 정리(1) JAVA란 무엇인가요, (자바의 특징, OOP) 자바는 객체지향적 프로그래밍 언어(OOP) 입니다. 객체지향적 언어 OOP란, 프로그래밍에 사용 될 데이터의 상태와 행위를 객체로 만들어, 객체간의 상호작용을 통해 비지니스 로직을 구성하는 프로그래밍 기법입니다. (OOP의 특징은 아래에서) 자바의 특징 자바의 특징은 JVM을 이용하기 때문에 운영체제에 독립적입니다. 객체지향언어이기 때문에 캡슐화, 상속, 다형성, 추상화의 특징을 가집니다. 컴파일시 데이터 타입이 결정되는 정적 타입 언어입니다. 컴파일 언어와 인터프리터 언어 2가지 동작방식을 복합적으로 사용하는 하이브리드 언어라고 불리기도 합니다. GC를 지원합니다. 기타 등등.. JAVA 접근제어자 java..

CS 면접 준비 2022.05.11

[OS] 9. 가상 메모리 관리 (쉽게 배우는 운영체제 9장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 요구페이징 1) 요구페이징 개요 ​ 요구페이징 이란 프로세스가 요청할 때 메모리에서 가져오는 방법을 가져오기 정책이라 하는데, 이렇게 사용자가 요구할 때마다 가져오는것을 "요구페이징"이라 한다 ​ ex) 포토샵 (대형 프로그램) 포토샵은 굉장히 큰 프로그램이기 때문에 모든 프로그램을 메모리에 올리면 비효율적이다. 따라서, 본 프로그램은 메모리에 올리고, 나머지는 "사용자가 필요할 때"마다 가져오는것이 효율적이다. (요구 페이징) ​ 2) 페이지 테이블 엔트리의 구조 ⇨사용자 프로세스는 물리메모리에 있거나, 스왑영역에 있다. ​ 가. 스왑영역에 있는경우 1. 요구 페이징에 의해 처음부터 스왑영역에 있는 경우 2. 메모리가 꽉차서 스왑아웃..

[OS] 8. 가상 메모리와 메모리 분할 방식 - 페이징, 세그먼테이션, 혼용 (쉽게 배우는 운영체제 8장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 가상 메모리의 개요 1) 가상 메모리의 개념 * 가상 메모리 : 크기가 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술 * 현재 메모리 관리의 가장 큰 특징 ⇨ 물리 메모리의 크기와 프로세스가 올라갈 메모리의 위치를 신경쓰지 않고 프로그래밍이 가능 ​ * 가상메모리 시스템 : 가상메모리 시스템이란, 물리메모리의 크기와 상관없이 프로세스에 커다란 공간을 제공하는 것 ​ 2) 가상메모리의 크기와 주소 가상 메모리의 모든 프로세스는 메모리의 어느 위치에 있든 0번지부터 시작하는 연속된 메모리 공간을 가진다. 논리주소랑 가상메모리의 차이점 1. 논리 주소 : 물리메모리의 주소공간에 비례한다. 2. 가상 주소 : 물리메로리 공간이..

[OS] 7. 물리 메모리 관리(쉽게 배우는 운영체제 7장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 메모리 관리의 개요 1) 메모리 관리의 복잡성 메모리란 : 유일한 작업공간이다. ⇒ 시분할 시스템에서는 메모리에 운영체제를 포함한 여러 프로그램이 올라감. ⇒ 따라서 메모리가 관리가 매우 복잡해지는데 이 메모리관리를 (메모리 관리 시스템 MMS) 가 한다. ​ 2) 메모리 관리의이중성 ⇒ 프로세스 입장과/ 관리자의 입장에서의 편리함이 충돌한다. 프로세스 입장 : 메모리를 독차지하고 싶음 관리자 입장 : 공간을 나누어 효율적으로 관리하고 싶음 ​ 3) 메모리 관리자의 역할 1. 가져오기(fetch), 배치(placement), 재배치(replacement) ⇒ 3가지 작업이 존재 ​ 가. 가져오기(fetch) : 프로세스와 데이터를 메모..

[OS] 6. OS 교착상태 - 데드락,데드락 조건, 데드락 해결 방법 (쉽게 배우는 운영체제 6장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 교착 상태의 정의 1) 교착상태란 - 2개 이상의 프로세스가 다른 프로세스의 작업이 끝기만을 기다리는 것을 말한다. - 시스템이 작동하다가 자연스럽게 발생하므로 운영체제가 강제로 해결해 주어야 한다. ​ 2) 교착상태의 발생 1. 시스템 자원 2. 공유자원 3. 응용프로그램 ⇒ 위 3가지를 사용할 때 발생한다. ​ 1. 시스템 자원 - 교착상태는 공유할 수 없는 자원을 사용할 때 발생한다. - 이는 동시에 같이 사용할 수 없는 시스템 자원을 할당받은 후 양보하지 않는 경우를 의미한다. ex) 스캐너, 프린터, CD레코드 ​ 2. 공유 변수 - 임계구역에서 교착상태가 발생하기도 한다. ​ 3. 응용 프로그램 - 데이터 베이스같은 응용프로..

[OS] 5. 프로세스 동기화 (쉽게 배우는 운영체제 5장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 프로세스간 통신 프로세스 통신 개념 - 프로세스 통신이란, 동시에 실행되는 프로세스끼리 데이터를 주고받는 작업 ​ 1) 프로세스 간 통신의 종류 1. 프로세스 내부 데이터 통신 : 하나의 프로세스 내에 2개이상의 스레드가 존재하는 경우 ⇒ 내부스레드는 "전역변수"나 "파일"을 이용하여 통신함 ​ 2. 프로세스간 통신 : 여러 프로세스끼리 통신 ⇒ 운영체제가 제공하는 파이프를 이용하여 통신 ​ 3. 네트워크를 이용한 데이터 통신 (컴퓨터) : 소캣을 이용하여 통신한다. 2) 프로세스간 통신의 분류 통신 방향에 따른 분류 1. 양방향 통신: 데이터를 동시에 양방향으로 전송할 수 있는 구조 2. 반양방향 통신: 양방향으로 전송할 수 있지만 ..

[OS] 4. CPU 스케줄링 알고리즘 (쉽게 배우는 운영체제 4장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 스케줄링의 분류 스케줄러란 - CPU 스케줄러 또는 프로세스 스케줄러라 하며, - 프로세스가 생성된 후 종류될 때 까지 모든 상태변화를 조정하는 것 ​ 1) 고수준 스케줄링 - 가장 "큰 틀" 에서 이루어지는 CPU 스케줄링 ( = 장기 스케줄링, 작업 스케줄링, 승인 스케줄링) ​ - 시스템 내의 "전체 작업 수" 를 조절하는 것 ​ 2) 저수준 스케줄링 - 가장 "작은 단위"의 스케줄링 - 프로세스의 상태를 관리 ​ 3) 중간수준 스케줄링 - "중지" 와 "활성화" 로 전체 시스템의 활성된 프로세스 수를 조절하여 시스템의 과부화를 방지한다. ​ 스케줄링 목적 ⇨ 6가지 : 공평성, 효율성, 안정성, 확장성, 반응시간의 보장, 무한 ..

[OS] 3. 프로세스와 스레드 (쉽게 배우는 운영체제 3장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 1. 프로세스의 개요 1)프로세스 개념 * 프로세스 : 실행중인 프로그램 - 프로그램이 메모리위에 올라가면 프로세스가 된다. (실행) ​ ⇒ 프로그램 -> 프로세스 ​ 2) 프로그램에서 프로세스로의 전환 - 프로세스 : 컴퓨터 시스템의 작업 단위, 태스크(Task) 라고도 함 ​ 프로그램이 프로세스가 되는 과정 가. OS가 프로그램을 메모리에서 가져온다. 나. 동시에 작업지시서를 작성한다. (프로세스 제어블럭) ->필수 ​ 다. 프로세스 제어블럭에는 다양한 정보가 들어있다. ​ 프로세스 제어블럭( in 정보 ) 가. 프로세스 구분자 : 프로세스 ID ​ 나. 메모리 관련 정보 - 프로세스가 원래 메모리의 어디에 저장되어있는지를 알아야 한다...