728x90
반응형

1. TypeORM 및 Query builder 개념에 대해 설명해주세요.

TypeORM은 Node.js에서 관계형 데이터베이스를 사용하는 데 사용되는 ORM입니다. 
ORM은 객체 지향 프로그래밍 언어와 
관계형 데이터베이스 간의 매핑을 제공하는 소프트웨어 도구입니다.
Query Builder는 TypeORM의 기능 중 하나로 SQL 쿼리에 대한 깊은 이해없이
데이터베이스에 대한 복잡한 쿼리를 작성할 수 있습니다.

 

🔥꼬리질문🔥

< N+1 문제에 대해 설명해주세요.  >

N+1 문제는 데이터베이스 쿼리 성능 문제로, 1번의 쿼리로 N건의 데이터를 가져왔는데, 
관련 컬럼을 얻기 위해 쿼리를 N번 추가로 수행하는 문제를 말합니다. 
이 문제는 쿼리결과 건수마다 참조 정보를 얻기 위해 건수만큼 반복해서 쿼리를 수행하게 되는 경우 발생합니다.

N+1 문제는 성능에 큰 영향을 줄 수 있기 때문에 해결하는 것이 중요합니다. 
해결 방법은 연관된 데이터를 한 번에 조회하는 방법입니다. 
예를 들어 게시물 엔티티를 조회할 때, 댓글 엔티티를 조인하여 한 번에 조회하는 방식으로 구현할 수 있습니다.
다른방법으로는 Fetch Join은 엔티티를 조회할 때 연관된 엔티티를 미리 조회하는 방법입니다.

 

2. JWT와 세션과 쿠키의 차이점을 설명해주세요.

쿠키는 클라이언트에 저장되는 작은 데이터 파일입니다. 
서버가 클라이언트에게 쿠키를 전송하면, 클라이언트는 이후 요청 시 
쿠키를 함께 전송하여 서버가 클라이언트를 식별할 수 있도록 합니다.

세션은 서버에서 클라이언트의 상태 정보를 저장하는 기술입니다. 
세션은 쿠키와 달리 서버에 저장되며, 클라이언트는 세션 ID를 쿠키에 저장하여 서버와 통신합니다. 
서버는 세션 ID를 통해 클라이언트의 상태 정보를 식별합니다.

JWT는 토큰 기반 인증 방식으로, 서버가 클라이언트에게 토큰을 발급하고 클라이언트는 
이후 요청 시 토큰을 함께 전송하여 서버가 클라이언트를 식별할 수 있도록 합니다. 
JWT는 헤더, 페이로드, 서명으로 구성되며, 
페이로드에는 클라이언트의 정보가 포함될 수 있습니다.

세 가지 방식의 차이점은 저장 위치와 보안성에 있습니다. 
쿠키는 클라이언트에 저장되며 보안성이 낮습니다. 세션은 서버에 저장되며 보안성이 높습니다. 
JWT는 클라이언트에 저장되지만, 서명을 통해 보안성을 유지합니다..

 

🔥꼬리질문🔥

< 엑세스토큰과 리프레쉬 토큰에 대해 간략하게 설명해주세요.  >

액세스 토큰은 서버에 대한 일시적인 액세스 권한을 부여하는 데 사용됩니다. 
서버에 리소스에 대한 액세스를 요청할 때마다 클라이언트는 액세스 토큰을 전송합니다. 서버는 토큰을 확인한 다음 요청을 승인하거나 거부합니다.

리프레시 토큰은 새 액세스 토큰을 요청하는 데 사용됩니다. 
액세스 토큰이 만료되면 클라이언트는 리프레시 토큰을 사용하여 새 액세스 토큰을 요청할 수 있습니다. 서버는 토큰을 확인한 다음 새 액세스 토큰을 발급합니다.

액세스 토큰은 짧은 시간 동안만 유효하고 리프레시 토큰은 더 오랜 시간 동안 유효합니다. 
이를 통해 클라이언트는 서버에 리소스에 대한 지속적인 액세스 권한을 유지하면서 액세스 토큰을 자주 새로 고칠 필요가 없도록 할 수 있습니다.

728x90
반응형

+ Recent posts