C# 기초 면접 질문 및 답변
C# 기초 면접 질문 및 답변
1. 프로그래밍 기초
Q1. 프로그래밍이란 무엇인가요?
A. 문제를 해결하기 위한 절차를 설계하고, 이를 프로그래밍 언어로 작성하는 과정입니다.
Q2. 프로그래밍 언어를 사용하는 이유는 무엇인가요?
A. 사람이 컴퓨터에 원하는 작업을 명령할 수 있도록 하기 위해 사용합니다.
Q3. 기계어란 무엇인가요?
A. 컴퓨터의 CPU가 직접 이해하고 실행할 수 있는 언어로, 일반적으로 0과 1로 표현됩니다.
Q4. 고급 언어와 저급 언어의 차이는 무엇인가요?
A. 고급 언어는 사람이 이해하기 쉽고, 저급 언어는 컴퓨터 하드웨어에 더 가까운 형태입니다.
Q5. 컴파일러와 인터프리터의 차이는 무엇인가요?
A. 컴파일러는 코드를 다른 형태로 변환하고, 인터프리터는 코드를 해석하면서 실행합니다.
2. C#과 .NET
Q6. C#이란 무엇인가요?
A. Microsoft에서 개발한 고급 프로그래밍 언어로, 다양한 응용 프로그램과 Unity 게임 개발 등에 사용됩니다.
Q7. C#의 주요 특징은 무엇인가요?
A. 강력한 타입 시스템, 객체 지향 프로그래밍 지원, 자동 메모리 관리 등이 있습니다.
Q8. 객체 지향 프로그래밍이란 무엇인가요?
A. 데이터와 기능을 객체라는 단위로 묶어 프로그램을 구성하는 프로그래밍 방식입니다.
Q9. .NET이란 무엇인가요?
A. 프로그램을 개발하고 실행할 수 있도록 다양한 도구와 라이브러리를 제공하는 플랫폼입니다.
Q10. C#과 .NET의 차이는 무엇인가요?
A. C#은 프로그래밍 언어이고, .NET은 해당 언어로 작성한 프로그램을 개발하고 실행할 수 있도록 지원하는 플랫폼입니다.
Q11. CLR이란 무엇인가요?
A. .NET 프로그램을 실행하는 환경으로, 메모리 관리와 예외 처리 등의 기능을 담당합니다.
Q12. BCL이란 무엇인가요?
A. 입출력, 파일 처리, 날짜 처리 등 다양한 기본 기능을 제공하는 클래스 라이브러리입니다.
Q13. 가비지 컬렉션이란 무엇인가요?
A. 더 이상 사용하지 않는 메모리를 자동으로 정리하는 기능입니다.
Q14. SDK란 무엇인가요?
A. 프로그램을 개발하는 데 필요한 컴파일러와 도구 등을 제공하는 개발 키트입니다.
3. C# 프로그램의 실행 과정
Q15. C# 프로그램은 어떤 과정을 거쳐 실행되나요?
A. C# 소스 코드를 컴파일하여 중간 언어인 IL로 변환하고, 실행 시 JIT 컴파일러가 이를 기계어로 변환합니다.
Q16. IL이란 무엇인가요?
A. C# 코드를 컴파일했을 때 생성되는 중간 언어로, 특정 CPU에 종속되지 않는 형태입니다.
Q17. JIT 컴파일러란 무엇인가요?
A. 프로그램 실행 중 IL을 실제 CPU가 실행할 수 있는 기계어로 변환하는 컴파일러입니다.
4. 개발 환경과 디버깅
Q18. 솔루션과 프로젝트의 차이는 무엇인가요?
A. 솔루션은 여러 프로젝트를 관리하는 단위이고, 프로젝트는 프로그램을 빌드하기 위한 기본 단위입니다.
Q19. .cs 파일과 .csproj 파일의 차이는 무엇인가요?
A. .cs 파일은 C# 소스 코드를 담고, .csproj 파일은 프로젝트의 설정과 빌드 정보를 담습니다.
Q20. 빌드란 무엇인가요?
A. 소스 코드와 필요한 리소스를 처리하여 프로그램 실행에 필요한 결과물을 만드는 과정입니다.
Q21. Debug와 Release의 차이는 무엇인가요?
A. Debug는 개발과 디버깅에 적합한 설정이고, Release는 배포를 위해 최적화하는 설정입니다.
Q22. 디버깅이란 무엇인가요?
A. 프로그램의 실행 과정을 확인하여 오류의 원인을 찾고 수정하는 과정입니다.
Q23. 중단점이란 무엇인가요?
A. 프로그램 실행을 특정 위치에서 일시 정지하여 변수의 값과 실행 상태를 확인할 수 있도록 하는 기능입니다.
Q24. 컴파일 오류와 런타임 오류의 차이는 무엇인가요?
A. 컴파일 오류는 코드를 빌드하는 과정에서 발생하고, 런타임 오류는 프로그램 실행 중에 발생합니다.
Q25. 오류와 경고의 차이는 무엇인가요?
A. 오류는 일반적으로 빌드나 실행을 방해하는 문제이고, 경고는 잠재적인 문제를 알려 주는 메시지입니다.
5. C# 기본 문법
Q26. Console.WriteLine()과 Console.Write()의 차이는 무엇인가요?
A. WriteLine()은 출력 후 줄을 바꾸고, Write()는 줄을 바꾸지 않습니다.
Q27. 주석이란 무엇인가요?
A. 코드에 설명을 남기는 기능으로, 프로그램 실행에는 영향을 주지 않습니다.
Q28. 한 줄 주석과 여러 줄 주석의 차이는 무엇인가요?
A. 한 줄 주석은 한 줄을 대상으로 하고, 여러 줄 주석은 지정한 범위 전체를 대상으로 합니다.
Q29. 들여쓰기가 중요한 이유는 무엇인가요?
A. 코드의 계층 구조를 명확하게 보여 주어 가독성을 높이기 때문입니다.
Q30. 들여쓰기가 잘못되면 컴파일 오류가 발생하나요?
A. 일반적으로 들여쓰기는 컴파일러가 무시하므로 오류가 발생하지 않지만, 코드를 읽기 어려워질 수 있습니다.
Q31. C#에서 공백은 어떤 역할을 하나요?
A. 코드의 가독성을 높이고 키워드와 식별자를 구분하는 역할을 합니다. 다만 문자열 내부의 공백은 실제 데이터의 일부입니다.
Q32. 이스케이프 시퀀스란 무엇인가요?
A. 문자열 안에서 줄바꿈이나 탭처럼 특별한 기능을 표현하는 문자 조합입니다.
Q33. 문자열 보간이란 무엇인가요?
A. 문자열 내부에 변수나 계산 결과를 삽입하여 문장을 만드는 기능입니다.
Q34. nameof 연산자란 무엇인가요?
A. 변수나 멤버 등의 이름을 문자열로 반환하는 연산자입니다. 이름 변경에 대응하기 쉽고, 존재하지 않는 이름을 사용하면 컴파일 오류로 확인할 수 있습니다.
Q35. 최상위문이란 무엇인가요?
A. 클래스와 Main 메서드를 직접 작성하지 않고 실행할 코드를 바로 작성하는 방식입니다.
Q36. Main 메서드란 무엇인가요?
A. 일반적인 C# 프로그램에서 실행이 시작되는 진입점입니다.
6. 기본 자료형과 변수
Q37. char, string, bool의 차이는 무엇인가요?
A. char는 문자 하나, string은 문자열, bool은 참 또는 거짓을 나타내는 자료형입니다.
Q38. char와 string의 차이는 무엇인가요?
A. char는 하나의 문자를 저장하고, string은 여러 문자로 이루어진 문자열을 저장합니다.
Q39. bool 변수의 이름은 어떻게 작성하는 것이 좋은가요?
A. 참과 거짓의 의미를 명확히 알 수 있도록 is, has, can 등으로 시작하는 이름을 사용하는 것이 좋습니다.
Q40. 변수란 무엇인가요?
A. 프로그램에서 데이터를 저장하고 사용하기 위해 이름을 붙인 공간입니다.
7. 형 변환
Q41. 형 변환이란 무엇인가요?
A. 한 자료형의 값을 다른 자료형의 값으로 변환하는 것입니다.
Q42. 암시적 형 변환과 명시적 형 변환의 차이는 무엇인가요?
A. 암시적 형 변환은 별도의 변환 표시 없이 이루어지고, 명시적 형 변환은 개발자가 변환을 직접 지정합니다.
Q43. 명시적 형 변환이 필요한 이유는 무엇인가요?
A. 자료형의 범위나 표현 방식이 달라 자동 변환이 허용되지 않는 경우 변환 의도를 명확하게 지정하기 위해 필요합니다.
Q44. 형 변환 시 주의할 점은 무엇인가요?
A. 값의 범위가 달라지거나 소수 부분이 사라지는 등 데이터 손실이 발생할 수 있으므로 변환 결과를 확인해야 합니다.
Q45. 실수형을 정수형으로 변환하면 어떻게 되나요?
A. 일반적인 명시적 형 변환에서는 소수 부분이 반올림되지 않고 버려집니다.
Q46. 숫자의 오버플로란 무엇인가요?
A. 계산 결과가 자료형이 표현할 수 있는 범위를 벗어나는 현상입니다.
Q47. checked와 unchecked의 차이는 무엇인가요?
A. checked는 정수 연산의 오버플로를 검사하고, unchecked는 일반적으로 오버플로 예외를 발생시키지 않고 연산을 수행합니다.
Q48. Parse와 TryParse의 차이는 무엇인가요?
A. Parse는 변환에 실패하면 예외를 발생시키고, TryParse는 변환 성공 여부를 반환하여 예외 처리 부담을 줄일 수 있습니다.
Q49. Console.ReadLine()은 어떤 값을 반환하나요?
A. 사용자가 입력한 한 줄의 내용을 문자열로 반환합니다.
Q50. 문자열을 정수로 변환할 때 주의할 점은 무엇인가요?
A. 입력한 문자열이 유효한 정수 형식인지 확인해야 하며, 잘못된 입력에 대비해 TryParse를 사용할 수 있습니다.
면접 전 핵심 정리
- C#: 프로그래밍 언어
- .NET: 프로그램 개발 및 실행 플랫폼
- CLR: .NET 프로그램 실행 환경
- IL: 컴파일 후 생성되는 중간 언어
- JIT: IL을 실행 시 기계어로 변환
- 변수: 데이터를 저장하고 사용하는 공간
- 형 변환: 자료형 사이에서 값을 변환하는 것
- 주석: 코드에 설명을 남기는 기능
- 디버깅: 실행 과정을 확인하며 오류를 찾고 수정하는 과정
- 최상위문: 클래스와
Main메서드를 생략하고 코드를 작성하는 방식



