전체 글 280

프로세스 & 스레드

프로세스 : 프로그램을 메모리 상에서 실행중인 작업 스레드 : 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유 (메인 스레드 포함) 프로세스는 각각 별도의 주소공간 할당 (독립적) Code : 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data : 전역변수, 정적변수, 배열 등 초기화 된 데이터는 data 영역에 저장 초기화 되지 않은 데이터는 bss 영역에 저장 Heap : 동적 할당 시 사용 (new(), malloc() 등) Stack : 지역변수, 매개변수, 리턴 값 (임시 메모리 영역) 스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드 같이 생성 프로세스는 자신만의 고유 공간과 자..

기술면접 준비 2023.11.16

네트워크 ) 네트워크의 분류 , 네트워크 토폴로지 정의

네트워크 분류 LAN(Local Area Network) 근거리 통신망 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영 전송 속도가 빠르고 혼잡하지 않음 MAN(Metropolitan Area Network) 대도시 지역 네트워크 전송 속도는 평균 LAN보다는 더 많이 혼잡 WAN(*Wide Area Network) 광역 네트워크 전송 속도 낮음 MAN보다는 더 혼잡 규모 기반으로 본다면 LAN < MAN < WAN 으로 볼 수 있습니다 === 네트워크 토폴로지 혹은 네트워크 구성은 네트워크 성능을 결정하는 핵심 요소라 할 수 있습니다. 네트워크 토폴로지는 네트워크를 배치하는 방식으로, 링크와 노드 들이 어떤 식으로 배치되어 서로 연결되는지를 물리적으로 혹은 논리적으로 설명합니다. 네트워크가 배치되는 방식..

ComputerScience 2023.11.13

네트워크 ) OSI 7계층, TCP/IP 4계층 모델 그리고 OSI 7계층과 TCP/IP 4계층의 차이점

