면접 준비 자료

최성현·2024년 3월 27일
0

면접

목록 보기
1/1

JAVA의 객체지향(OOP)

  1. 객체지향 프로그래밍(Object-Oriented Programming)은 프로그램을 개체들의 집합으로 파악하고 구현하는 프로그래밍 패러다임
  2. 코드의 재사용성, 확장성 관리 용이성을 높이는데 기여
  3. 현실 세계의 사물을 객체로 모델링하여 프로그램을 이해하기 쉽고 유지보수하기 편리하게 만듦

캡상추다(캡슐화, 상속, 추상, 다형성)

  1. 캡슐화(Encaosulation) – 객체의 상세구현을 숨겨 객체의 데이터를 보호하고 객체 간의 결합도를 낮춤
  2. 상속(Inherritance) – 한 클래스가 다른 클래스의 특성을 물려줄 수 있게 상속, 코드의 재사용성을 높이고, 중복을 줄임
  3. 다형성(Polymorphism) – 같은 이름의 메서드가 다른 클래스에서 다른 동작을 할 수 있는 성질(오버로딩, 오버라이딩)
  • 오버로딩 – 같은 이름의 메서드를 매개변수의 유형 혹은 개수를 다르게 해 여러 개를 정의
  • 오버라이딩 – 상속받은 메서드의 내용을 변경
  1. 추상화(Abstraction) – 필요한 정보만을 추출하여 프로그램에 구현하는 것(추상클래스, 인터페이스)

SPRING

IoC 컨테이너

  • 객체의 생명주기와 의존성을 관리하는 프레임워크의 핵심 부분입니다. 의존성 주입을 통해 객체 간의 결합도를 낮추고, 코드의 유연성과 재사용성을 높임

의존성 주입(Dependency Injection,DI)

  • 객체 간의 의존성을 외부에서 관리하고 주입
  • 객체의 생성과 사용을 분리함으로써 코드의 결합도를 낮추고 유연성 및 테스트 용이성을 향상

DI 3가지 주요 유형

  • 생성자 주입: 객체 생성 시점에 의존성 주입. 불변성 및 필수 의존성 주입에 적합.
  • 세터 주입: 객체 생성 후 세터 메서드를 통해 의존성 주입. 선택적 의존성에 유용.
  • 필드 주입: 리플렉션을 사용하여 필드에 직접 의존성을 주입. 간결하지만 테스트와 변경에 제한적.

Spring에서 의존성 주입을 구현하기 위해 주로 @Autowired 어노테이션을 사용, Spring은 실행 시점에 @Autowired가 붙은 필드, 세터, 생성자에 알맞은 빈을 자동으로 주입

어노테이션:

• @Autowired: 자동 의존성 주입을 위한 어노테이션.
• @Qualifier: 특정 빈을 지정하여 주입할 때 사용.
• @Bean: 자바 설정 파일에서 빈을 정의할 때 사용.

Bean

  • Spring IoC 컨테이너가 관리하는 객체를 의미
  • 애플리케이션의 핵심을 이루는 구성 요소로, Spring 프레임워크의 제어하에 인스턴스화, 관리되며, 의존성 주입을 통해 서로 연결

AOP

  • 관점 지향 프로그래밍의 구현을 지원하는 Spring Framework의 기능 중 하나
  • 애플리케이션의 핵심 기능 외에도 공통 기능(로깅, 트랜잭션 관리, 보안 등)을 모듈화하여 분리하는 프로그래밍 패러다임
  • 이러한 공통 기능을 재사용 가능한 모듈(Aspect)로 분리하고, 이를 필요한 코드에 적용함으로써 코드의 중복을 줄이고 모듈화를 촉진

RESTful API(Representational State Transferful API)

  • REST 아키텍처 스타일을 따르는 웹 API
  • 자원(Resource)을 이용하여 클라이언트와 서버 간의 통신을 담당
  • HTTP 프로토콜을 기반
  • 간결하고 유연한 인터페이스를 제공하여 다양한 플랫폼과 서비스 간의 통신을 용이

DB

Index

  • 데이터베이스에서 검색 속도를 향상시키기 위해 사용되는 데이터 구조
  • 특정 열(칼럼)에 대한 데이터 값과 해당 데이터가 저장된 레코드의 위치를 매핑한 테이블
  • 데이터베이스에서 데이터를 검색할 때 인덱스를 사용하면 검색 속도가 향상되며, 데이터의 빠른 접근이 가능
  • 주로 검색, 정렬, 조인 등의 연산에서 사용
  • 효율적인 데이터베이스 성능을 위해 필수적인 요소 중 하나
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글