본문 바로가기

개발자 기술 면접51

[JAVA] Mybatis와 JPA의 차이 Mybatis Mybatis는 개발자가 지정한 SQL, 저장 프로시저 그리고 몇 가지 고급 매핑을 지원하는 Persistence Framework의 종류 중 하나입니다. 즉, Object와 SQL의 필드를 매핑하여 데이터를 객체화하는 기술인 SQL Mapper 프레임워크의 한 종류입니다. 객체와 테이블의 관계를 매핑하는 것이 아니라, SQL을 직접 작성하고 결과를 어떠한 객체에 바인딩하는 방법으로 SQL에 의존적인 방법입니다. JPA(Java Persistence API) JPA는 Java에서 사용하는 ORM(Object Relational Mapping) 기술 표준으로 인터페이스의 모음이자 Persistence Framework의 종류 중 하나입니다. 즉, Object와 관계형 데이터베이스를 매핑해 주.. 2024. 1. 2.
[Spring] AOP(Aspect Oriented Programming)란? AOP(Aspect Oriented Programming, 관점 지향 프로그래밍) AOP는 기능을, 핵심 관심 사항(Core Concern)과 공통 관심 사항(Cross-Cutting Concern)으로 분리시키고 각각을 모듈화 하는 것을 의미합니다. AOP는 부가 기능을 애스펙트(Aspect)로 정의하여, 핵심 기능에서 부가 기능을 분리함으로써 핵심 기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있게 도와주는 개념입니다. OOP에서 핵심 비즈니스 로직과 독립적으로 분리하기 힘든 부가 기능들을 AOP의 Aspect를 활용해 모듈화해줍니다. ※ 대표적인 예 : 로깅, 트랜잭션, 보안 등에 사용. [참고] https://dev-coco.tistory.com/81 2024. 1. 2.
[DB] 데이터베이스 1:1, 1:N, N:M 관계 1:1 관계 1:1 관계란 어느 엔티티 쪽에서 상대 엔티티를 보더라도 반드시 단 하나의 관계를 가지는 것을 말합니다. Ex) 결혼 관계 남자는 한 여자와, 여자는 한 남자와 결혼을 할 수밖에 없습니다. 1:N 관계 1:N 관계란 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 말합니다. 이 관계는 매우 흔한 방식이며, 실제 DB를 설계할 때 자주 쓰이는 방식입니다. 부모 테이블의 PK를 자식 테이블의 FK로 넣음으로써 1:N 관계를 표현합니다. Ex) 부모와 자식 관계 부모는 자식을 1명, 2명 그 이상도 낳을 수 있습니다. DB에서는 이를 부모가 자식을 소유한다고 표현합니다. → has a 관계 반대로 자식 입장에서는 부모(어머니, 아버지의 한 쌍)를 하나만 가질 수밖에 없습니.. 2024. 1. 1.
[기타] 세션 기반 인증 방식과 토큰 기반 인증 방식의 차이 세션 기반 인증 방식 세션 기반 인증을 위해 Session 과 Cookie 가 사용됩니다. 다음 Flow로 인증 절차가 진행됩니다. 유저가 로그인을 하고 세션이 서버 메모리 상에 저장됩니다. 이 때 세션을 식별하기 위한 Session Id를 기준으로 정보를 저장합니다. 브라우저에 쿠키로 Session Id가 저장됩니다. 쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request마다 HTTP Cookie Header에 Session Id를 담아 전송합니다. 서버는 클라이언트가 보낸 Session Id와 서버 메모리로 관리하고 있는 Session Id를 비교하여 Verification을 수행합니다. 세션 기반 인증 방식 장단점 장점 세션 기반 인증 방식은 구현이 상당히 명확하다는 장점이.. 2023. 12. 31.
[기타] 모놀리식, 마이크로서비스 아키텍처 모놀리식(Monolithic) 아키텍처 하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍처를 가질 때, 이를 모놀리식 아키텍처라고 합니다. 마이크로서비스(Microservice) 아키텍처 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처를 말합니다. 2023. 12. 30.
728x90