헷갈리는 기술면접 정리

강준호·2023년 12월 4일
0

기술면접

목록 보기
1/9

API 란?

  • 다양한 소프트웨어 프로그램이 서로 상호 작용하고 통신할 수 있도록 하는 중개자 역할

Restful API 란?

  • Get,Post,Put 등의 표준 HTTP 메소드를 통해 자원을 처리하도록 설계한 API

Restful 하게 API 를 디자인 한다?

  • 리소스와 행위를 명시적이고 직관적으로 분리
  • 메세지는 헤더와 바디를 명확하게 분리해서 사용
  • 서버와 클라이언트가 같은 방식을 사용해서 요청하도록 한다.

Restful API vs HTTP API

Restful API

  • 표준 HTTP 방법을 사용하며, 일반적으로 JSON 또는 XML 을 처리하며 확장성과 단순성을 위해 설계되었음.

HTTP API

  • HTTP를 통해 통신하는 모든 API
  • HTTP를 통해 모든 데이터 형식을 사용할 수 있으며 Restful API 보다 더 유연하며, 제약이 없다.

본질적으로 Restful API < HTTP API 이다. (부분집합)


객체지향 프로그래밍?

  • 인간 중심적 프로그래밍. 현실 세계 사물들을 객체로 보고 그 특징들을 뽑아와 프로그래밍 하는것

MVC 란?

  • 어플리케이션을 model,view, controller 로 나눠, 각각 맡은 바에만 집중 할 수 있게한 디자인 패턴.

CORS 에러란?

  • 웹 브라우저의 보안기능. 웹페이지가 웹페이지를 제공한 도메인과 다른 도메인에 요청하는 것을 방지합니다.

  • 웹페이지가 기존 출처와 다른 도메인에서 요청이 들어오면 이를 차단함.

해결방안

  • 서버 측에서 적절한 CORS 헤더를 추가함으로 해결. 도메인 요청을 허용하도록 설정.

네트워크

HTTPS란?

  • 컴퓨터 네트워크, 특히 인터넷을 통한 보안 통신에 사용되는 HTTP의 보안 버전입니다.
  • 사용자의 브라우저와 웹 서버 간에 교환되는 데이터를 암호화하여 도청, 변조 및 중간자 공격으로부터 데이터의 무결성과 기밀성을 보호합니다.
  • 이는 SSL/TLS 프로토콜을 사용하여 달성됩니다.

GET, POST 방식의 차이점

GET

  • GET 매개변수가 URL에 추가되어 표시됩니다.
  • 지정된 리소스에서 데이터를 요청하는 데 사용
  • GET에는 데이터 크기 제한이 있습니다.
  • GET 요청을 캐시할 수 있습니다.

POST

  • 지정된 리소스에 데이터를 제출하는데 사용
  • POST 매개변수는 요청 본문에 있으며 URL에는 표시되지 않습니다.
  • POST에는 데이터 크기 제한이 없습니다.
  • POST 요청은 일반적으로 캐시되지 않습니다.

데이터베이스

데이터베이스 정규화란?

  • 테이블간 데이터의 중복성과 종속성을 최소화하는 것.
  • 데이터 중복을 제거한다면 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다.

1정규화

  • 테이블이 원자 값을 갖도록 분리시키는것

2정규화

  • 테이블의 모든 속성이 완전히 기능적으로 종속되도록

3정규화

  • 2정규화에 서로 독립적인지 확인

DB 트랜잭션이란?

  • 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위.
  • 주요 속성은 ACID 라고도 불림

CRUD 란?

  • CRUD는 생성(Create), 읽기(Read), 업데이트(Update), 삭제(Delete)를 의미합니다. 영구 데이터베이스나 데이터 저장 시스템의 기본 동작을 설명하는 데 사용되는 용어

RDBMS vs NoSQL

RDBMS

  • 데이터가 행과 열이 있는 구조화된 스키마.
  • 일관성 및 트랜잭션 좋음
  • MySQL

NoSQL

  • 스키마가 없음. 다양한 방식으로 데이터를 저장 가능
  • 확장성 좋음, 유연함
  • ex) MongoDB

Git vs Github

Git

  • 버전 제어에 사용하는 도구,시스템

Github

  • 코드를 원격 및 공동으로 저장하기 위해 Git을 이용한 호스팅 서비스

OS

프로세스 vs 쓰레드

프로세스

  • 실행중인 컴퓨터 프로그램의 인스턴스
  • 독립적인 실행

쓰레드

  • 운영체제에서 예약할 수 있는 가장 작은 처리단위.
  • 프로세스의 실행 단위
  • 병렬적인 실행

힙 vs 스택

  • 컴파일 시 크기를 알 수 없는 변수 및 오랫동안 지속되어야 하는 개체에 대한 동적 메모리 할당에 사용됩니다.

스택

  • 지역 변수 및 함수 호출 관리를 위한 정적 메모리 할당에 사용됩니다.

Spring

JDBC vs JPA

JDBC

  • 데이터베이스에서 쿼리를 연결하고 실행하기 위한 Java의 API
  • Java 코드로 SQL 쿼리를 작성.
  • SQL 쿼리를 직접 처리함으로 특정 작업의 성능이 더 높아질 수 있음

JPA

  • ORM(데이터베이스의 데이터를 객체에 매핑하는 방법)
  • 쿼리가 아닌 Java 객체로 직접 작업이 가능.

쿠버네티스란?

  • 복잡한 컨테이너화된 애플리케이션을 관리하고 자동화 및 확장성을 제공하는 강력한 도구

Nginx (cf. Tomcat, Apache)

  • 웹서버. 웹 컨텐츠를 제공하며, 역방향 프록시로 사용.
  • 높은 트래픽을 효율적으로 처리

애자일 방법론?

  • 협업과 고객 피드백에 초점을 맞춘. 소프트웨어 개발에 대한 유연하고 반복적인 접근 방식

스크럼 기법

  • 특정 역할과 구조화된 타임라인을 통해 작업을 작고 관리 가능한 증분으로 구성하는 Agile 내의 프레임워크

0개의 댓글