본문 바로가기

개발자 기술 면접51

[DB] PK(Primary Key), FK란? PK(Primary Key, 기본키) PK는 특정 테이블의 각 행을 고유하게 식별하는 Key입니다. 중복된 값을 가질 수 없고 null 값을 허용하지 않기 때문에 데이터의 무결성을 유지하는데 도움이 됩니다. 주로 자동으로 증가하는 숫자나 고유한 식별자로 설정됩니다. FK(ForeignKey, 외래키) FK는 다른 테이블의 PK를 참조하여 두 테이블 간의 관계를 설정하는 Key입니다. FK는 참조하는 테이블의 값이, 참조되는 테이블의 PK 값과 일치하기 때문에 데이터 일관성과 무결성을 유지하는데 도움이 됩니다. [참고] https://velog.io/@kinjoo/DAY4-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91 2024. 3. 7.
[기타] TCP/IP란? TCP/IP TCP/IP란 전송제어 프로토콜(Transmission Control Protocol)/인터넷 프로토콜(Internet Protocol)의 약자로서, 인터넷에서 사용되는 표준 통신 프로토콜입니다. 즉, 서로 다른 시스템을 가진 컴퓨터들을 서로 연결하여 데이터가 의도된 목적지에 닿을수 있도록 보장해주는 통신 규약입니다. TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말인데, 이것을 사용하겠다는 것은 IP 주소 체계를 따르고 IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용해 송/수신자의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미합니다. [참고] https://velog.io/@fore0919/TIL-WEB-TCPIP-%EA%B0.. 2024. 3. 7.
[JavaScript] 콜백(CallBack)함수란? 콜백(CallBack) 함수 콜백함수란 간단히 말해, 어떠한 함수의 파라미터로 들어가는 함수를 말합니다. 이러한 콜백함수는 자바스크립트에서 순차적으로 코드를 실행하고 싶을 때 사용됩니다. 콜백함수의 기본형태 [참고] https://velog.io/@ko1586/Callback%ED%95%A8%EC%88%98%EB%9E%80-%EB%AD%94%EB%8D%B0 2024. 2. 22.
[JAVA] ArrayList와 LinkedList의 차이 ※ ArrayList와 LinkedList 모두 Java에서 제공하는 List 인터페이스를 구현한 Collection 구현체이다. ArrayList란? ArrayList(선형리스트)는 List 인터페이스를 구현한 클래스로, 크기가 가변적으로 변하는 선형리스트입니다. 일반적인 배열과 같이 인덱스로 내부의 객체를 관리한다는 점 등이 유사하지만, 한 번 생성되면 크기가 변하지 않는 배열과는 달리, ArrayList는 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다는 특징을 가지고 있습니다. 하지만 추가되었을 때 기존 배열이 동적으로 늘어나는 것이 아니라, 기존 배열의 용량보다 더 큰 용량의 배열을 생성하여 내용을 복사하는 작업을 수행하.. 2024. 2. 1.
[JAVA] 자바 리플렉션(Java Reflection)이란? 자바 리플렉션(Java Reflection) 자바 리플렉션은 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 입니다. - 런타임 시점에 지금 실행되고 있는 클래스를 가져와서 실행해야 하는 경우에 사용됩니다. - 동적으로 객체를 생성하고 메서드를 호출하는 방법입니다. - 클래스, 인터페이스, 메서드 등을 찾을 수 있고, 객체를 생성하거나 변수를 변경하거나 메서드를 호출할 수 있습니다. - 대표적으로 여러 라이브러리, 프레임워크에서 사용되는 어노테이션이 리플렉션을 사용한 예시입니다. - Ex) 인텔리제이의 자동 완성 기능, 스프링 프레임워크의 어노테이션 등등 2024. 1. 12.
[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.
반응형