본문 바로가기

일상 차곡차곡/취업

개발자 기술 면접 준비 (작성 중)

* 해당 포스팅은 웹 개발자 기술 면접 준비를 하면서, 인터넷 검색을 통해 작성한 자료입니다. 틀린 부분이 있다면 댓글로 알려주시길 바랍니다!

 

객체지향 vs 절차지향

절차지향 프로그래밍

  • 순차적인 처리를 중요시하는 프로그래밍 기법이다.
  • 컴퓨터의 처리구조와 유사해 실행속도가 빠르다.
  • 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다.
  • 대표 언어 - C언어

객체지향 프로그래밍

  • 실제 세계의 사물들을 객체로 모델링하여 개발을 진행하는 프로그래밍 기법이다.
  • 절차지향 언어보다 실행속도가 느리다.
  • 3대 특성 : 캡슐화, 상속, 다형성
  • 코드의 재활용성이 높으며, 디버깅이 쉽다.
  • 대표 언어 - JAVA

List / Set / Map

리스트

  • 순서가 있고 중복을 허용 한다.
  • 인덱스로 원소에 접근이 가능하다
  • 크기가 가변적이다
  • LinkedList, ArrayList

Set

  • 데이터의 집합이며, 순서가 없고 중복된 데이터를 허용하지 않는다
  • 인덱스가 따로 존재하지 않기 때문에 iterator를 사용한다
  • 빠른 검색 속도를 가진다.
  • HashSet, LinkedHashSet, TreeSet

Map

  • key-value 형태로 데이터를 저장한다.
  • key에 대한 중복이 없으며 순서를 보장하지 않는다.
  • 뛰어난 검색 속도를 가진다.
  • 인덱스가 따로 존재하지 않기 때문에 iterator를 사용한다
  • HashMap, HashTable, LinkedHashMap, TreeMap
요약
- List는 데이터가 순서대로 저장되며 중복을 허용한다
- Set은 순서가 보장되지 않고, 데이터의 중복을 허용하지 않는다
- Map은 순서가 보장되지 않고 key의 중복은 허용하지 않지만 value의 값의 중복은 허용된다