[220914 - TIL] 기술면접 스터디, 원티드 프리온보딩 프로젝트

Dongwoo Kim·2022년 9월 14일
0

TIL / WIL

목록 보기
54/112

1. 기술면접 스터디

질문


  1. Stack과 Queue 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요.
  2. Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요.

준비 답변


  1. Stack 쌓는다 단어의는 의미처럼 데이터를 밑에서부터 쌓는 방식으로 저장하는 자료구조입니다. 때문에 가장 최근에 저장된 데이터를 top이라는 포인터가 가리키게되고 데이터를 추가하는 push 이라는 연산을 통해 top이 가리키는 데이터 위에 새로운 테이터를 추가하고 top이 방금 추가한 데이터를 가리키게 만듭니다. 삭제하는 경우에도 pop이라는 연산을 통해 top이 가리키는 데이터를 삭제하고 이전 데이터를 가리키게 됩니다. 즉 후입선출의 특징을 가집니다.
    이와 반대로 queue는 선입선출의 특징을 가집니다. 먼저 head, tail이라는 데이터의 첫부분과 끝부분을 가리키는 포인터가 존재하고 가장 먼저 추가된 데이터를 head, 가장 나중에 추가된 데이터를 tail이 가리키게 됩니다. 그리고 데이터를 추가하는 경우 push 연산을 통해 데이터의 가장 끝부분인 tail 뒷부분에 추가하게 되고 tail이 그 데이터를 가리키게되고, 삭제하는 경우에는 head가 가리키는 데이터를 삭제하고 이 이전 데이터를 가리키게 됩니다.
  2. 우선 Array, Linked list 모두 여러개의 데이터를 나열하기위해 사용하는 자료구조입니다. Array는 선언과 동시에 크기가 정해지는 자료구조로 특징으로는 각각의 요소에 인덱스를 통해 바로 접근할 수 있다는 장점이 있지만 반대로 요소들 사이에 데이터를 삽입하거나 삭제해야하는 경우 연산비용이 많이 들게됩니다.
    Linked list는 사전에 데이터의 크기가 정해지지않는 자료구조로 데이터를 삽입하거나 삭제하기에 용이하지만 반대로 데이터에 접근하기위해서는 순차적으로 탐색해야하기 때문에 비용이 Array에 비애 많이 들게 됩니다.

2. 원티드 프리온보딩 - 프로젝트 구현

📄 fruites_store_service - [2] 구현

📈 진행상황

완료


  • 유저, 상품, 주문, 결제 모델링
  • 유저 CRUD 기능 구현
  • 상품 CRUD 기능 구현
  • 주문 CRUD 기능 구현
  • 결제 CRUD 기능 구현
  • 유저 기능 error 핸들링
  • 상품 기능 error 핸들링
  • 주문 기능 error 핸들링
  • 결제 기능 error 핸들링
  • 상품 CRUD 권한 핸들링
  • 주문 CRUD 권한 핸들링
  • 결제 CRUD 권한 핸들링

진행중


  • 상품 재고, 상태 관리
  • 주문, 결제 상태 관리
  • Test 코드 작성
profile
kimphysicsman

0개의 댓글