티스토리 뷰

모의면접 시뮬레이션 문제 모음

Python

  1. Python의 장점과 단점은 무엇이라고 생각하시나요?
    • 장점: 파이썬은 문법이 간결하고 읽기 쉬워 배우기 쉽습니다. 다양한 라이브러리와 프레임워크를 지원해 데이터 과학, 웹 개발 등 여러 분야에 활용할 수 있습니다. 또한, 높은 수준의 포터빌리티를 제공합니다.
    • 단점: 다른 컴파일 언어에 비해 실행 속도가 느릴 수 있으며, 모바일 애플리케이션 개발에는 상대적으로 적합하지 않습니다.
  2. '파이썬은 느리다'라는 문장에 대해 본인의 생각을 기술적 근거를 기반으로 말해주세요.
    • 파이썬이 '느리다'고 하는 이유는 대부분 인터프리터 기반 언어이기 때문입니다. 이는 실행 시간에 코드를 바이트 코드로 변환하고, 이를 실행하는 추가적인 처리 시간이 필요함을 의미합니다. 하지만, JIT 컴파일러를 사용하는 PyPy 같은 구현체나, C언어로 작성된 확장 모듈을 사용하여 성능을 크게 향상시킬 수 있습니다.
  3. 가상환경이란 무엇인지에 대해서 설명해주세요.
    • 가상환경은 프로젝트별로 독립된 파이썬 실행 환경을 만들어 주는 도구입니다. 이를 통해 프로젝트별로 다른 버전의 라이브러리를 사용할 수 있으며, 시스템에 설치된 파이썬과는 독립적으로 관리됩니다.
  4. 환경변수란 무엇인지 설명해주세요.
    • 환경변수는 운영 체제에서 사용하는 동적인 값들을 가리키는 변수입니다. 프로그램이나 쉘에서 글로벌하게 접근할 수 있으며, 시스템의 설정이나 실행 중인 프로그램의 행동을 제어하는데 사용됩니다.
  5. 파이썬에서 매개변수와 인자의 차이를 설명해주세요.
    • 매개변수는 함수를 정의할 때 사용되는 변수를 의미하며, 인자는 함수를 호출할 때 전달하는 실제 값을 의미합니다.
  6. 인터프리터와 컴파일러에 대해서 설명해주세요. (장단점을 비교해주세요)
    • 인터프리터는 소스 코드를 한 줄씩 읽으면서 바로 실행하는 프로그램입니다. 장점으로는 즉각적인 실행이 가능하지만, 실행 속도가 느릴 수 있습니다.
    • 컴파일러는 소스 코드 전체를 기계어로 먼저 변환한 뒤 실행하는 프로그램입니다. 실행 속도가 빠르지만, 전체 코드를 컴파일하는 데 시간이 걸릴 수 있습니다.
  7. 정적 타입과 동적 타입의 차이에 대해서 설명해주세요. (장단점을 비교해주세요)
    • 정적 타입 언어는 변수의 타입이 컴파일 시 결정되며, 한 번 선언된 변수의 타입을 변경할 수 없습니다. 타입 안정성이 높고 실행 속도가 빠르지만, 유연성이 떨어질 수 있습니다.
    • 동적 타입 언어는 실행 시간에 변수의 타입이 결정되며, 같은 변수에 다른 타입의 값을 할당할 수 있습니다. 유연성이 높지만, 타입 관련 오류가 실행 시간에 발생할 수 있습니다.
  8. 클로저(closure)란 무엇이며 어디에 유용한가요?
    •  클로저는 다른 함수의 지역변수를 그 함수가 종료된 후에도 기억할 수 있는 함수입니다. 클로저는 데이터를 숨기고 캡슐화하는 것이 유용할 때, 즉 특정 데이터에 대한 접근을 제어하고 싶을 때 유용하게 사용됩니다. 또한 콜백 함수를 구현할 때도 자주 사용됩니다.
  9. Generator란 무엇이고 어떻게 사용하나요?
    •  제너레이터는 반복자(iterator)와 같이 한 번에 하나의 항목을 생성하는 객체입니다. yield 키워드를 사용하여 작성되며, yield를 만날 때마다 함수의 상태가 일시 중지되어 나중에 다시 시작할 수 있습니다. 이는 대용량 데이터 처리 시 메모리 사용을 효율적으로 관리할 수 있게 해줍니다.
  10. 데코레이터란 무엇인가요?
    •  데코레이터는 다른 함수를 감싸는 함수로, 감싸고 있는 함수에 추가적인 기능을 동적으로 추가할 수 있게 해줍니다. 데코레이터는 코드의 중복을 줄이고, 함수의 수정 없이도 기능을 확장할 수 있게 해주는 유용한 도구입니다.
  11. 파이썬의 메모리 관리 방식에 대해 알려주세요
    •  파이썬은 자동 메모리 관리를 제공합니다. 가비지 컬렉션과 참조 카운팅을 통해 사용하지 않는 객체를 자동으로 제거합니다. 또한, 메모리 풀을 사용하여 작은 객체를 효율적으로 관리합니다.
  12. 파이썬에서 일급객체가 무엇인지 설명해주세요.
    • 파이썬에서 함수는 일급 객체입니다. 이는 함수를 변수에 할당할 수 있고, 다른 함수의 인자로 전달하거나, 함수에서 다른 함수를 반환할 수 있다는 의미입니다.
  13. 객체지향이란 무엇인지? 주요 원칙이 무엇인지 설명해주세요
    •  객체지향 프로그래밍은 데이터(속성)와 그 데이터를 처리하는 데 필요한 동작(메서드)을 하나의 "객체"로 묶어 관리하는 프로그래밍 패러다임입니다. 주요 원칙으로는 캡슐화, 상속, 다형성 등이 있습니다.
  14. 절차지향 프로그래밍, 함수형 프로그래밍, 객체지향프로그래밍의 차이점이 무엇인가요?
    • 절차지향 프로그래밍은 순서대로 명령을 수행하는 방식입니다.
    • 함수형 프로그래밍은 순수 함수와 불변성에 초점을 맞추며, 부작용을 최소화하는 방식입니다.
    • 객체지향 프로그래밍은 데이터와 그 데이터를 처리하는 메서드를 객체로 캡슐화하여 프로그래밍하는 방식입니다.
  15. list comprehension이란? 사용시 장단점을 본인 사용경험에 근거하여 설명해주세요.
    • 리스트 컴프리헨션은 리스트를 생성하기 위한 짧고 간결한 방법입니다. 이 방법은 코드를 단순화하지만, 때로는 가독성을 해칠 수 있습니다. 복잡한 표현식에는 사용을 자제하는 것이 좋습니다.
  16. PEP8에 대해 읽어보신 내용 또는 아는 내용에 대해 설명해주세요. 아울러 팀프로젝트 코드 작성시 컨벤션을 맞추기 위한 어떤 노력을 하셨는지 말해주세요.
    •  PEP 8은 파이썬 코드를 보다 읽기 쉽고 일관성 있게 만들기 위한 스타일 가이드입니다. 팀 프로젝트에서는 코드 리뷰, 자동 포맷팅 도구 사용 등으로 코드 스타일을 일관되게 유지하려는 노력을 합니다.
  17. Python의 GIL(Global Interpreter Lock)이란 무엇이고, 어떤 문제를 발생시키나요?
    • GIL(Global Interpreter Lock)은 파이썬에서 멀티스레딩을 처리할 때 발생하는 문제를 방지하기 위해 도입된 메커니즘입니다. GIL은 한 번에 하나의 스레드만이 파이썬 객체와 인터프리터 상태에 접근할 수 있도록 제한합니다. 이로 인해, 멀티코어 프로세서에서도 파이썬 프로그램이 동시에 여러 스레드를 실행하는 것이 제한되며, 이는 CPU 바운드 작업에서 멀티스레딩의 이점을 크게 저하시키는 주요 문제점입니다.
  18. Mutable 자료형과 Immutable 자료형에는 어떤 것들이 있고 각각 어떤 특징을 가지고 있나요?
    • Immutable 자료형: 값을 변경할 수 없습니다. 대표적으로 정수, 실수, 문자열, 튜플이 있습니다. Immutable 자료형의 객체는 생성 후 그 상태가 변경되지 않으므로, 프로그램 내에서 데이터의 안정성이 보장됩니다.
    • Mutable 자료형: 값을 변경할 수 있습니다. 리스트, 딕셔너리, 세트 등이 여기에 속합니다. Mutable 자료형의 객체는 필요에 따라 내용을 수정할 수 있으나, 이로 인해 예기치 않은 데이터 변경이 발생할 수 있어 주의가 필요합니다.
  19. args와 **kwargs의 용도와 사용 예제를 설명해주세요.
    • *args**kwargs는 파이썬에서 함수를 정의할 때 사용되는 매개변수로, 임의의 수의 위치 인자(*args)와 키워드 인자(**kwargs)를 받을 수 있게 해줍니다. 이를 활용하면 함수가 가변적인 수의 인자를 받을 수 있으므로, 더 유연한 함수 설계가 가능해집니다.

