신입 개발자 면접 질문 정리
·
개발자 면접 질문 정리
기술 면접 질문Call by reference란 무엇이고 보통 어떻게 쓰이나요?💡call by reference는 함수가 인수를 전달할 때 사용되는 방식 중 하나로, 메모리 주소를 전달해 값이 아닌 변수의 참조를 전달하는 방식입니다.대표적으로 사용되는 경우로1) 함수 내부에서 여러 개의 값을 반환해야 할 때,2) 함수 호출 시 매우 큰 데이터 구조를 전달해야 할 때,3) 전역 변수를 변경하거나 수정해야 할 때가 있습니다.Call by value (값에 의한 호출)는 메소드에 변수를 전달할 때, 해당 변수의 값이 복사되어 메소드 내에서 사용됩니다. 따라서 메소드 내에서 변수의 값을 변경하더라도 호출자의 변수는 변경되지 않습니다. 스프링에서는 메소드 호출 시 일반적으로 Call by value 방식을 따릅..
[MAC] 터미널 MySQL bin 폴더로 이동하는 법
·
막 저장하는 모르는 부분들/terminal
터미널에서 MySQL을 실행하려는데 안되는 이유를  보니 bin폴더로 잡혀 있지 않고가끔 뜬금없이 MacBook-Air로 경로가 잡혀있을 때가 있다.cd /usr/local/mysql/bin입력하면 bin 폴더로 이동한다
[항해99 취업 리부트 코스 학습일지] 1주차 학습 일지
·
항해 학습 일지
보호되어 있는 글입니다.
10. 콘텍스트 스위칭
·
CS
콘텍스트 스위칭을 이해하려면 인터럽트를 알아야 한다 인터럽트: 입출력 관련 이벤트가 발생하거나 예외 상황이 발생할 때 이에 대응할 수 있게 CPU에 처리를 요청하는 것 인터럽트가 발생하는 경우 입출력이 발생할 때 CPU 사용 시간이 만료되었을 때 자식 프로세스를 생성할 때 CPU는 하나의 프로세스만 처리할 수 있으므로 멀티 프로세스를 처리하려면 CPU 스케줄러에 의해 인터럽트가 발생하며 콘텍스트 스위칭이 이루어진다 콘텍스트: CPU가 처리하는 프로세스의 정보를 의미 콘텍스트 스위칭: 멀티 프로세스 환경에서 CPU가 처리 중인 프로세스의 정보를 바꾸는 것 처리 중인 프로세스 P1, 다음에 처리해야 하는 프로세스를 P2라고 가정 CPU가 P1을 처리하던 중 운영체제에 의해 인터럽트가 발생 P1은 유휴 상태(..
9. 멀티 프로세스와 멀티 스레드
·
CS
멀티 프로세스와 멀티 스레드 개념을 이해하려면 동시성과 병렬성을 알아야 한다 동시성: 하나의 코어에서 여러 작업을 번갈아 가면서 처리하는 방식 cpu는 한 번에 하나의 작업만 처리할 수 있어 여러 작업을 조금씩 돌아가면서 처리한다 이 작업을 콘텍스트 스위칭이라고 한다 병렬성: CPU가 여러개(멀티 코어) 있어 각 CPU에서 각 작업을 동시에 처리하는 방식 물리적인 시간 관점에서 동시에 여러 작업이 처리된다 멀티 프로세스: 응용프로그램 하나를 여러 프로세스로 구성하는 것을 의미 멀티 프로세스 환경에서는 한 프로세스가 죽어도 다른 프로세스에 영향을 주지 않는다 그래서 응용 프로그램을 프로세스 하나로 구성하는 것보다 여러 개로 구성하는 것이 안정적이다 그러나 시간과 메모리 공간을 많이 사용한다는 단점이 있다 ..
8. 운영체제 - 프로세스 상태도
·
CS
프로세스 상태도 모든 프로세스는 CPU에 의해 생성되고 소멸하는 과정을 거친다 이 과정에서 프로세스는 생성(new), 준비(ready), 대기(waiting), 실행(running), 종료(terminated)라는 5가지 상태로 존재 프로세스의 상태 생성(new): 프로세스가 PCB를 가지고 있지만 OS로부터 승인을 받기 전 준비(ready): OS로부터 승인받은 후 준비 큐에서 CPU 할당을 기다림 실행(running): 프로세스가 CPU 할당받아 실행함 대기(waiting): 프로세스가 입출력이나 이벤트 발생을 기다려야 해서 CPU 사용을 멈추고 기다림 종료(terminated): 프로세스 실행을 종료함 프로세스는 한 상태에서 다른 상태로 다음과 같이 변화한다 생성 -> 준비 생성 상태의 프로세스가 ..
7. 운영체제 - 프로세스의 생성
·
CS
- 새로운 프로세스는 기존 프로세스에서 fork() 함수를 호출해 생성한다. - fork 함수에는 함수에는 함수를 호출한 프로세스를 복사하는 기능이 있다 - 이 때 기존 프로세스를 부모 프로세스, 복사된 프로세스를 자식 프로세스라고 한다 - 부모 프로세스에서 fork() 함수 호출시, 부모 프로세스는 자식 프로세스의 PID 값을, 자식 프로세스는 0을 반환한다 운영체제가 프로세스를 종료하는 경우 프로세스가 운영체제의 종료 서비스( exit() )를 호출해 정상 종료하는 경우 프로세스의 실행 시간 또는 특정 이벤트 발생을 기다리는 시간이 제한된 시간을 초과한 경우 프로세스가 파일 검색 또는 입출력에 실패하는 경우 오류가 발생하거나 메모리 부족 등이 발생하는 경우 부모 프로세스는 다음과 같은 경우에 자식 프..
6. 운영체제 - PCB(Process Control block)
·
CS
PCB(Process Control block): 프로세스 제어 블록, OS가 프로세스를 제어하기 위해 프로세스 정보를 저장하는 것. PCB의 저장 목록 프로세스의 현재 상태 PID(process ID): 프로세스를 나타내는 고유 아이디 부모 프로세스의 PID 다음 실행할 명령어의 주소인 PC(ProgramCounter, 프로그램 카운터) 프로세스의 우선순위 메모리 제한 포인터 열린 파일 목록 등등
5. 운영체제 - 프로세스와 스레드
·
CS
프로세스: 컴퓨터에서 실행 중인 하나의 프로그램을 의미 프로그램은 특정 작업을 수행하기 위한 명령어의 집합 os는 프로그램을 실행하면서 디스크에 저장된 데이터를 메모리로 로드 프로세스는 os로부터 독립된 메모리 영역(코드, 데이터, 스택, 힙)을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다 메모리 영역 스택(stack) 지역 변수, 함수의 매개변수, 반환되는 주소 값 등이 저장되는 영역 높은 주소 값에서 낮은 주소 값으로 메모리가 할당되며, 영역 크기는 컴파일 때 결정 됨 힙(heap) 사용자에 의해 동적 메모리 할당이 일어나는 영역 C언어에서 malloc()으로 할당되는 영역 낮은 주소 값에서 높은 주소 값으로 메모리가 할당 영역 크기는 런타임 때 결정 데이터 전역 변수, 정적 변수, 배..
4. 운영체제 - 커널과 시스템 콜
·
CS
커널(kernel): OS의 핵심 요소, 중요한 역할 수행 컴퓨터 하드웨어와 프로세스의 보안 자원 관리 CPU 스케줄링 메모리 관리 입출력 관리 파일 시스템 관리 하드웨어 추상화 운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널 모드와 사용자 모드로 나눈다. 커널모드 하드웨어에 직접 접근 메모리, CPU 같은 자원 사용 사용자모드 커널 모드의 자원에 접근할 수 없게 제한을 둠 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 함 시스템 콜: 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환 시스템콜을 사용하여 가능한 것들 프로세스..