ETC

백엔드 기술면접 예상질문(2)

muggle-coder 2023. 9. 6. 16:24
728x90
  1. 객체지향 (Object-Oriented Programming, OOP): 객체지향은 프로그래밍 패러다임 중 하나로, 현실 세계의 개념을 프로그래밍에 적용하는 접근 방식입니다. 이를 통해 소프트웨어의 모델링과 설계가 용이해지며, 코드의 재사용성과 유지 보수성을 향상시킵니다.
  2. 추상화 (Abstraction): 추상화는 복잡한 현실 세계를 간소화하여 필요한 부분만 포착하는 개념입니다. 객체지향 프로그래밍에서 추상화는 클래스와 인터페이스를 통해 이루어지며, 핵심적인 특성을 강조하고 불필요한 세부 사항을 숨깁니다.
  3. MVC 패턴 (Model-View-Controller): MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 소프트웨어를 모델(Model), 뷰(View), 컨트롤러(Controller)로 구분하여 개발하는 방법입니다. 모델은 데이터와 비즈니스 로직을, 뷰는 사용자 인터페이스를, 컨트롤러는 입력 처리를 담당합니다.
  4. 데이터베이스 옵티마이저 (Database Optimizer): 데이터베이스 옵티마이저는 SQL 쿼리를 실행할 때 가장 효율적인 실행 계획을 생성하는 데이터베이스 시스템의 구성 요소입니다.
  5. 풀스캔 (FULL SCAN): 풀스캔은 데이터베이스에서 모든 레코드를 읽어서 조건과 상관없이 모든 데이터를 검색하는 방법을 의미합니다. 이는 데이터 양이 많을 때 성능 저하를 초래할 수 있습니다.
  6. 코드 리팩토링 (Code Refactoring): 코드 리팩토링은 코드의 구조나 디자인을 개선하고, 가독성을 향상시키며, 유지 보수성을 높이기 위한 과정입니다.
  7. 자바의 컬렉션 (Java Collections): 자바 컬렉션은 데이터를 저장하고 관리하기 위한 클래스와 인터페이스 모음입니다. 예를 들어, List, Set, Map 등이 있으며, 다양한 데이터 구조를 제공합니다.
  8. Java 8에서 Stream: Java 8에서 추가된 Stream은 데이터를 처리하는 데 사용되는 시퀀스로, 함수형 프로그래밍 요소를 지원하며 데이터 처리를 간소화하고 병렬 처리를 쉽게 할 수 있습니다.
  9. 가비지 컬렉션 알고리즘 (Garbage Collection Algorithms): 가비지 컬렉션 알고리즘은 더 이상 필요하지 않은 메모리 블록을 자동으로 해제하는 방법입니다. 일반적으로 메모리 누수를 방지하고 자원 관리를 돕습니다.
  10. 배열 안 중복 제거: 배열에서 중복된 요소를 제거하는 방법에는 여러 가지가 있습니다. 예를 들면 Set을 사용하거나 루프를 돌며 중복 요소를 제거하는 방법 등이 있습니다.
  11. Spring DI (Dependency Injection): Spring 프레임워크에서 DI는 의존성을 주입하는 개념으로, 객체 간의 결합도를 낮추고 유지 보수성을 향상시키는 데 도움을 줍니다.
  12. JPA 사용 장점: JPA는 Java Persistence API의 약자로, 데이터베이스와 자바 객체 간의 매핑을 쉽게 처리할 수 있게 도와주며, 데이터베이스에 대한 추상화를 제공하여 개발 생산성을 향상시킵니다.
  13. JWT (JSON Web Token): JWT는 웹 애플리케이션 간에 정보를 안전하게 전송하기 위한 토큰 기반 인증 시스템입니다. 장점으로는 간편한 전송과 검증이 가능하지만, 토큰의 크기가 커질 수 있고, 서버에서 토큰을 저장하지 않는 stateless 특성을 가지고 있습니다.
  14. MSA (Microservices Architecture): MSA는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 작은 독립적인 마이크로 서비스로 나누는 방식입니다. 장점으로는 확장성과 유연성이 있지만, 구현 및 관리가 복잡할 수 있습니다.
  15. Enum (Enumeration): Enum은 열거형 자료형으로, 서로 연관된 상수값을 정의할 때 사용됩니다. 예를 들어, 요일을 열거하는 경우에 Enum을 사용할 수 있습니다.
  16. equals와 hashCode: equals는 두 객체가 동등한지 비교하는 메서드이고, hashCode는 객체의 해시 코드 값을 반환하는 메서드입니다. 이들은 객체의 동등성과 해시 기반 컬렉션에서 사용됩니다.
  17. 자바 reflection: 자바 reflection은 런타임 시에 클래스의 메서드, 필드, 생성자 등에 접근하는 기능을 제공합니다.
  18. REST API (Representational State Transfer): REST API는 웹 서비스를 위한 아키텍처 스타일로, HTTP를 기반으로 자원을 관리하고 표현하는 방식을 나타냅니다. CRUD는 Create, Read, Update, Delete의 약어로, RESTful API에서 주로 사용되는 데이터 조작 메서드입니다.
  19. 자바의 장점과 단점: 자바는 플랫폼 독립성, 강력한 커뮤니티, 다양한 라이브러리 등 많은 장점을 가지고 있으며, 메모리 소비와 상대적으로 느린 실행 속도가 단점으로 지적될 수 있습니다.
  20. 세션과 쿠키의 차이: 세션은 서버 측에서 상태를 관리하는 데 사용되고, 쿠키는 클라이언트 측에서 상태를 관리하는 데 사용됩니다. 세션은 서버에 데이터를 저장하고 클라이언트에는 세션 ID를 저장하며, 쿠키는 클라이언트에 데이터를 저장합니다.

'ETC' 카테고리의 다른 글

백엔드 기술면접 예상 질문  (0) 2023.08.27