🖍️ 전산학 지식 정리 QnA
Q. 알고리즘이란?
- 유한한 수의 단계로 문제를 해결하거나 계산을 수행하기 위한 일련의 지침
Q. 데이터 구조란?
- 데이터 구조는 효율적으로 액세스하고 수정 가능한 컴퓨터에서 데이터 구성하고 저장한 방법
Q. Big O 표기법?
- Big O 표기법은 입력 크기가 커짐에 따라 알고리즘의 시간 또는 공간 복잡도의 상한율
Q. 재귀란?
- 문제 해결을 위해 함수가 자신을 호출하는 프로그래밍 기술
Q. 객체 지향 프로그래밍의 기본 원칙은?
Q. 문서 객체 모델 (DOM) 은?
- 문서용 프로그래밍 인터페이스
- 페이지를 객체의 계층적 트리로 나타냄
- 개발자가 콘텐츠, 구조 및 스타일 수정 가능
Q. JS 에서 '==' 과 '===' 차이는?
- '==' 는 유형 강제를 수행하는 항등 연산자
- '===' 는 유형 강제가 없는 완전 항등 연산자
Q. JS 에서 이벤트 버블링이란?
- 이벤트가 가장 구체적인 요소에서 시작
- 덜 구체적인 요소로 위쪽으로 흐르는 HTML DOM 의 이벤트 전파 방법
Q. CSS 의 상자 모델은?
- 여백, 테두리, 패딩 및 콘텐츠 자체로 구성된 모든 HTML 요소가 모델링되는 방식
Q. 반응형 웹 디자인이란?
- 웹 페이지가 다양한 장치와 창 또는 화면 크기에서 잘 렌더링되도록 하는 웹 디자인 접근 방식
- 고려할 개념
- 유연한 레이아웃
- 상대 단위 (백분율 %, 뷰포트 너비 vw)
- 반응형 이미지 및 미디어
- 미디어 쿼리 (중단점)
- 모바일 우선 접근 방식
- 읽기 쉽고 유연한 텍스트
Q. 인터프리터 언어와 컴파일 언어의 차이?
- 인터프리터 언어는 런타임에 한 줄씩 실행
- 컴파일 언어는 실행되기 전에 기계어로 변환
Q. 함수형 프로그래밍이란?
- 불변성과 순수함수를 강조하면서 함수를 적용하고 구성하는 방법
Q. JS 에서 클로저란?
- 내부 함수가 외부 함수의 변수에 액세스할 수 있는 JS 기능
Q. 파이썬은 어떤 용도로 사용?
- Python 은 웹 개발, 데이터 분석, 인공 지능, 과학 컴퓨팅 등에 사용
Q. Java 의 상속 개념이란?
- 클래스가 다른 클래스의 속성과 메서드를 획득하는 메커니즘
Q. HTTP 란?
- HTTP 는 WWB 에서의 데이터 통신의 기초
Q. SSL / TLS 란?
- SSL / TLS 는 컴퓨터 네트워크를 통한 통신 보안을 제공하도록 설계된 암호화 프로토콜
Q. RESTFul API 란?
- RESTFul API 는 REST 아키텍처 스타일의 제약 조건을 따른 API
- RESTFul 웹 서비스와의 상호작용 허용
Q. 웹 기술 세션이란?
- 세션은 웹 애플리케이션을 방문하는 동안 사용자 요청 전반에 걸쳐 지속되기를 원하는 정보의 서버측 저장소
Q. 쿠키의 개념 설명
- 클라이언트 측에 저장되는 작은 데이터 조각으로 세션 관리, 개인화 및 추적에 사용
Q. SQL 이란?
- SQL 은 DB 에 데이터를 저장, 조작, 검색하는 표준 언어
Q. NoSQL 이란?
- NoSQL 은 SQL DB 의 전통적인 DB 구조를 따르지 않는 DB 관리 시스템의 범주
- 대규모 데이터 세트 및 실시간 웹 애플리케이션에 자주 사용
Q. 관계형 DB 와 비관계형 DB 차이점은?
-
관계형 DB
- 구조화되어 있으며 데이터를 정의하고 조작하기 위해 SQL 사용
-
비관계형 DB
- 구조화되지 않고 분산되어 있으며 구조화되지 않은 데이터에 대한 동적 스키마 가짐
Q. DB 의 ACID 속성은 무엇?
-
줄임말
- 원자성 (Atomicity)
- 일관성 (Consistency)
- 격리성 (Isolation)
- 내구성 (Durability)
-
DB 트랜잭션이 안정적으로 처리되도록 보장
Q. 데이터베이스의 정규화란?
- 중복성을 줄이고 데이터 무결성을 향상시키기 위해 DB 구조적으로 구성하는 프로세스
Q. 버전 관리란?
- 시간 경과에 따른 파일 또는 파일 집합의 변경 사항을 기록
- 나중에 특정 버전을 불러오는 시스템
Q. 애자일 방법론이란?
- 팀이 프로젝트를 여러 단계로 나누어 프로젝트를 관리 가능한 프로세스
- 모든 단계에서 이해관계자와의 지속적인 협업과 지속적인 개선 포함
Q. 마이크로 서비스란?
- 복잡한 애플리케이션이 API 를 사용하여 서로 통신하는 작고 독립적인 프로세스로 구성된 소프트웨어 아키텍처 스타일
Q. 지속적인 통합의 개념은?
- 지속적인 통합은 개발자가 정기적으로 코드 변경 사항을 중앙 저장소에 병합한 후 자동화된 빌드 및 테스트를 수행하는 소프트웨어 개발 방식
Q. 테스트 중심 개발(TDD) 란?
- 코드가 수행할 작업을 지정하고 검증하기 위해 테스트 사례를 개발하는 소프트웨어 개발 접근 방식