본문 바로가기

Knowledge47

[CS] 인터럽트란? 컴퓨터구조 운영체제 내용 중 인터럽트 란 것에 대해 알아보자. 인터럽트는 CPU 가 특정 기능을 수행하는 도중 다른 일을 처리하고자 할 때 사용하는 기술이다. 예를 들어, 내가 어떤 일을 하고 있는데 다른 일을 해달라고 누군가 와서 요청하는 상황이라고 생각하면 된다. 컴퓨터가 1개의 CPU를 사용한다고 가정한다. CPU 가 1개이면 하나의 일 밖에 처리할 수밖에 없으므로, 다른 우선 순위가 급한 일을 처리해야 할 때 대처할 수 있는 방안이 필요하다. 컴퓨터와 주변기기(키보드 등) 과 소통을 하는데 이것을 I/O(입출력) 이라고 한다. 키보드를 누르면 누른 코드값이 버퍼에 입력되어 CPU 에 인터럽트가 발생하게 된다. 인터럽트의 종류는 내부와 외부로 나뉜다. 내부 인터럽트 1. 하드웨어 고장 ex ) 컴퓨.. 2022. 12. 22.
[CS] JVM 이란? Java Virtual Machine 은 OS 에 종속받지 않고 CPU가 Java를 인식 , 실행 할 수 있게 하는 가상 컴퓨터이다. 스택 기반으로 동작하며, GC 를 통해 자동적인 메모리 관리를 해준다. Java 는 OS 에 종속적이지 않기 때문에, 실행시키기 위한 무언가가 있어야 한다. 그것이 JVM 이다. Java 소스코드는 (.java) CPU 가 인식하지 못하므로 기계어로 컴파일을 해줘야 한다. JVM 이라는 가상머신을 거쳐 OS 에 도달하기 때문에 OS 가 인식하는 기계어로 바로 컴파일 되는게 아니라, JVM 이 인식할 수 있는 Java bytecode(.class) 로 변환하게 된다. Java Compiler 가 .java 파일을 .class 라는 Java bytecode로 변환시킨다. 자바.. 2022. 12. 17.
[CS] Spring MVC 이란? MVC 란 무엇일까? 웹 애플리케이션 개발을 위한 MVC 패턴 기반의 프레임워크이다. MVC는 모델, 뷰, 컨트롤러로 이루어져있다. MVC 패턴을 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리할 수 있다. 모델(Model) - 데이터 - 데이터를 저장한다. - 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 관리한다. - DAO ( 데이터 접근 객체 ) 클래스 , Service 클래스에 해당된다. ex ) 상품 목록, 주문 내역 등등 뷰 (View) - 모델이 처리한 데이터를 가지고, 사용자에게 출력할 화면을 만든다. - 생성된 화면은 브라우저가 출력한다. ex ) .JSP 파일 컨트롤러 (Controller) - 클라이언트의 요청을 받았을 때, 그 요청을 실제로 수행하는 모델을 호출한다. .. 2022. 12. 16.
[CS] 스케줄링 알고리즘 이전 시분할 관련한 포스팅에 이어 CPU 스케줄러에 대해 알아보자. 먼저, 현대 운영체제에서는 선점형 방식을 사용하고 있다. 이유는 프로세스가 CPU를 독점하지 못하게 할 수 있어 효율적으로 운영이 가능하기 때문이다. 스케줄링 알고리즘에 따라 프로세스에게 해야 하는 일을 스레드 단위로 CPU에 할당 하는 것을 의미한다. 해당 알고리즘의 목표는 프로세스가 효율적으로 작업될 수 있도록 하는 것이다. 1. CPU 이 최대한 일을 할 수 있게. 2. 주어진 시간에 많은 일을 하도록. 3. 준비 큐에 있는 프로세는 적게. 4. 응답시간은 짧게. CPU 스케줄링 알고리즘의 종류로는 크게 비선점형과 선점형 방식이 있다. 두가지의 차이는 프로세스가 CPU 를 점유하고 있을 때 가로챌수 있는지 없는지에 대한 차이이다. .. 2022. 12. 13.
[CS] 시분할 시스템이란? 프로세서(CPU) 가 1개라고 가정했을 때, 여러개의 스로세스는 차례대로 실행되어야 한다. 즉, 프로세서 1개당 1개의 명령어만 실행할 수 있다. 이에 프로세서는 시분할 시스템을 사용해서 프로세스 간에 특정시간을 배정한다. 특징 1. 프로세스 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터의 CPU 시간을 분할해 나눠준다. 2. 다중 프로그래밍 환경에서 하나의 CPU를 나누어 쓰는 방식이다. 3. 아주 짧은 시간 간격을 두고 여러개의 프로그램을 전환하면서 실행하므로 동시에 실행되는 것처럼 느껴진다. 4 .프로그램의 실행을 전환하는 것은 OS(운영체제)가 담당하는 것이 특징이다. 2022. 12. 12.
[CS] Overriding 과 Overloading의 차이점 오버라이딩(Overridng) : 부모 클래스의 메서드를 재정의 하는 것 오버로딩(Overloading) : 메서드 이름은 동일하지만, 매개변수(인자)를 다르게 하는 것을 의미한다. 예제로 알아보는 것이 가장 좋다. 오버라이딩의 예 class Parent { String name; String age; public void info() { System.out.println("이름은" + name+ ", 나이는 " + age); } } class Son extends Parent { String home; // info 메서드 재정의 public void info() { System.out.println("집은 " + home); } } public class Main { public static void.. 2022. 12. 9.
기술면접 주요질문 - 공개X 보호되어 있는 글 입니다. 2022. 12. 9.
[CS] 프로세스의 구조 프로세스의 구조는 code, data , heap , stack 으로 나뉜다. code 는 개발자가 작성한 컴파일 된 코드 - 실행 명령을 포함하는 코드가 들어가는 영역 - 읽기 전용 영역 ( 코드를 변경할 수 없다 ) data 는 전역변수 저장 - 프로그램이 사용하는 데이터를 저장하는 공간 - static (전역변수) 값을 참조한 코드는 컴파일이 완료되면 data 영역의 주소값을 가리킨다. heap 은 동적으로 할당된 데이터가 저장 - 런타임(프로그램 실행) 때 결정된다 - 객체가 생성되는 영역이며, GC 에 의해 정리된다. stack 은 함수 실행을 위한 지역변수 저장 - 프로그램이 실행될 때 자동으로 사용하는 메모리영역 - 함수 호출 시 생성되며 함수가 끝나면 반환된다. 2022. 12. 6.
[CS] 인덱스(Index) 란? 데이터베이스에서 인덱스를 사용하는 이유는 검색 기능을 향상 시키기 위함입니다. 실생활에서 책에 있는 목차 라고 생각할 수 있습니다. 책에서 원하는 카테고리 및 정보를 페이지 번호를 확인해 찾아가듯이, 원하는 데이터를 먼저 찾고 저장되어 있는 주소로 찾아갑니다. 인덱스의 설정기준은 어떤것이 좋을까요? 설정기준은 cardinality(카디널리티)가 큰것을 사용합니다.카디널리티는 고유값이 많은 것이라고 이해했습니다. 쉽게 말하면, 엑셀에서 필터를 걸었을 때 보기의 수가 많은 것입니다.예로 아래의 표를 보면 주민등록번호가 설정기준이 됩니다. 팀이름 닉네임 주민번호 A팀 홍길동 111112-1 A팀 둘리 111113-1 A팀 홍길동 111114-1 B팀 나길동 111115-1 B팀 다길동 111116-1 B팀 둘.. 2022. 12. 4.