TIL

75일차 TIL ( 면접 카타 8일차 )

ohs020105 2025. 2. 20. 19:30

15. Stack과 Queue를 비교설명해주세요.


답: Stack은 후입선출(LIFO, Last In Out) 방식의 자료구조 입니다.
Queue(큐): 선입선출(FIFO, First In First Out) 방식의 자료구조 입니다.

동작방식으로는 Stack은 Insert할때 push(), Remove 할때 pop() 메서드를 사용합니다. 접근 방식으로는 마지막에 들어온 요소부터 제거합니다. 
Queue은 insert 할때 enqueue(), Remove는 dequeue() 메서드를 사용하고 , 처음에 들어온 요소부터 제거 합니다.
실제 사용 사례로는 
1. Stack:
-함수 호출 스택(재귀 호출)
-실행 취소 (Undo) 기능
-웹 브라우저의 뒤로 가기 (Back버튼) 

2. Queue:
-작업 스케줄링 (운영체제의 프로세스 관리)
-프린터 대기열
-네트워크 요청 처리

차이점으로는
-Stack은 후입선출(LIFO), Queue는 선입선출(FIFO) 방식
-Stack은 한쪽(top)에서만 삽입/삭제, Queue는 앞(front)에서 제거,뒤(rear)에서 삽입
-Stack은 실행 취소나 재귀 호출 관리에 유용, Queue는 작업 스케줄링에 적합합니다.


16. 그래프(Fraph)와 트리(Tree)를 설명하고, 둘의 차이점을 설명해주세요.

답: 
그래프(Graaph): 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조로, 여러 개의 노드가 다양한 방식으로 연결될 수 있습니다.
트리(Tree): 그래프의 한 종류로, 사이클(Cycle)이 없는 연결 그래프(Acyclic Connected Graph)이며, 부모 - 자식 관계를 가집니다.

특징으로는 
우선 그래프의 구성입니다.
-구조 : 정점 과 간선으로 구성
-방향성 : 방향 그래프와 무방향 그래프가 있음
-순환 구조 : 순환 가능
-루트 : 없음
-연결성 : 연결되지 않은 그래프도 존재 가능

다음으로는 트리의 구성입니다.
-구조 : 루트 노드를 가지며 부모-자식 관계를 형성
-방향성 : 항상 부모에서 자식 방햑으로 연결됨
-순환 구조 : 순환 없음
-루트 : 유일한 루트 노드 존재
-연결성 : 항상 연결됨 ( 하나의 컴호넌트 ) 

사용 사례입니다.
1. 그래프
- 소셜 네트워크( Facebook 친구 관계, Linkedln 네트워크)
- 네비게이션 시스템 ( 최단 경로 탐색 )
- 웹 페이지 링크 구조 ( 검색 엔진 크롤링 )

2. 트리 
- 파일 시스템 ( 디렉터리 구조 )
- 데이터베이스 인덱스 ( B-Tree, AVL Tree )
- HTML DOM(Document Object Model )

차이점을 설명하겠습니다.
- 트리는 그래프의 한 종류지만, 사이클이 없고, 계층적 구조(  부모-자식 관계)를 가짐.
- 그래프는 자유로운 연결이 가능하지만, 트리는 항상 하나의 루트에서 시작하여 분기됨.
- 트리는 일반적으로 검색, 계층적 데이터 표현에 적합하고, 그래프는 복잡한 관계 모델링에 적합함.


그 다음으로는 코드를 작성하면서 오류 났던거를 기록해보겠다.

 

프로젝트를 진행하면서 모듈에러는 수없이 봤지만 이렇게 강하게 모듈 오류를 불러오는건 못 봤다

우선 이게 어떤 오류냐면 다른 (1번모듈)에서 (2번모듈)에 가져와 사용하는데

service 파일에 이렇게 주입시켜서 사용할려고 하지만 오류가 발생하는것이다.

오류를 자세히 보면 모듈에서 import하는데 “너 모듈중에 undefind가 뜬다 잘 확인해봐라” 라는 내용이다.

 

실제로 모듈을 확인해보면 (테스트 위해서 주석처리해놈) 이렇게 export하는곳이나 아님 아예 export가 안되어 있어서 발생하는 오류다.

그동안 나는 그냥 모듈만 가지고 오면 그 모듈에 해당하는 repository나 , service는 마구마구 사용이 가능한 줄 알았다.

그래서 저렇게 수정을 하게 해준다면

 

 

 

이런식으로 서버가 정상적으로 작동이 되는걸 확인 할 수 있다.

 

이번 기회로 모듈에 대해서 좀 더 공부가 된 계기가 된 것 같다.

 

** 아 참고로 다른 entity에서 바로 가져와서 사용하는 경우도 있던데 그건 별로다.

 

왜냐하면 엔티티가 수정이 된다면 참고했던 파일로 가서 똑같이 수정을 해줘야 하지만 모듈을 import 해서 사용하게 된다면 export하는 모듈에서 수정이 완료되면 건들게 없다..! 개꿀

 

앞으로 사용하게 된다면 모듈을 최대한 활용해서 사용하는게 좋을 것 같다.

'TIL' 카테고리의 다른 글

77일차 TIL  (0) 2025.03.03
76일차 TIL ( 면접 카타 9일차 )  (0) 2025.02.21
74일차 TIL (면접 카타 7일)  (2) 2025.02.19
73일차 TIL ( 면접 카타 6일 )  (0) 2025.02.18
72일차 TIL (면접 카타 5일차 )  (1) 2025.02.17