[230221] 배열과 집합 연습문제 (1장 자료구조가 중요한 까닭)
1. 원소 100개를 포함하는 배열이 있을 때, 다음 연산에 걸리는 단계 수를 계산하기 읽기 : 1단계, O(1), 메모리 주소를 가지고 한번에 찾음 배열에 들어 있지 않은 값 검색 : 100단계, O(n), 없는 값을 임을 확인해야 하므로, 인덱스 0부터 99까지 모두 탐색 배열 맨 앞에 삽입 : 101단계, O(n), 100개의 원소를 모두 한칸씩 밀고, 인덱스 0에 삽입 배열 맨 뒤에 삽입 : 1단계, O(1), 인덱스 100에 삽입 배열 맨 앞에서 삭제 : 100단계, O(n), 인덱스 0을 삭제하고, 남은 99개 원소를 모두 한칸씩 이동 배열 맨 뒤에서 삭제 : 1단계, O(1), 인덱스 99 원소를 삭제 2. 원소 100개를 포함하는 배열 기반 집합이 있을 때, 다음 연산에 걸리는 단계 수를 ..
[기술면접 스터디][230221] OOP와 REST API
Q1. 객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고있는 원칙이나 키워드를 언급해주세요 객체지향 프로그래밍은 프로그램의 상호 작용을 객체 집합으로 표현하며, 객체 내부에 선언된 메서드를 활용하는 프로그래밍 방식을 말합니다. 다른 프로그래밍 패러다임에 비해 처리 속도가 느리고, 설계에 많은 시간이 소요됩니다. 객체지향 프로그래밍의 특징으로는 추상화, 캡슐화, 상속성, 다형성이 있습니다. 또, 설계 원칙으로는 단일책임원칙, 개방-폐쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙의 SOLID 원칙이 있습니다. OOP는 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식 설계에 많은 시간이 소요 처리 속도가 다른 ..