*args 사용 예제

  • *args는 함수에 전달되는 위치 기반 인자들을 튜플로 묶어 처리합니다. 이를 통해 함수가 임의의 수의 인자를 받을 수 있게 됩니다.
def add(*args):
    result = 0
    for number in args:
        result += number
    return result

print(add(1, 2))  # 출력: 3
print(add(1, 2, 3, 4))  # 출력: 10

**kwargs 사용 예제

  • **kwargs는 함수에 전달되는 키워드 인자들을 딕셔너리로 묶어 처리합니다. 이를 활용하면 함수가 키워드 인자의 이름을 미리 알지 못해도, 어떤 키워드 인자들이 전달됐는지 알 수 있고, 그 값을 활용할 수 있습니다.
def introduce(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} is {value}")

introduce(name="John", age=25, country="USA")
# 출력:
# name is John
# age is 25
# country is USA

*args**kwargs를 사용하면, 함수가 다양한 수와 종류의 인자를 유연하게 받을 수 있게 되어, 코드의 재사용성과 가독성을 높일 수 있습니다.

 

20. 멀티스레딩과 멀티프로세싱의 차이점과 각각의 장단점을 설명해주세요.

  • 멀티스레딩: 하나의 프로세스 내에서 여러 스레드가 동시에 수행되는 기법입니다. 스레드 간에는 데이터를 공유하기 때문에 자원의 효율적 사용이 가능하나, 동시성 관리가 필요합니다. GIL로 인해 파이썬에서는 CPU 바운드 작업에서의 이점이 제한됩니다.
  • 멀티프로세싱: 여러 개의 독립적인 프로세스가 동시에 수행되는 기법입니다. 각 프로세스는 독립된 메모리 영역을 가지므로, 멀티코어 프로세서에서 각 코어를 효율적으로 사용할 수 있습니다. 그러나 프로세스 간 통신을 위해 추가적인 오버헤드가 발생할 수 있습니다.

