[기술면접] 221214

박채은·2022년 12월 14일
0

회고록

목록 보기
4/8

페어분 질문

Q1. 재귀 함수와 반복문의 차이점에 대해 설명해주세요.

  • 보통 어느 경우에 재귀 함수를 사용하나요?
  • 재귀함수의 단점

Q12. Foreign Key와 Primary Key에 대해 설명해주세요.

Q16. DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요.

나의 질문

Q8. DNS의 정의와 DNS가 필요한 이유에 대해 설명해주세요.

DNS는 Domain Name System로, 사람이 읽을 수 있는 도메인 이름을 IP 주소를 변환해주는 시스템입니다.

만약 DNS가 없다면, 우리는 사이트의 IP 주소를 일일히 기억해야 합니다. 하지만 IP 주소를 인간이 다 기억하기엔 한계가 있습니다. DNS는 도메인 이름과 IP 주소를 맵핑한 데이터를 저장하고 있고, 요청된 도메인 이름을 데이터에서 조회해서 맵핑된 IP 주소로 반환해주어 해당 사이트에 접속할 수 있게 해줍니다.
따라서 사용자가 IP 주소를 몰라도 도메인 네임을 통해 쉽게 사이트에 접속할 수 있게 해줍니다.

Q9. REST API란 무엇인가요?

REST API는 REST가 적용한 API를 말합니다.
REST는 자원을 이름으로 구분해서 해당 자원의 상태를 주고받는 통신 방식을 이야기합니다.

자원을 이름으로 구분하기 위해서 URI를 사용하며, HTTP 메소드를 통해서 자원의 행동을 나타냅니다.
HTTP 메소드에는 create, read, update, delete 등이 있습니다.

Q11. 트랜잭션에 대해 설명해주세요.

트랜잭션이란 여러 개의 작업을 하나로 묶어놓은 실행 유닛을 말한다. 이때 작업은 하나의 쿼리라고 볼 수 있고, 즉 여러 개의 쿼리들을 묶어둔 것이라고 볼 수 있습니다.

트랜잭션은 모든 작업이 성공하면 성공이고, 하나의 작업이라도 실패하면 모두 실패로 돌아가는 ALL or Nothing 성질을 갖고 있습니다. 모든 작업이 성공하면 commit을 날려 이를 데이터베이스에 반영하고, 하나의 작업이라도 실패하면 이전에 성공한 작업들도 모두 성공하기 이전 상태로 롤백 시켜 모두 실패로 처리합니다.
이런 트랜잭션을 잘 설명해줄 수 있는 예시는 은행의 계좌이체입니다. 다른 사람의 계좌에 돈을 송금할 때, 송금자의 계좌에서는 돈이 빠져나가고 수신자의 계좌에는 돈이 들어와야 하므로 돈을 송금하는 트랜잭션에는 두 개의 작업이 있다고 할 수 있습니다.
이때 송금자의 계좌에서는 돈이 빠져나가고, 수신자의 계좌에는 돈이 입금되지 않는 일은 일어나지 않습니다.
이는 트랜잭션이 두 작업이 모두 성공하거나 실패하도록 되어있어 기존의 데이터를 보호해줍니다.

0개의 댓글