ComputerScience

백엔드 기술면접 top 30 (계속 업데이트)

Albosa2lol 2023. 8. 17. 18:06
  1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.
    • RDBMS 는

      장점1) 중복된 데이터가 없고(데이터 무결성) 관계간 데이터를 중복없이 한 번만 저장할 수 있습니다.

      단점 1) 테이블과 테이블이 관계를 맺고 있어 시스템이 커질 경우 JOIN 문이 많은 복잡한 쿼리가 만들어집니다. 성능 향상을 위해선 서버와 성능을 향상 시켜야하는 Scale-up 만 지원하기 때문에, 비용이 비싸질 수 있습니다.

      단점 2) 이러한 스키마로 인해 데이터가 유연하지 못합니다. (스키마가 변경될 경우 번거롭고 어려움)

      NoSQL 은

      장점 1) 스키마가 없어 유연하고 자유로운 데이터 구조를 갖고 있습니다. → 언제든 데이터를 조정,(새로운 필드를) 추가할 수 있습니다.

      장점 2) 데이터 분산이 용이(병렬화 가능) 하고 성능 향상을 위해 Scale-up 뿐 아니라 Scale-out 도 가능

      단점 1) 데이터 중복이 발생할 수 있고, 중복 데이터가 변경될 경우 모든 컬렉션에서 수정을 하여야 합니다

      단점 2) 스키마가 없어 명확한 데이터 구조를 보장하지 않고 데이터 구조 결정이 어려울 수 있습니다.
  2. mvc 패턴에 대해서 설명해주세요.
    • MVC 패턴이란 Model(모델), View(뷰), Controller(컨트롤러)의 앞글자를 따서 이름지어진 디자인 패턴입니다.

      MVC 패턴을 사용하는 이유는

      1. 개발자가 역할을 나눠 모델, 컨트롤러, 뷰를 동시에 개발할 수 있습니다.  예를 들어 Java개발자가 모델과 컨트롤러를 개발하고, UI 개발자가 뷰부분을 담당하여 개발할 수 있습니다. 이를 통해 개발시간 단축과 역할분리가 가능합니다.
          
      2. 확장성있고 유연한 코딩이 가능하고, 중복 코드를 없앨 수 있습니다.  예를 들어, Java 코드로 로직을 설계한것이 웹으로 배포할 내용과, 앱으로 배포할 내용이 있다면 View 부분만 바꿔서 코딩할 수 있습니다.

      3. 컴포넌트 별로 나눠져 있어, 디버깅/테스트가 편리합니다.

      하지만 단점도 있습니다.

      1. View 와 Model 의 의존성이 높다는 것 입니다. View 와 Model 의 높은 의존성은 프로젝트의 규모가 커질 수록 복잡해져 유지보수를 어렵게 만들 수 있습니다.
  3. RDBMS의 정규화에 대해 설명해주세요.
    • 답변
  4. Primary Key, Foreign Key에 대해 설명해주세요.
    • 답변
  5. HTTP 메서드에 대해 설명해주세요.
    • 답변
  6. CORS(Cross Origin Resource Sharing)에 대해 설명해주세요.
    • 답변
  7. 브라우저의 작동방식에 대해서 설명해주세요.
    • 답변
  8. 쿠키, 세션의 개념과 차이를 설명해보세요
    • 답변
  9. TCP/UDP에 대해서 설명해주세요.
    • 답변
  10. http, https 차이점에 대해 설명해주세요
    • 답변
  11. DI, IoC에 대해 설명해주세요.
    • 답변
  12. 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요?
    • 답변
  13. 대용량 트래픽 발생 시 어떻게 대응해야 하나요?
    • 답변
  14. ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요?
    • 답변
  15. GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요.
    • 답변
  16. OSI 7계층에 대해 아는대로 설명해주세요.
    • 답변
  17. 세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해주세요.
    • 답변
  18. JWT, Refresh, Access Token에 대해서 설명해주세요.
    • 답변
  19. OAuth에 대해서 설명해주세요.
    • 답변
  20. 클래스형과 함수형의 차이를 설명해주세요. 어떤 방식을 주로 사용하였고 그 이유가 뭔지 답변해주세요.
    • 답변
  21. CI/CD에 대해서 설명해주세요.
    • 답변
  22. TDD에 대해서 설명해주세요.
    • 답변
  23. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.
    • 답변
  24. 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요.
    • 답변
  25. 쿼리 최적화에 대해 설명해주시고 방법에 대해 설명해주세요.
    • 답변
  26. DB 로직 최소화를 하려면 어떻게 해야 할까요?
    • 답변
  27. 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
    • 답변
  28. Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.
    • 답변
  29. AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요.
    • 답변
  30. 정렬 알고리즘에 대해서 아는대로 설명해주세요.
    • 답변

'ComputerScience' 카테고리의 다른 글

MVC 패턴  (0) 2023.08.18
디자인패턴 ) MVC, MVP, MVVM 비교  (0) 2023.08.18
Database ) RDBMS와 NoSQL의 차이점  (0) 2023.08.17
왜 JWT를 사용하는가? JWT 사용 이유  (0) 2023.07.14
JWT란? 왜 사용할까? 장단점은?  (0) 2023.07.14