Django

  1. 장고(Django) 외의 다른 웹 프레임워크:
    • Flask: Flask는 마이크로 프레임워크로, 간단하고 확장 가능한 웹 애플리케이션을 빠르게 개발할 수 있도록 설계되었습니다. Django에 비해 기본으로 제공되는 기능이 적지만, 필요한 기능을 추가하며 확장할 수 있습니다.
    • FastAPI: 비동기 프로그래밍을 지원하며, API를 빠르게 구축하기 위해 설계된 현대적인 프레임워크입니다. 타입 힌트와 자동 문서화 기능을 강점으로 합니다.
  2. Django의 장단점:
    • 장점: 장고는 "배터리가 포함된" 프레임워크로, 사용자 인증, 관리 인터페이스, ORM 등 많은 기능이 내장되어 있어 복잡한 웹 애플리케이션을 신속하게 개발할 수 있습니다.
    • 단점: 때때로 너무 많은 기능이 포함되어 있어 간단한 프로젝트에는 과도하게 느껴질 수 있습니다. 또한, 프레임워크가 제공하는 방식대로 개발을 진행해야 할 때가 많아 유연성이 다소 떨어질 수 있습니다.
  3. Django와 Flask의 차이점:
    • Django는 전체적인 웹 개발 프로세스를 위한 구조와 도구를 제공하는 반면, Flask는 필요한 기능만 선택하여 사용할 수 있는 경량화된 접근 방식을 취합니다. Django는 크고 복잡한 웹 애플리케이션 개발에 적합하고, Flask는 간단하고 확장 가능한 웹 애플리케이션에 적합합니다.
  4. 장고의 ORM과 SQL 쿼리 간의 장단점:
    • ORM 장점: 데이터베이스 테이블을 파이썬 클래스로 표현할 수 있어, SQL 쿼리를 직접 작성하지 않고도 데이터베이스 작업을 할 수 있습니다. 코드의 가독성과 유지 보수성이 향상됩니다.
    • ORM 단점: 복잡한 쿼리의 경우 ORM을 사용하면 성능 저하가 발생할 수 있습니다.
    • SQL 쿼리 사용: 성능 최적화가 필요하거나 매우 복잡한 쿼리를 작성해야 할 때 직접 SQL 쿼리를 사용합니다.
  5. MVT(Model-View-Template) 구조:
    • 장고는 MVT 패턴을 따릅니다. 여기서 Model은 데이터베이스와의 인터페이스 역할을, View는 비즈니스 로직을 처리하고, Template는 사용자에게 보여질 HTML을 담당합니다.
  6. django에서 프로젝트를 생성했을 때 어떤 파일들이 생성되며, 각 파일들의 역할이 뭔지 설명해주세요
    •  manage.py: Django 프로젝트와 관련된 다양한 명령을 실행하기 위한 커맨드 라인 유틸리티입니다. 예를 들어, 앱 생성, 데이터베이스 마이그레이션 등의 작업을 수행할 수 있습니다.
    • __init__.py: Python에서 해당 디렉토리를 패키지로 인식하게 해주는 빈 파일입니다.
    • settings.py: 프로젝트의 설정을 포함하는 파일입니다. 데이터베이스 구성, 정적 파일 경로, 타임존 설정 등을 정의할 수 있습니다.
    • urls.py: 프로젝트의 URL 선언을 담당하는 파일입니다. Django의 URL 디스패처로 사용되며, URL 패턴을 뷰와 매핑합니다.
    • asgi.py 또는 wsgi.py: 프로젝트를 서비스하기 위한 ASGI(Asynchronous Server Gateway Interface) 또는 WSGI(Web Server Gateway Interface) 호환 웹 서버의 진입점입니다.
  7. 장고에서 app을 나누는 기준에 대해 본인 생각을 말씀해주세요.
    • 장고에서 앱을 나누는 기준은 주로 기능별로 구분하는 것이 일반적입니다. 하나의 앱은 하나의 기능 또는 관련된 기능의 집합으로 구성되어야 합니다. 예를 들어, 사용자 관리, 게시판, 결제 시스템 등 각각의 기능을 별도의 앱으로 분리하여 관리하는 것이 좋습니다. 이렇게 함으로써 프로젝트의 구조를 깔끔하게 유지하고, 재사용성과 유지보수성을 높일 수 있습니다.
  8. 장고에서 app 생성시 urls.py는 생성되나요? 생성이 안된다면 왜 안되는지 본인의 생각을 말해주세요.
    • Django에서 앱을 생성할 때 urls.py는 기본적으로 생성되지 않습니다. 이는 각 앱이 반드시 URL 패턴을 가질 필요가 없기 때문입니다. 예를 들어, 재사용 가능한 앱을 만들 때는 URL 패턴 없이 모델이나 템플릿, 폼 등만 포함될 수 있습니다. 그러나 앱이 웹 페이지를 제공하거나 API 엔드포인트를 포함하는 경우, 개발자는 직접 urls.py 파일을 앱 디렉토리에 생성하여 URL 패턴을 정의해야 합니다.
  9. 장고에서 미들웨어가 무엇인지 설명해주세요.
    •  미들웨어는 요청과 응답을 처리하는 동안 특정 작업을 수행하는 하위 시스템입니다. Django에서 미들웨어는 요청이 뷰에 도달하기 전에 실행되거나, 뷰에서 응답이 생성된 후에 실행됩니다. 예를 들어, 사용자 인증, 세션 관리, 국제화 처리, CSRF 보호 등을 미들웨어를 통해 처리할 수 있습니다.
  10. 장고에서 트랜잭션을 처리하기 위한 방법이 어떤 것이 있는지, 본인 사용 경험 근거하여 설명해주세요.
    • Django에서 트랜잭션을 처리하기 위한 방법으로는 주로 @transaction.atomic 데코레이터를 사용하는 방법이 있습니다. 이 데코레이터를 사용하면, 해당 데코레이터가 적용된 함수 또는 블록의 모든 데이터베이스 작업이 하나의 트랜잭션으로 묶입니다. 작업 중 하나라도 실패하면 전체 트랜잭션이 롤백되어 데이터의 일관성을 보장합니다. 또한, with transaction.atomic(): 문을 사용하여 트랜잭션을 명시적으로 관리할 수도 있습니다.
  11. FBV, CBV에 대해 각각 장단점 위주로 설명해주세요.
    • FBV 장점:
      • 코드가 직관적이고 이해하기 쉽습니다. 특히 작은 프로젝트나 단순한 로직을 구현할 때 적합합니다.
      • 함수 단위로 뷰를 구성하기 때문에 매우 명확하며, 데코레이터를 사용하여 확장성을 높일 수 있습니다.
    •  FBV 단점:
      • 중복 코드가 발생할 수 있습니다. 특히 여러 뷰에서 비슷한 로직을 사용할 때 이를 재사용하기 어려울 수 있습니다.
      • 복잡한 웹 애플리케이션에서는 코드의 관리가 어려워질 수 있습니다.
    • CBV 장점:
      • OOP(객체 지향 프로그래밍)의 장점을 활용할 수 있습니다. 즉, 상속과 믹스인을 사용하여 코드의 재사용성과 확장성을 높일 수 있습니다.
      • 비슷한 유형의 뷰를 구현할 때 코드를 더 간결하게 만들 수 있으며, 프로젝트의 일관성을 유지하기 쉽습니다.
    • CBV 단점:
      • 학습 곡선이 높을 수 있습니다. 특히, OOP에 익숙하지 않은 개발자에게는 이해가 어려울 수 있습니다.
      • 때로는 단순한 작업에 대해 과도하게 복잡해질 수 있으며, 오버라이딩을 통한 커스터마이징이 필요할 때 코드를 추적하기 어려울 수 있습니다.
  12. 장고로 어떤 프로젝트를 하셨고 어떤 에로사항이 었었는지 그리고 어떻게 해결 하셨나요?
  13. AWS 서비스를 어떻게 사용하셨나요? (예: S3, EC2)
    • S3: 정적 파일(이미지, CSS, JavaScript 파일 등)을 호스팅하는 데 사용합니다. S3 버킷에 파일을 저장하고, 이를 웹사이트나 애플리케이션에서 참조하여 사용할 수 있습니다.
    • EC2: 애플리케이션의 백엔드 서버를 실행하는 데 사용합니다. EC2 인스턴스 위에 웹 서버와 애플리케이션 서버를 설정하여 동적인 웹 애플리케이션을 호스팅할 수 있습니다.
  14. docker 이미지와 도커 컨테이너의 차이는 무엇인가요?
    • Docker 이미지는 애플리케이션을 실행하는 데 필요한 모든 파일, 코드, 라이브러리, 환경설정 등을 포함하는 불변의 템플릿입니다. 이미지는 컨테이너를 생성하는 기반으로 사용됩니다. 반면에 도커 컨테이너는 이미지를 기반으로 실행 중인 애플리케이션의 인스턴스입니다. 컨테이너는 격리된 환경에서 애플리케이션을 실행하며, 이미지로부터 생성되고 시작, 정지, 삭제 등의 작업을 수행할 수 있습니다. 간단히 말해, 이미지는 애플리케이션과 그 환경이 패키징된 것이고, 컨테이너는 그 이미지를 실행하는 실제 활성 상태입니다.
  15. 웹어플리케이션서버와 웹서버의 차이에 대해서 설명해주세요
    • 웹 서버는 HTTP를 통해 클라이언트(보통 웹 브라우저)로부터 요청을 받아 정적 컨텐츠(HTML 파일, 이미지, CSS, JavaScript 파일 등)를 제공하는 서버입니다. 반면, 웹 애플리케이션 서버는 동적 컨텐츠를 생성하여 제공하는 역할을 합니다. 웹 애플리케이션 서버는 애플리케이션 로직을 처리하고, 데이터베이스와의 상호작용, 비즈니스 로직 실행 등 복잡한 작업을 수행할 수 있습니다. 웹 서버는 보통 정적 컨텐츠를 빠르게 제공하는 데 초점을 맞추고, 웹 애플리케이션 서버는 애플리케이션의 동적 처리를 담당합니다.
  16. django rest framework를 사용하는 이유가 뭔가요?
    • Django Rest Framework(DRF)는 Django 위에 구축된 강력한 웹 API 제작을 위한 툴킷입니다. DRF를 사용하는 주된 이유는 API 개발을 보다 쉽고 빠르게 할 수 있게 해주기 때문입니다. DRF는 직관적인 시리얼라이저, 깔끔한 뷰 클래스, 권한 및 인증 메커니즘, 그리고 API 탐색과 문서화를 위한 툴을 제공합니다. 이를 통해 개발자는 보일러플레이트 코드를 줄이고, API를 보다 효율적으로 구축하고 관리할 수 있습니다.
  17. DRF의 시리얼라이저의 역할에 대해서 설명해주세요
    • Django Rest Framework의 시리얼라이저는 복잡한 데이터 구조(예: 쿼리셋, 모델 인스턴스)를 JSON, XML 또는 다른 콘텐츠 타입으로 쉽게 변환할 수 있게 해줍니다. 또한, 클라이언트로부터 받은 데이터를 파싱하여 복잡한 타입으로 역변환하는 역할도 합니다. 시리얼라이저를 사용함으로써 데이터 유효성 검사, 복잡한 데이터 타입 처리, 모델 인스턴스 생성 및 업데이트 등의 작업을 쉽게 처리할 수 있습니다.
  18. wsgi가 뭔지 설명해주세요
    • WSGI(Web Server Gateway Interface)는 파이썬에서 웹 서버와 웹 애플리케이션 또는 프레임워크 간의 표준 인터페이스입니다. WSGI의 목적은 웹 애플리케이션을 개발할 때 특정 웹 서버에 종속되지 않도록 하는 것입니다. 이를 통해 파이썬 웹 애플리케이션 또는 프레임워크가 다양한 웹 서버에서 호환될 수 있습니다. WSGI는 웹 애플리케이션과 웹 서버 사이에서 요청과 응답을 전달하는 중간자 역할을 합니다.
  19. ForeignKey, OneToOneField, ManyToManyField의 차이점을 설명해주세요.
    • ForeignKey: 두 모델 간의 "다대일(N:1)" 관계를 정의합니다. 예를 들어, 여러 개의 댓글(Comment) 모델 인스턴스가 하나의 글(Post) 모델 인스턴스에 연결될 수 있습니다. ForeignKey는 일반적으로 "참조하는" 모델에 정의됩니다.
    • OneToOneField: 두 모델 간의 "일대일(1:1)" 관계를 정의합니다. 이 필드를 사용하면 한 모델의 인스턴스가 다른 모델의 단 하나의 인스턴스와만 연결됩니다. 예를 들어, 사용자(User) 모델과 사용자 프로필(UserProfile) 모델 간의 관계를 정의할 때 사용될 수 있습니다. OneToOneField는 ForeignKey와 유사하지만, 연결된 두 인스턴스가 서로에게 완전히 대응됩니다.
    • ManyToManyField: 두 모델 간의 "다대다(N:M)" 관계를 정의합니다. 예를 들어, 여러 개의 학생(Student) 모델 인스턴스가 여러 개의 수업(Class) 모델 인스턴스에 등록될 수 있습니다. ManyToManyField는 관계를 관리하기 위해 별도의 연결 테이블을 사용합니다.
  20. Django에서 쿼리셋(QuerySet)의 eager loading, lazy loading에 대해 설명해주세요.
    • Lazy Loading: Django의 기본 쿼리셋 동작 방식입니다. 쿼리셋은 실제로 데이터베이스에 쿼리를 실행하기 전까지는 데이터를 로드하지 않습니다. 즉, 쿼리셋을 정의하고 필터링하는 동안 실제 데이터베이스 조회는 발생하지 않으며, 쿼리셋이 평가되는 순간(예: 반복, 인덱싱, 명시적 호출 등)에 데이터베이스 조회가 일어납니다.
    • Eager Loading: Django에서는 select_related와 prefetch_related 메소드를 사용하여 관련 객체를 미리 로드할 수 있습니다. 이는 관련된 객체나 집합을 조회할 때 발생할 수 있는 N+1 쿼리 문제를 해결하는 데 도움이 됩니다. select_related는 "다대일" 및 "일대일" 관계에서 사용되며 SQL의 JOIN 연산을 사용하여 관련 객체를 한 번의 쿼리로 불러옵니다. prefetch_related는 "다대다" 관계와 역 "다대일" 관계에서 사용되며, 별도의 쿼리를 실행하여 필요한 모든 관련 객체를 미리 가져온 후 파이썬에서 이를 조합합니다.

'내일배움캠프 개발자과정 > TIL' 카테고리의 다른 글

내일배움캠프 54일차 TIL  (0) 2024.04.30
내일배움캠프 53일차 TIL  (0) 2024.04.29
내일배움캠프 51일차 TIL  (1) 2024.04.25
내일배움캠프 50일차 TIL  (0) 2024.04.24
내일배움캠프 49일차 TIL  (0) 2024.04.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함