。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

프로젝트/BleuAuction

[BleuAuction 리팩토링] 11/23(목) 백 기능 분배

quarrrter 2023. 11. 30. 20:47

기현오빠가 면접 보고와서 받은 질문을 공유해줬다. 

시간복잡도? / 오버로딩, 오버라이딩/ 정렬 알고리즘(버블, 퀵?) / 레디스 / 레디스 메세지 뭐에 대해 말해바라/

 

 

시간복잡도

  • 시간 복잡도란 크기 n의 모든 입력에 대해 걸리는 최대의 시간(최악의 경우)
  • 시간 개념보다는 알고리즘이 실행될 동작하는 연산의 횟수가 몇번인지 세는것

시간 복잡도가 작은 알고리즘일수록 실행 시간이 짧아지므로 효율적이다. 따라서, 시간 복잡도를 고려하여 알고리즘을 설계하고 최적화하는 것이 중요하다. / 공간 복잡도는 알고리즘이 결과를 도출하는 데 필요한 공간 값 

 

정렬 알고리즘

- n개의 숫자가 입력으로 주어졌을 때 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘 

선택 정렬 : 이름에 맞게 현재 위치에 들어갈 값을 찾아 정렬하는 배열 / 최소 선택 정렬(오름차순), 최대 선택 정렬(내림차순)

삽입 정렬 : 현재 위치에서 그 이하의 배열들을 비교하여 자신이 들어갈 위치를 찾아 그 위치에 삽입하는 배열 

버블 정렬 : 매번 두 개의 인덱스를 비교하여 정한 기준의 값을 뒤로 보내는 정렬. 

합병 정렬 : 분할 정복 방식으로, 두 개의 배열을 비교하여 기준에 맞는 값을 새 배열에 두고 증가시키며 끝날 때까지 정렬.

퀵 정렬 : pivot point를 하나 잡아 기준으로 작은 값을 앞으로, 큰 값을 뒤로 보냄. 

 

 

Redis(레디스)는 REmote DIctionary Server의 약자로 오픈소스(BSD licensed) DBMS
In-memory(인메모리) 데이터 저장소이며, Key-Value기반의 NoSQL DBMS
보통 DB, Cache(캐시), 메시지 브로커 등의 용도로 사용,
영속성을 지원하는 인메모리 데이터 저장소이다. 디스크가 아닌 램에 올려 사용하기 때문에 속도가 압도적으로 빠르다. 1시간 동안 100만건의 데이터베이스 조회가 발생한다고 가정해볼때 캐시 기능을 사용하게 되면 이미 캐시된 데이터이기 때문에 빠른 속도로 조회가 가능하게 된다. 레디스는 일반 데이터베이스와 달리 메모리를 사용하기 때문에 메모리 용량이 부족할 때가 많습니다.

 

 

 


블로그를 잘 정리해보자! 

생각하고 경험한 것 적자. 

면접 경험, 프로젝트 경험- 테마 나눠서 + 리팩토링 (어떤 식으로 생각해서 어떻게 했다)

 

[다음 회의까지 해올 것]

종원 - 멤버, 어테치 완료 store,pay 해야됨// 멤버 테스트 참고 - 레파지토리 테스트, h2

기현 - jwt 수정해오기

나 - 종원님한테 넘겼다가 다시 가져온 menu 컨트롤러 & 서비스 수정 후 테스트 코드 작성하기