OSI 7계층 모델 OSI 7계층 모델은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 계층을 이렇게 나눈 이유는 통신이 일어나는 과정을 단계별로 파악하기 용이하기 때문이다. 특정 계층에서 이상이 생겼을 때 다른 계층은 놔두고 문제가 있는 계층만 고쳐서 문제를 해결할 수 있다. 하나씩 계층별로 살펴보도록 하자 물리계층 (Physical Layer) 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다. 사용되는 통신 단위는 비트(bit)이며, 0또는 1만 나타낼 수 있다. 단지 데이터를 전달만 할 뿐 전송하려는, 또는 받으려는 데이터가 무엇인지는 전혀 신경쓰지 않는다. 대표적인 장치로 통신 케이블, 리피터, 허브 등이 있다. 데이터 링크계층 (DataLink Layer..

ComputerScience 2023.11.13

함수형 프로그래밍은 무엇인가? 순수 함수와 고차 함수의 차이

함수형 프로그래밍(Functional Programming, FP)은 계산을 수학적 함수의 평가로 취급하고 상태 변경이나 변경 가능한 데이터를 피하는 프로그래밍 패러다임입니다. 이 접근 방식은 프로그램의 동작을 순수 함수로 구성함으로써 부수 효과(side effects)를 최소화하고 프로그램의 예측성과 투명성을 높이는 것을 목표로 합니다. 함수형 프로그래밍의 핵심 개념 중 두 가지는 '순수 함수(Pure Functions)'와 '고차 함수(Higher-Order Functions)'입니다. 순수 함수 순수 함수는 다음 두 가지 주요 특성을 가집니다: 입력에만 의존: 함수의 출력은 오직 입력 매개변수에만 의존하며, 외부 상태에 의존하지 않습니다. 즉, 같은 입력에 대해서는 항상 같은 출력을 반환합니다. 부..

ComputerScience 2023.11.09

프로그래밍 패러다임

목차 선언형과 함수형 프로그래밍 순수함수 고차함수 일급 객체 객체지향 프로그래밍 추상화 캡슐화 상속성 다형성 오버로딩 오버라이딩 OOP 설계 원칙 단일 책임 원칙 개방-폐쇄 원칙 리스코프 치환 원칙 인터페이스 분리 원칙 의존 역전 원칙 절차지향형 프로그래밍 프로그래밍 패러다임(programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론입니다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함숫값들의 연속으로 생각할 수 있게 해 줍니다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나누며, 선언형은 함수형이라는 하위 집합을 갖습니다. 또한, ..

ComputerScience 2023.11.09

운영체제란 무엇이고, 어떤 역할을 수행하는가? 부록 - 다른 분 답변

출처 : https://csg1353.tistory.com/69 면접 예상 질문 1. 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 답변 - 운영체제는 컴퓨터 시스템이 동작할 때, 이들 자원을 적절하게 사용할 수 있는 방법을 제공한다. 이는 현대의 정부와 유사하다. 정부 자체로는 유용한 기능을 제공하지 않지만, 유용한 작업을 할 수 있는 환경을 만드는 것이다. - 역할 1. 메모리 자원을 관리한다. 실행할 프로그램을 메모리에 적재하고, 실행되지 않는 프로그램을 메모리에서 삭제한다. - 역할 2. CPU 자원을 할당하여 프로그램들이 올바르게 실행되도록 관리한다. 이는 메모리에 적재되어 실행중인 프로세스를 관리하기 위해 CPU 스케줄링 알고리즘 등을 사용하여 최대한 많은 프로세스들이 공정하게 자원..

기술면접 준비 2023.11.09

운영체제란 무엇이고, 어떤 역할을 수행하는가? 3편 면접 질문 답변하기

운영체제 개요 & 컴퓨터 시스템 동작원리 면접 예상 질문 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요. 시분할 시스템에 대해서 설명해주세요. 다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요. 대화형 시스템(interactive system)에 대해서 설명해주세요. 다중 처리기 시스템(multi-processor system)에 대해서 설명해주세요. 시스템 콜에 대해 설명해주세요. 커널에 대해 설명해주세요. 커널모드에 대해 설명해주세요. 유저모드에 대해 설명해주세요. 폴링에 대해 설명해주세요. 인터럽트에 대해 설명해주세요. DMA에 대해 설명해주세요. 동기식 I/O에 대해 설명해주세요. 비동기식 I/O에 대해 설명해주세요. 면접 답변 0. 운영체제 답변..

기술면접 준비 2023.11.09

운영체제란 무엇이고, 어떤 역할을 수행하는가? 2편 용어 정리

컴퓨터 운영체제 OS 관련 용어 정리 커널 (Kernel) 사용자의 조작을 처리하여 OS가 움직일 수 있도록 하는 OS의 핵심 부분 ​ 쉘 (Shell) 사용자의 지시를 해석해서 커널에게 전달하는 것으로 화면에 보이는 사용자 인터페이스 ​ CUI (Character User Interface) 키보드의 입력 내용이나 계산 결과를 디스플레이상에 문자로 표시, 쉘은 OS 조작을 위한 명령이고 영숫자 문자열을 사용 ​ GUI (Graphic User Interface) 사용자 입장에서 좀 더 편하고 알기 쉽게 그래픽으로 표현되어 있는 인터페이스로 디스플레이 상의 창, 메뉴, 버튼과 같은 그래픽을 키보드나 마우스로 조작, Windows 탐색기는 'Windows' OS의 쉘로, 바탕화면의 표시나 파일 검색 등을 ..

기술면접 준비 2023.11.09

운영체제란 무엇이고, 어떤 역할을 수행하는가? 1편

컴퓨터 소프트웨어를 공부하는데 있어서 가장 기본이 되며 가장 먼저 알아보아야 할 단어죠. 바로 OS에 대해서 포스팅 하려고 합니다. ​ 컴퓨터를 구매 또는 사용하면서 많이들 들어본 단어 'Windows'나 'Unix', 'Linux', 'Mac OS' 그리고 스마트폰을 사용하면서 들어본 'iOS', 'Android'가 많이 사용하시는 대표적인 OS 입니다. ​ OS란 'Operating System'의 약자로 운영 체제라고도 하는데, 컴퓨터를 효율적으로 관리하고 제어하며 작동하기 위해 만들어진 소프트웨어를 말합니다. 컴퓨터 전체를 관리 및 제어하기 때문에 컴퓨터를 사용하기 위해서 먼저 설치를 해야하는 기본 소프트웨어입니다. 컴퓨터 하드웨어라는 플랫폼 위에 설치가 되며 이 OS가 설치되어야 다른 응용 프로..

기술면접 준비 2023.11.09

프론트엔드에서 MV* 아키텍쳐란 무엇인가요?

프롤로그 MVC, MVVM, MVI 아키텍쳐가 어쩌고 저쩌고... 소프트웨어를 공부하다 보면 한번쯤은 MV~로 시작되는 무슨 무슨 아키텍쳐라는 말을 들어본 적이 있을 겁니다. 실제로 프로그래밍을 할 때에는 중요하지 않아 보이는데 이따금씩 눈에 밟혀 왠지 알고 가야할 것 같은 개념인 아키텍쳐와 MVC에 대해 웹 프론트엔드 개발자 관점에서 알아야 할 내용들을 정리해보았습니다. 지난 글에도 언급했지만 최대한 풀어서 쉽게 쓰는 방향으로 글을 쓰려하고 있고 그런만큼 비약이 있을 수 있으니 여기서 얻은 이해를 바탕으로 검색을 통해 실제의 모습도 꼭 확인하시기 바랍니다. 이번 글의 목차는 다음과 같습니다. 아티텍쳐란 무엇일까요? 웹 프론트엔드 아키텍쳐 이야기 현대 웹프론트엔드의 아키텍쳐 방향성 1. 아키텍쳐란 무엇일..

ComputerScience 2023.11.08