cs지식 정리하기/면접 대비

[4일차] 기술 면접 준비

젤리의it 2024. 3. 19. 22:00

1. JPA란 무엇인가요?

JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준입니다
자바 어플리케이션에서 관계형 DB를 사용하는 방식을 정의한 인터페이스 입니다.

JPA가 필요하지 않은 경우는 다음과 같습니다.
1. 간단한 프로젝트: 작은 규모의 프로젝트에서는 JPA를 사용하지 않고 JDBC와 SQL을 직접 다루는 것이 좋습니다.
2. 쿼리가 복잡하지 않은 경우: 간단한 쿼리로 데이터베이스와 상호작용할 때는 JPA를 사용하는 대신 직접 SQL을 작성하는 것이 더 효과적일 수 있습니다.
3. 성능이 매우 중요한 경우: JPA는 객체와 데이터베이스 간의 변환을 처리하는데 일정한 오버헤드가 발생할 수 있습니다. 매우 높은 성능을 요구하는 애플리케이션의 경우 직접 SQL을 작성하는 것이 더 효율적일 수 있습니다.

JPA는 객체 중심적인 애플리케이션 개발을 가능하게 하므로 아래와 같을 때 필요합니다.
1. 복잡한 데이터베이스 관계: 데이터베이스 테이블 간에 복잡한 연관 관계가 있을 때, 복잡한 조인 쿼리를 작성할 필요가 없어집니다.
2. CRUD 작업이 자주 발생하는 경우: CRUD 작업을 수행할 때 JPA는 객체와 데이터베이스 간의 변환을 자동으로 처리해 줍니다.
3. 유지보수가 용이한 코드: JPA를 사용하면 데이터베이스 스키마의 변경에 대응하기 쉽습니다. 데이터베이스 스키마가 변경되더라도 Java 코드는 변경하지 않고 JPA 설정만 업데이트하면 됩니다

 

2. 객체 지향에 대해서 설명해주세요.
객체 지향프로그래밍은 상속성, 캡슐화, 다형성, 추상화의 특징을 가집니다. 상속은 상위 클래스의 모든 것을 하위 클래스가 이어받는 것입니다. 코드의 중복을 피하기 위해 상속을 사용합니다. 캡슐화는 관련된 필드와 메서드를 하나로 묶고 구현한 내용을 외부로부터 감추는 기법입니다. 다형성은 같은 이름의 메소드를 호출해도 객체에 따라 다르게 동작할 수 있습니다. 오버라이딩과 오버로딩도 다형성으로 볼 수 있습니다. 추상화는 객체에서 공통된 속성과 행위를 추출하는 기법 입니다. 

오버라이딩 - 상위 클래스의 동작을 하위 클래스에서 정의하는 것
오버로딩 - 하나의 클래스 내에서 이름은 같지만 서로 다르게 동작하는 메소드를 여러게 작성하는 것

'cs지식 정리하기 > 면접 대비' 카테고리의 다른 글

[6일차] 기술 면접 준비  (0) 2024.03.25
[5일차] 기술 면접 준비  (0) 2024.03.20
[3일차] 기술 면접 준비  (1) 2024.03.13
[2일차] 기술 면접 준비  (0) 2024.03.12
[1일차] 기술 면접 준비  (0) 2024.03.11