면접 요약 정리

기술 면접 준비 - 기초 CS 지식

JIN_Coder 2022. 11. 17. 18:05

- 객체지향 프로그래밍(OOP)
데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고,
객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법

    장점 : 코드재사용이 용이, 유지보수가 쉬움, 대형 프로젝트에 적합
    단점 : 설계시 시간과 노력이 필요

클래스 : 추상화를 거쳐 공통된 속성, 행위를 정의한 객체를 만들기 위한 메타정보
객체 : 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것

 

- 객체지향 프로그래밍 4가지 특성
추상화 : 공통된 상태, 행위를 파악하여 타입을 정의하는 것

캡슐화 : 상태와 기능을 결합시켜 묶는것
코드 재활용이 용이하고, 정보은닉을 목적으로 함

상속 : 부모 클래스의 속성과 기능을 그대로 이어 받아 사용하고, 일부분만 수정하여 다시 정의하여 사용

다형성 : 하나의 변수, 함수가 상황에 따라 다른 의미를 갖는 것
    오버라이딩 : 부모클래스의 메서드와 변수를 재정의
    오버로딩 : 같은 이름의 메서드의 인자 개수나 자료형에 따라 다르게 기능 하는것

 

 

- 함수형 프로그래밍

순수 함수의 조합으로 소프트웨어를 설계하는 방식을 말한다.

순수 함수란, 함수의 동작으로 인해 부수효과(메모리 값을 직접 수정하는 행위)가 발생하지 않는 함수

함수형 프로그래밍에서 모든 입력은 새로운 출력을 가지므로 부수 효과를 가지지 않는다.

 

 

- REST API

REST는 자원(resource), 행위(verb), 표현(representations)으로 구성된 api 아키텍처

URI를 통해 자원을 명시하고, GET, POST 등의 메서드를 통해 해당 자원의 행위를 정의한다.

REST 한 API는 api을 보고도 어떤 자원으로 어떤 기능을 하는지에 대한 추측이 가능하게 한다.

 

 

- MVC 패턴

모델(Model), 뷰(View), 컨트롤러(Controller)가 분리된 형태의 아키텍처

모델은 데이터 처리, 뷰는 사용자 인터페이스 처리, 컨트롤러는 비즈니스 로직 처리

세 가지가 결합된 형태에서는 애플리케이션의 확장이 어렵지만, 역할 별로 아키텍처가 분리가 되어있다면, 재사용 및 확장이 용이한 장점이 있다.

 

 

- TDD

테스트 주도 개발(Test Driven Development)

테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 작성하는 것

TDD 활용 개발 시 모듈화가 자연스럽게 잘 이루어지면서 개발이 진행되고, 리펙토링과 유지보수가 쉬워지는 장점이 있다.

 

 

- 쿠키와 세션

쿠키

Key - Value로 이루어진 데이터 형태

클라이언트의 로컬 스토리지에 저장하여 사용

크기 제한으로 많은 양의 데이터를 저장할 수 없음

보안이 취약한 단점(중요 정보들을 저장하면 좋지 않음)

 

세션

쿠키를 기반으로 하지만, 사용자 정보를 서버에 저장하여 사용

쿠키보다 보안이 강화되었지만, 아직도 보안에 취약한 편

서버에 세션 저장소를 추가로 운용하기 때문에 많은 양의 요청이나, 데이터 양이 많아질수록 서버에 부하가 발생함

 

'면접 요약 정리' 카테고리의 다른 글

기술 면접 준비 - 네트워크  (0) 2022.11.25
기술 면접 준비 - 데이터베이스  (1) 2022.11.16
기술 면접 준비 - JavaScript  (0) 2022.11.13
socket.io 정리  (0) 2022.10.28
쿠키, 세션, JWT 정리  (0) 2022.10.27