객관식 Q1
파이썬에서 가상 환경을 만들어서 사용하는 이유와 관련된 설명 중 틀린 것을 고르세요.
가상 환경을 사용하면 프로젝트마다 다른 버전의 패키지를 독립적으로 관리할 수 있어서, 패키지 간의 충돌을 방지할 수 있습니다.
가상 환경을 사용하면 시스템 전체에 영향을 주지 않고 특정 프로젝트에 필요한 패키지를 설치할 수 있어서 시스템의 안정성을 유지할 수 있습니다.
가상 환경을 사용하면 기존에 설치된 패키지의 버전을 자동으로 업그레이드하여, 항상 최신 버전의 패키지를 사용할 수 있게 해줍니다.
가상 환경을 사용하면 프로젝트의 종속성을 더 쉽게 관리할 수 있으며, 다른 시스템으로 프로젝트를 이전할 때 필요한 패키지를 쉽게 재설치할 수 있습니다.
객관식 Q2
정답
10점
class에서 init 메서드에 관한 설명 중 틀린 것을 고르세요.
init 메서드는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 특수 메서드입니다.
init 메서드는 클래스에 대한 초기화를 수행하며, 필요한 경우 인자를 받아 인스턴스 변수를 설정할 수 있습니다.
init 메서드는 필요하지 않은 경우 생략할 수 있으며, 파이썬이 자동으로 빈 init 메서드를 제공합니다.
init 메서드는 클래스의 인스턴스가 생성된 후에는 호출할 수 없으며, 인스턴스가 삭제될 때 자동으로 다시 호출됩니다.
객관식 Q3
정답
10점
파이썬의 모듈과 패키지에서 init.py 파일에 관한 설명 중 틀린 것을 고르세요.
init.py 파일은 파이썬 3.3 이전 버전에서 패키지의 디렉토리에 있어야만 해당 디렉토리를 패키지로 인식할 수 있습니다.
init.py 파일은 해당 디렉토리가 패키지의 일부임을 나타내며, 비어 있을 수 있습니다.
init.py 파일은 패키지를 초기화할 때 실행되며, 패키지 수준의 변수나 함수, 클래스 등을 정의할 수 있습니다.
init.py 파일의 존재는 파이썬 3.3 이후 버전에서도 필수적이며, 없으면 해당 디렉토리는 패키지로 인식되지 않습니다.
객관식 Q4
정답
10점
객체 지향 프로그래밍(OOP)의 장점과 필요성에 대한 설명 중 틀린 것을 고르세요.
OOP는 코드의 재사용성을 높여 개발 시간과 비용을 줄일 수 있으며, 이는 클래스와 객체를 통해 구현됩니다.
OOP는 데이터를 추상화하고 캡슐화하여 외부의 접근으로부터 데이터를 보호하고, 데이터와 기능을 하나로 묶어 관리할 수 있습니다.
OOP는 프로그램의 복잡성을 관리하기 위해 상속성, 다형성과 같은 개념을 제공하지 않습니다. 이는 프로그램의 확장성과 유지보수성을 제한합니다.
OOP는 대규모 소프트웨어 개발에 적합하며, 복잡한 문제를 작은 단위로 나누어 해결할 수 있게 하는 모듈화를 촉진합니다.
객관식 Q5
정답
10점
테스트 주도 개발(Test-Driven Development, TDD) 과정에 관한 설명 중 올바르지 않은 것을 고르세요.
TDD는 먼저 실패하는 테스트 케이스를 작성하고, 이를 통과하기 위한 최소한의 코드를 구현한 다음, 코드를 리팩토링하는 과정을 반복합니다.
TDD 과정에서는 코드 구현 이전에 모든 테스트 케이스를 작성해야 하며, 그 후에야 실제 기능의 코드를 작성할 수 있습니다.
TDD를 통해 개발된 코드는 높은 수준의 유닛 테스트 커버리지를 가지며, 이는 소프트웨어의 품질을 보장하는 데 도움이 됩니다.
TDD는 리팩토링 단계에서 코드의 가독성과 유지보수성을 개선하며, 설계의 결함을 조기에 발견할 수 있게 합니다.
객관식 Q6
정답
10점
파이썬 표준 라이브러리에 관한 다음 설명 중 틀린 것을 고르세요.
json 모듈을 사용하면 파이썬 객체를 JSON 문자열로 직렬화할 수 있으며, JSON 문자열을 파이썬 객체로 역직렬화할 수 있습니다.
random 모듈은 난수를 생성하는 기능을 제공하며, 다양한 분포와 범위의 난수를 생성할 수 있습니다.
os 모듈을 통해 운영 체제와 관련된 다양한 기능을 사용할 수 있으며, 이는 파일 시스템을 조작하거나 운영 체제 정보를 얻는 데 사용됩니다.
collections 모듈은 고성능 자료구조를 제공하지 않으며, 주로 알고리즘 구현에 있어 기본적인 자료구조의 확장 기능을 제공합니다.
객관식 Q7
정답
10점
파이썬에서 예외 처리에 관한 다음 설명 중 틀린 것을 고르세요.
try 블록 안에서 코드 실행 중 예외가 발생하면, 파이썬은 해당 예외 타입에 맞는 except 블록을 찾아 실행합니다.
하나의 try 문에서 여러 개의 except 블록을 사용하여 다양한 예외를 처리할 수 있으며, 각 예외 타입별로 다른 처리를 할 수 있습니다.
finally 블록은 예외 발생 여부와 상관없이 try 문을 빠져나오기 전에 항상 실행됩니다.
예외 처리를 하지 않는 프로그램은 예외 발생 시 자동으로 해당 예외를 해결하고 프로그램을 정상적으로 계속 실행합니다.
객관식 Q8
정답
10점
파이썬에서 with 키워드와 함께 사용되는 context manager에 대한 설명 중 올바르지 않은 것을 고르세요.
with 키워드와 함께 사용되는 context manager는 실행 시간을 단축시키는 최적화 기법으로 작동하며, 코드 실행 시간을 현저히 줄여줍니다.
context manager를 사용하는 주된 이유 중 하나는 코드 내에서 명시적으로 리소스를 해제하는 호출을 줄여 코드의 가독성과 유지보수성을 향상시키는 것입니다.
context manager는 네트워크 연결이나 데이터베이스 세션과 같은 외부 리소스의 생명주기를 관리하는 데 자주 사용되며, 이러한 리소스의 정확한 해제를 보장합니다.
with 문을 사용하여 파일을 열면, 파일 작업이 완료된 후 자동으로 파일이 닫힙니다, 이를 통해 파일의 안정적인 사용과 리소스의 효율적 관리가 가능해집니다.
객관식 Q9
정답
10점
파이썬에서 비밀 정보(예: API 키, 비밀번호 등)를 관리하는 방법에 관한 다음 설명 중 올바르지 않은 것을 고르세요.
환경 변수를 사용하여 비밀 정보를 시스템 외부에서 관리하고, 파이썬의 os.environ을 통해 이러한 환경 변수에 접근할 수 있습니다.
비밀 정보를 소스 코드에 직접 하드코딩하는 것은 안전한 방법으로, 소스 코드가 외부에 공개되지 않는 이상 정보는 안전하게 보호됩니다.
.env 파일을 사용하여 비밀 정보를 관리하고, python-dotenv 라이브러리를 사용하여 이 파일로부터 환경 변수를 로드할 수 있습니다.
모든 비밀 정보는 단일 secrets.py 파일에 저장해 애플리케이션에서 직접 참조하는 것이 가장 좋은 방법입니다, 이 파일을 .gitignore에 추가하여 버전 제어 시스템에서 제외시키면 됩니다.
객관식 Q10
정답
10점
Git과 GitHub에 관한 다음 설명 중 올바르지 않은 것을 고르세요.
Git은 분산 버전 관리 시스템(DVCS)으로, 로컬과 리모트 저장소 간에 코드 변경 사항을 동기화할 수 있습니다.
GitHub는 Git 저장소를 호스팅하는 서비스이며, 코드 리뷰, 이슈 트래킹, 프로젝트 관리 등 협업을 위한 다양한 기능을 제공합니다.
Git의 commit 명령어는 리모트 저장소에 변경 사항을 직접 반영하며, 이를 통해 다른 사용자와 변경 사항을 실시간으로 공유할 수 있습니다.
GitHub Actions는 GitHub 저장소를 위한 CI/CD(지속적 통합 및 배포) 서비스를 제공하여, 소프트웨어 개발 워크플로우를 자동화할 수 있습니다.