Database에서 DDL DML DCL
·
Interview/DB
Database에서 DDL DML DCL데이터베이스 관리 시스템(DBMS)에서 사용하는 SQL은 크게 세 가지 범주로 나눌 수 있습니다: DDL, DML, DCL. 이들은 각각 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)와 관련된 명령어들을 의미합니다. MySQL을 예시로 각 범주에 대해 설명하고 예시를 들어보겠습니다.1. 정의 기능(DDL: Data Definition Language)Definition 정의DDL은 데이터베이스의 구조를 정의하는 데 사용됩니다.테이블, 인덱스, 뷰, 스키마 등 데이터베이스 객체의 생성, 수정, 삭제 등을 할 때 사용합니다.주요 명령어:CREATE: 새로운 데이터베이스 객체(테이블, 인덱스 등)를 생성ALTER: 기존 데이터베이스 객체를 수정DRO..
Database View 가상 테이블
·
Interview/DB
Database View 가상 테이블데이터베이스에서 **View(뷰)**는 하나 이상의 테이블을 기반으로 한 가상 테이블입니다. 물리적으로 데이터를 저장하지 않으며, 쿼리를 통해 생성된 결과 집합을 나타냅니다. 쉽게 말해, View는 복잡한 쿼리의 결과를 테이블처럼 사용할 수 있게 해주는 도구입니다.1. View를 사용하는 이유(1) 데이터 접근 단순화복잡한 쿼리를 반복적으로 작성하는 대신 View를 사용하여 데이터 접근을 간단하게 할 수 있습니다. 예를 들어, 복잡한 조인, 서브쿼리 등을 통해 데이터를 조회해야 할 때, 이를 View로 만들어두면 간단하게 SELECT * FROM ViewName;으로 데이터를 조회할 수 있습니다.(2) 보안 및 데이터 접근 제어View를 통해 테이블의 특정 열이나 특정..
Python Yield
·
Interview/Python
Python Yieldyield는 Python에서 generator를 만드는 데 사용되는 키워드로, 함수의 실행을 일시 중단하고 값을 반환하며, 필요할 때 함수의 상태를 그대로 유지하면서 실행을 재개할 수 있습니다. 이를 통해 메모리를 효율적으로 사용하면서도 데이터를 순차적으로 처리할 수 있게 합니다.yield를 이해하려면 우선 generator와 iterator의 개념을 알아야 합니다.1. Generatoryield를 사용하는 함수는 generator 객체를 반환합니다. 이 generator는 __iter__()와 __next__() 메서드를 가진 이터러블 객체입니다. 즉, 반복 가능한 객체처럼 사용할 수 있으며, 한 번에 하나의 값을 생성(또는 반환)하고 다음 호출 때 그 상태를 기억합니다.def m..
Python ASGI vs WSGI
·
Interview/Python
ASGI vs WSGIPython 웹 프레임워크인 Django나 Flask에서는 웹 서버와의 통신을 효율적으로 처리하고, 서버의 요청을 애플리케이션으로 전달하기 위해 WSGI 또는 ASGI라는 인터페이스를 사용합니다.이 인터페이스는 Python 웹 애플리케이션의 표준 방식으로, 웹 서버와 Python 애플리케이션 사이에서 중간 역할을 합니다.WSGI (Web Server Gateway Interface)WSGI는 동기적인 웹 애플리케이션과 웹 서버 간의 인터페이스를 정의한 Python의 표준입니다. WSGI는 Python 웹 애플리케이션이 웹 서버와 소통할 수 있도록 도와주며, 동작 방식은 매우 단순합니다.동기 처리: WSGI는 기본적으로 동기 방식을 지원합니다. 즉, 요청이 들어오면 해당 요청이 완전히..
Python GIL과 Thread
·
Interview/Python
Python GIL과 ThreadPython이 기본적으로 단일 프로세스 환경에서 동작하는 주요 이유 중 하나는 GIL(Global Interpreter Lock)이라는 메커니즘 때문입니다.GIL은 Python 인터프리터가 한 번에 하나의 스레드만 실행되도록 제한하는 락(Lock)으로, 다중 스레드 환경에서 메모리 관리의 안전성을 보장하는 역할을 합니다.GIL은 동시에 하나의 스레드만 Python 바이트코드를 실행할 수 있도록 하여, 멀티코어 CPU의 성능을 제대로 활용하지 못하는 상황을 유발합니다. 다만, GIL은 충돌을 방지하고, Python의 메모리 관리 시스템(CPython)의 안정성을 보장하기 위해 필요합니다.1. GIL(Global Interpreter Lock)의 배경Python은 기본적으로 ..
Golang Channel
·
Interview/Golang
Golang에서 CSP?Go 언어의 채널(Channel)은 Goroutine 간에 안전하게 데이터를 주고받을 수 있는 메커니즘입니다. 채널은 동시성 프로그래밍에서 중요한 역할을 하며, Go 언어의 동시성 모델인 Communicating Sequential Processes (CSP)를 구현하는 데 사용됩니다.Communicating Sequential Processe(CSP)CSP (Communicating Sequential Processes)는 동시성을 다루기 위한 수학적 모델로, 1978년 영국의 컴퓨터 과학자 Tony Hoare에 의해 제안되었습니다. 이 모델은 여러 개의 독립적인 프로세스들이 서로 통신을 통해 협력하여 작업을 수행하는 방식으로 동시성을 표현합니다. 프로세스는 각기 독립적으로 실행..
Golang의 Goroutine
·
Interview/Golang
GoroutineGolang에서 Goroutine은 경량 스레드의 일종으로, 함수나 메서드를 동시에 실행하기 위해 사용됩니다.일반적인 스레드와는 다르게, 매우 가볍고 고효율적으로 동작하기 때문에 많은 수의 Goroutine을 동시에 실행할 수 있습니다. Goroutine은 Go 런타임이 내부적으로 관리하는 작은 작업 단위입니다.Goroutine 사용 방법다음과 같이 go 키워드를 사용하여 함수를 goroutine으로 실행할 수 있습니다:go someFunction()이 코드를 실행하면 someFunction()은 별도의 goroutine으로 실행되며, 메인 프로그램과 병렬로 동작하게 됩니다. 중요한 점은, go 키워드로 실행된 함수는 비동기적으로 동작하기 때문에 해당 함수가 언제 완료되는지는 보장되지 않..
Golang Garbage Collection(GC)
·
Interview/Golang
Golang Garbage Collection(GC)Golang에서의 가비지 컬렉션(Garbage Collection, GC)은 자동 메모리 관리를 통해 사용되지 않는 메모리(즉, 더 이상 참조되지 않는 객체)를 회수하는 과정입니다.이를 통해 개발자는 메모리 해제에 대해 신경 쓰지 않고 프로그램을 작성할 수 있습니다.Go의 가비지 컬렉션은 성능을 최대한 유지하면서도 메모리 누수를 방지하도록 설계되었습니다.Golang의 GC 특징Concurrent Garbage Collector (동시 가비지 컬렉터)Go의 GC는 stop-the-world 방식을 최소화하기 위해 동시성(concurrent)으로 동작합니다. 즉, 애플리케이션이 계속 실행되는 동안에도 가비지 컬렉션을 수행할 수 있습니다. 이로 인해 긴 시간..
김 정출
'Interview' 카테고리의 글 목록 (6 Page)