1. Python의 장점과 단점은 무엇이라고 생각하시나요?

    장현웅 Python 1 장점 :파이썬의 문법은 간결하고케이션에는 부적합할 수 있습니다. 빠른 실행 속도를 요구하거나 하드웨어를 직접 제어해야 하는 프로그램에는 파이썬이 적합하지 않을 수 있습니다. 직관적이어서 가독성이 좋아 쉽게 이해할 수 있습니다. 특히 코드를 작성할 때 들여쓰기(띄어쓰기나 탭)를 사용하여 코드블럭을 구분하기 때문에 자연스럽게 가독성이 높아질 수 밖에 없는 구조입니다. 이는 코드를 작성하고 유지보수하는데 도움이 됩니다.파이썬은 동적 타입 언어로 변수의 자료형(타입)을 명시적으로 지정해 줄 필요 없이 변수를 선언할 때 값에 따라 파이썬이 자동으로 그 타입을 결정해 주기 때문에 개발자가 불필요한 타입 선언을 신경 쓰지 않아도 됩니다.파이썬은 다른 스크립트 언어와 달리 객체 지향 기술을 이용하여 만들어져 한 번 코드를 작성하면 운영 체제에 관계없이 동일하게 실행되기 때문에 플랫폼에 대해 독립적인 성향을 띕니다.파이썬은 인간의 사고와 유사하다고 볼 수 있을 정도의 간결하고 쉬운 문법으로 인해 쉽게 학습할 수 있어 사람들의 유입이 쉽고, 다른 언어에 비해 적은 코드로 동일한 작업을 수행할 수 있기 때문에 비교적 오류 발생이 적고 생산성이 뛰어납니다.또한, 많은 라이브러리를 제공하기 때문에 코드 작성 시간을 단축할 수 있고, 더불어 확장성과 이식성이 뛰어나 높은 성능의 애플리케이션 개발이 필요하다면 C나 C++ 같은 언어나 라이브러리에 쉽게 접근해서 연동하여 사용할 수 있습니다.단점 :파이썬은 다른 컴파일 언어에 비해 실행 속도가 느릴 수 있습니다. 이는 특히 실시간 성능이 중요한 애플리파이썬은 변수 타입이 실행 중에 동적으로 결정되는 동적 타입 언어인데 이로 인해 예상하지 못한 타입 관련 오류가 발생할 수 있으며, 디버깅이 어려울 수 있습니다. 정적 타입 언어와 비교할 때 이러한 유형의 오류를 미연에 방지하기 어려울 수 있습니다.x = 5 # x는 정수x = "Hello" # 이제 x는 문자열y = 10z = x + y # 이 줄에서는 x가 문자열이므로 정수와 문자열을 더하려고 하면 타입 오류가 발생합니다.print(z)파이썬은 다양한 데이터베이스 시스템과 연동할 수 있는 드라이버를 제공하나, 모든 데이터베이스 시스템을 완벽하게 지원하지 않습니다. 특히 대규모 기업이나 조직에서 파이썬을 데이터베이스와 연결하는 데 파이썬과의 호환성이 부족하거나 제대로 지원이 되지 않을 수 있습니다. 파이썬은 일반적으로 높은 수준의 언어로, 데이터베이스 액세스와 관련된 작업에서 성능과 확장성 면에서 한계를 가질 수 있습니다. 대량의 데이터 처리나 빠른 데이터베이스 액세스가 필요한 경우, 다른 언어나 기술을 고려해야 할 수 있습니다.대규모 조직에서는 데이터의 보안 및 트랜잭션 관리가 중요한데, 파이썬은 이러한 측면에서 미흡할 수 있습니다. 또한, 파이썬의 데이터베이스 관련 라이브러리와 도구는 다른 기술에 비해 지원과 커뮤니티가 한정적일 수 있습니다.따라서 파이썬을 데이터베이스와 통합하려는 경우, 조직의 목표와 요구 사항을 고려하고 필요한 경우 더 강력한 데이터베이스 관리 시스템을 고려해야 합니다. 모범답안 파이썬의 장 / 단점쉽고 직관적인 문법 에서 오는 접근성, 풍부한 라이브러리와 활성화 된 커뮤니티, dynamic type의 장/단점, 속도 등 파이썬이라는 언어를 사용할 때 자주 접하게 되는 키워드들을 잘 집어 주셨습니다.다만, 면접에서 파이썬과 DB와의 호환성과 같은 내용을 언급 할 경우 "왜 그렇게 생각하는가?" 라는 질문이 나왔을 때 충분히 설명할 수 있어야 합니다.만약 내가 특정 항목에 대해 왜 그런지 답변하기 어렵다면 해당 항목에 대해 더 공부해 보거나 다른 항목으로 대체하는 것이 좋습니다.
  2. '파이썬은 느리다'라는 문장에 대해 본인의 생각을 기술적 근거를 기반으로 말해주세요.

    김민재 Python 2 파이썬이 느리다는 문장에 대해선 어떤 식으로 항변한다 해도 결국 느리다는 것은 인정할 수 밖에 없을 것이다.코드 한 문장에서 0.01초, 0.1초, 1초의 차이가 체감되는 차이를 만들지는 못한다고 하더라도 이러한 차이가 수백,수천이 쌓인다면 결과적으로는 유의미한 차이로 눈에 나타날 것이다.그래서 파이썬은 대규모 인프라 서버에 맞지 않고 대형 프로젝트에서 다른 플랫폼 언어에 부가적으로 사용되는 경우가 많다고 한다.이에 대한 기술적인 근거로 말한다면 결국 파이썬의 장점이자 단점이 되는 특징을 말할 수 밖에 없을 것 같다.잘 알려진대로 파이썬은 동적 타입 언어라 객체의 PyObject_HEAD에 typecode를 설정하고 읽어오는 작업이 모두 실행 시간에 이루어진다.그렇기 때문에 개발환경에서 변수타입을 설정안해줘도 되는 장점이 있지만 실행과정에서 더 느리다는 단점이 있는 것이다.여기서 더 나아가 각 데이터를 객체 형식으로 저장하고 각 변수는 객체들을 참조하는 방식으로 동작하기 때문에 모든 객체는 reference count를 가지게 된다.이러한 rf를 효율적으로 관리하기 위해 파이썬은 GIL을 채택하고 있는데, 여기서 문제가 발생하게 된다.파이썬에서 멀티 스레드를 사용하려고 하면 GIL 때문에 하나의 스레드에만 모든 자원을 허락하고 Lock을 걸어 다른 스레드는 실행할 수 없게 막아버리는 것이다.그래서 각각의 스레드가 병렬적으로 일할 것이라는 생각과는 다르게 하나의 스레드만 작동하고 thread context switch에 따른 비용도 따로 발생하기 때문에 오히려 멀티 스레드에서 동작이 더 느려지는 결과를 가져다주기도 한다. 모범답안 python이 느리다는 것은 다양한 관점에서 볼 수 있습니다.1. 실행 시간 - python은 인터프리터 언어이며 동적 타입을 지원하기 때문에 컴파일 언어보다 실행 시간이 느립니다.2. 성능 - python은 기본적으로 GIL로 인해 하나의 스레드에서만 실행할 수 있으며, 이 때문에 멀티 프로세스의 병렬 처리에 제한적입니다.이와 같은 python의 특징을 잘 설명해 주셨습니다.
  3. 가상환경이란 무엇인지에 대해서 설명해주세요.

    윤한기 Python 3 가상환경은 우리가 개발에 필요한 물품(인터프리터, 라이브러리 등)을 사용하기 위해 가상의 독립된 공간을 만들어 한 곳에 담아둔다 라고 생각하면 좋을 것 같습니다.우리가 개발에 사용하는 파이썬, 그리고 그 안에서 여러 기능을 도와주는 라이브러리들은 모두가 다양한 버전을 가지고 있습니다. 이러한 다양한 버전의 라이브러리는 버전이 바뀌면서 기능이 추가되거나 삭제되거나 변경되어 저마다 조금씩 다르게 사용해야 하는 경우도 생깁니다.그렇기 때문에 개인 프로젝트라면 본인이 개발한 당시에 썼던 라이브러리들을 가상환경에 담아두고, 협업을 해야 하는 프로젝트의 경우에는 저마다 버전이 다르면 제대로 작동하지 않을 확률이 매우 높기 때문에 사용하는 라이브러리들의 종류와 버전을 맞춰 하나의 가상환경을 만들어 협업 시 버전의 차이로 발생하는 오류를 방지할 수 있습니다. 모범답안 venv를 사용하는 가장 대표적인 이유는 아래와 같습니다.1. 독립적인 환경에서 프로젝트 간 버전 및 의존성 충돌을 방지합니다.2. 일관된 환경(버전)에서 프로젝트를 실행할 수 있도록 해줍니다.이에 대한 내용을 잘 설명해 주셨습니다.
  4. 환경변수란 무엇인지 설명해주세요.

    윤한기 Python 4 환경변수 (PATH) 는 시스템에서 파일을 찾는 기본 경로입니다.시스템 내에 필요한 파일을 실행하기 위해서는 항상 파일이 있는 경로에 들어가서 직접 실행해야 합니다.하지만 파일이 있는 경로를 환경변수로 설정해두면, 어느 위치에서든 파일명 만으로 실행할 수 있게 됩니다.따라서 우리가 파이썬을 설치하면서 환경변수에 등록하는 이유는파이썬 코드를 실행하려면 항상 파이썬을 설치한 폴더로 가서 파이썬을 실행시키고 그 코드를 실행시켜야 하는데 환경변수를 등록함으로써 그 번거로움을 줄여줄 수 있습니다. 모범답안 os에서 명령어를 실행시키거나 파일들을 탐색 할 때 해당 경로를 입력시키지 않고도 탐색 할 수 있게 해주는 환경변수의 특성과 대부분의 os에서 가장 대표적으로 사용되는 PATH에 대해 잘 정리해 주셨습니다.
    이솔 Python 4 환경 변수의 사전적 의미는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임으로 쉽게 말하자면 운영체제가 참조하는 변수라고 할 수 있습니다. 가장 익숙한 환경변수로는 path가 있는데, path는 프로그램을 찾는 기본 경로로 python, pip 등의 명령어를 실행할 때 프로그램이 저장된 경로를 확인하여 실행합니다. 터미널에서 실행시 해당 명령어를 찾지 못한다는 문구가 뜬다면 해당 프로그램의 path를 확인해 보는 것도 좋습니다. 모범답안 os에서 명령어를 실행시키거나 파일들을 탐색 할 때 해당 경로를 입력시키지 않고도 탐색 할 수 있게 해주는 환경변수의 특성과 대부분의 os에서 가장 대표적으로 사용되는 PATH에 대해 잘 정리해 주셨습니다.
  5. 파이썬에서 매개변수와 인자의 차이를 설명해주세요.

    | 이재윤 | Python | 5 | 예를 들어 매개변수(Parameter), 인자(Argument)를 설명하겠습니다.

    def sum(x,y): a= x+y return aresult = sum(3,5)

    위같은 함수 선언과 함수를 호출할때 함수가 필요로하는 값을 받을 수 있는 변수를 매개변수라고 하고 "sum"함수를 호출할때 전달되는 3,5는 인자 입니다. | 모범답안 | 매개변수와 인자의 차이에 대해 잘 설명해 주셨습니다. | | --- | --- | --- | --- | --- | --- |