CS 상식 정리

marafo·2021년 1월 30일
0

∙ 함수 호출방식

1 ) call by value

함수 호출시에 메모리에 함수를 위한 임시 공간이 생겨서 지역변수가 할당되는 메모리 블록인 Stack Frame에 할당된다

2 ) call by reference

∙ 이벤트 리스너(Event Listener)

어떤 특정 이벤트를 정의하고 그 이벤트가 발생할 때까지 기다리다가 조건에 맞는 타이밍에 실행되는 함수이다. 이벤트 핸들러(Event Handler)라고도 하며 지정된 요소에서 생기는 이벤트가 곧 이벤트 리스너 함수이다.

∙ a href = "" title = "" target = ""

a 태그를 통해 다른 웹페이지, 문서로 이동할 수 있는데 그 중 href 속성은 링크에 해당하는 웹페이지, 즉 연결할 주소의 URL을 명시하는 역할이다.

title 속성은 해당 a 태그에 마우스 커서를 위치시켰을 때 링크에 대한 부연 정보를 보여준다.

target 속성은 a 태그에 대한 링크의 창을 열 때 어떻게 오픈할지 정의한다.

∙ OOP 언어의 상속 개념

상속은 클래스 간의 계층적 관계를 구성해서 높은 수준의 코드 재활용성을 제공한다. 부모 클래스로부터 프로퍼티를 상속 받는 자식 클래스(Child Class)라고 정의된다. 자식 클래스는 공통적으로 상위클래스의 프로퍼티를 쓰고 새로운 프로퍼티를 추가할 수 있다. 상속 받는 프로퍼티에 따라 단일 상속(single), 다중 상속(multiple)으로 나뉜다. 단, 파생 클라스가 상속을 받고 따로 프로퍼티를 추가하지 않아도 초기 생성자는 무조건 작성해야 한다.

∙ Debugger에서 Breakpoint

디버거는 사용자 애플리케이션이 의도하지 않은 오류를 일으킬 때 애플리케이션 내부를 탐색 파악하여 버그를 찾는데 도움을 준다. 특히 중단점이라 정의되는 Breakpoint를 통해 특정지점에서 실행을 멈추어 개발자가 버그의 지점을 알 수 있도록 해준다. 디버거 시작(F5 버튼) 후에 Breakpoint의 설정 지점(F9 버튼)에서 컨텍스트가 멈추고 1줄씩 실행(F10 버튼)하면 디버깅 동작 과정을 볼 수 있다.

∙ SSD, HDD 개념 및 속도 차이가 발생하는 이유

HDD(Hard Disk Drive)는 자성물질로 이루어진 디스크(플래터)가 회전 되어 데이터가 인식되는 비휘발성 메모리(전력 공급이 끊겨도 데이터 메모리기록 유지) 장치이다. 물리적 충격에 취약하고 데이터 손실의 가능성이 있다.

SSD(Solid State Drive)는 비휘발성 플래시 메모리이다. 반도체 트랜지스터 형태로 데이터를 저장해서 소음, 발열이 덜하고 충격에 강한 편이다. 데이터 입/출력, 부팅, 프로그램 로딩 속도가 굉장히 빠르다. 단 동일 가격이라면 저장용량이 HDD에 비해 작다.

SSD는 내부 복수의 플래시 메모리가 데이터를 나눠서 읽고 쓰는 차이점에서 HDD보다 더 빠른 속도를 갖는다. 또한 SSD 플래시 메모리의 검색 시간이 짧은데 비해서 HDD의 액세스 및 검색 시간은 플래터와 헤더의 물리적 움직임을 요구하므로 속도 차이가 발생한다.

∙ non-blocking

해당 실행 컨텍스트에서 I/O 작업을 진행하는 동안 대기하지 않고 유저 프로세스의 이어지는 작업을 처리한다. 즉 유저 프로세스가 받은 I/O 요청(System Call)을 커널에게 전달하면서 대기하지 않고 다음 작업을 실행한다. 이 원리에 따라 단일쓰레드 프로그래밍 언어의 비동기 처리 능력이 향상되었다.

∙ 라이브러리와 프레임워크의 차이

프레임워크는 사용자 application 개발을 위해 쓰이는 기본골격의 클래스와 인터페이스 체계이다. 사용자 정의 코드를 추가하여 application을 완성, 변형시킬 수 있다. 라이브러리는 골격보다는 원하는 함수를 구현할 수 있도록 개발된 특정 언어의 파생기능이다. 개발자가 자체적 흐름을 설계하고 자유도와 유연성을 원한다면 라이브러리를, 개발 속도를 원한다면 프레임워크를 쓸 수 있다.

∙ OOP 특징

추상화 : 어떠한 사물이나 현상을 설명할 때 목적에 부합하지 않는 부분을 삭제하고 필요한 부분을 고려한다. 특정 객체들의 공통된 속성들을 파악하여 정의하는 설계 기법.

캡슐화 : 클래스를 통해 객체를 정의할 때 꼭 필요한 속성이 아닐 때 은닉하여 감출 수 있다.

상속 : 부모 클래스로부터 자식 클래스가 여러 가지 속성을 상속받는다. 부모(상위) 클래스로부터 상속을 받으면 겹치고 중복되는 속성이나 코드를 줄일 수 있다.

다형성 : 부모 클래스로부터 속성을 상속 받은 자식 클래스가 재정의하여 객체를 정의할 때 유연함을 발휘할 수 있고 이를 오버라이딩이라 한다.

+) 캡슐화와 정보은닉의 차이

캡슐화 : 추상화, 변경 불가한 내부 데이터 보호를 위해 데이터(변수), 메서드를 캡슐처럼 하나로 감싸는 번들링

정보은닉 : 그 캡슐화된 클래스에서 목표한 프로퍼티에 숨기거나 접근 불가능하게 만드는 기법

∙ JSON - JavaScript Object 차이

JS Object : JS 엔진 메모리에 위치하는 데이터 구조.
JSON : 객체의 내용을 정의하는 text 파일의 종류(확장자 .json)

자바스크립트에는 JSON -> JS Object로 파싱할 수 있다.(JSON.parse())
그리고 JSON에서는 프로퍼티에 value 값 할당시 함수는 불가하며 key 값은 ""로 무조건 감싸야 한다.


참고

a 태그
https://aboooks.tistory.com/87

Debugger에서 Breakpoint
https://dojang.io/mod/page/view.php?id=806

SSD, HDD
https://namu.wiki/w/SSD
https://namu.wiki/w/플래시%20메모리
https://gbworld.tistory.com/1091
https://volttexture.tistory.com/entry/HDD-SSD-Nvme-속도-차이점과-장단점-비교
∙ 쉽게 배우는 운영체제 93p

non-blocking
https://ozt88.tistory.com/20
https://brainbackdoor.tistory.com/26

라이브러리와 프레임워크의 차이
https://penguingoon.tistory.com/242
https://juyeop.tistory.com/23

OOP 특징
https://victorydntmd.tistory.com/117

JSON - JavaScript Object 차이
https://victorydntmd.tistory.com/193?category=677321

OOP 특징
https://kkhipp.tistory.com/177

profile
프론트 개발자 준비

0개의 댓글