꼭 알아야 할 프로그래밍 면접 질문과 답변 50가지
인터뷰에 성공하는 데 도움이 되는 최고의 프로그래밍 질문과 답변을 찾고 계신가요? 여기 상위 50개가 있습니다.

소프트웨어 회사에서는 항상 우수한 프로그래밍 인재를 찾고 있으며, 전화 면접이나 온라인 면접을 통해 단 몇 분 만에 합격 여부가 결정되는 경우도 많습니다.
훌륭한 프로그래머는 시스템 이해부터 일반 프로그래밍, 다양한 개념과 기술에 이르기까지 다양한 분야에 걸쳐 있어야 하며 최신 지식도 갖춰야 합니다.
다음은 50개의 상위 프로그래밍 면접 질문과 그 답변 목록입니다. 모든 초보자가 탁월해지기 위해 알아야 하는 다양한 개념에 빛을 비춥니다.
1. 컴퓨터 프로그래밍이란 무엇인가요?
컴퓨터 프로그래밍은 컴퓨터에서 실행될 논리적 프로세스를 인코딩하는 프로세스입니다. 이는 필요한 지침이 포함된 컴퓨터 언어를 사용하여 수행됩니다.
이 과정은 설계, 코딩, 디버깅, 업데이트로 더 나눌 수 있습니다.
2. 디버깅이란 무엇인가요?
디버깅은 컴퓨터 프로그램의 소프트웨어 소스에서 오류를 발견하고 제거하는 프로세스입니다. 이를 수행하는 방법은 여러 가지가 있지만 대부분의 개발 환경에는 작업을 더 쉽게 하기 위한 통합 디버거가 함께 제공됩니다.
3. 컴파일러란 무엇인가요?
컴파일러는 작성된 프로그램을 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 소프트웨어 프로그램입니다.
그러나 일반적인 컴파일러 패키지는 컴퓨터 언어를 어셈블리 코드로 바꾸는 주 컴파일러인 전처리기와 어셈블리로 구성됩니다.
4. 전처리기란 무엇인가요?
전처리기는 작성된 컴퓨터 코드를 분석하여 필요한 라이브러리 등의 종속성을 찾아 충족시키는 프로그램입니다.
전처리기가 실행 환경을 포함한 모든 것이 괜찮은지 확인한 후 컴파일러는 해당 코드를 어셈블리 코드로 변환할 수 있습니다.
5. 어셈블러란 무엇인가요?
어셈블러는 어셈블리 언어라고 불리는 인간이 읽을 수 있는 가장 낮은 수준의 컴퓨터 코드를 컴퓨터가 작업할 수 있는 기계어 코드로 변환하는 프로그램입니다.
어셈블리 언어는 일반적으로 컴파일러에 의해 출력되지만 직접 코딩할 수도 있습니다. 어셈블리 프로그램에는 다음과 같은 코드가 포함될 수 있습니다.
이동 AH, 02H
하지만 이를 기계어로 컴파일하면 0110011110101010과 XNUMX만 나옵니다(예: XNUMX).
6. 프로그램은 어떻게 실행되나요?
먼저, 운영 체제는 지정된 프로그램을 하드 디스크 저장소에서 시스템 메모리(RAM)로 로드한 다음 CPU에 프로그램의 첫 번째 메모리 주소에서 실행을 계속하도록 지시하여 실행하도록 합니다. CPU는 보는 모든 명령을 실행한 다음 다음 명령으로 이동하며, 종종 이 절차를 초당 수백만 번 반복합니다.
32비트 CPU는 32비트(4바이트, 더블워드) 명령어를 한 번에 실행하고, 64비트 CPU는 64비트(8바이트, 쿼드워드) 명령어를 한 번에 실행합니다. 이러한 명령어는 CPU에 내장되어 있으며, 프로그래밍 코드를 네이티브 CPU 명령 주소를 나타내는 이진수로 변환하는 것은 어셈블러입니다.
7. 정의 서브 루틴
서브루틴은 언제든지 호출하고 실행할 수 있는 프로그램의 명령어 시퀀스입니다. 즉, 서브루틴은 이메일 보내기, 파일 열기 또는 로그인 페이지 무차별 대입 공격과 같은 특정 작업을 구현하는 데 사용되는 함수, 메서드 또는 프로시저일 수 있습니다.
8. 정의 기계 코드
기계어 코드는 특정 마이크로프로세서의 실행 명령어와 관련 메모리 주소를 담고 있는 일련의 이진수입니다.
기계어 코드는 일반적으로 특정 마이크로프로세서 제품군에 맞게 설계된 어셈블러에서 출력됩니다.
9. 설명 컴파일 언어 vs 인터프리터 언어
컴파일된 컴퓨터 언어는 컴퓨터에서 실행되기 전에 기계어 코드로 바뀌어야 하지만, 해석된 언어는 사전 컴파일이 필요하지 않습니다.
해석된 프로그램을 실행하면, 먼저 해석기가 처리한 다음, 해석기가 컴파일하여 즉석에서 실행합니다. 이러한 추가 단계 때문에 Python과 같은 해석된 언어는 C와 같은 컴파일된 언어보다 느립니다.
10. 루프란 무엇인가요?
루프는 지정된 기준에 도달할 때까지 특정 문장을 반복할 수 있는 코드 구조입니다. 이 기준에는 고정된 반복 횟수나 정의된 변수의 변경이 포함될 수 있습니다.
11. 인기 있는 루프 유형을 나열하세요
다양한 컴퓨터 언어는 루프를 다른 방식으로 해석합니다. 그러나 인기 있는 C-패밀리 루프 유형은 다음과 같습니다.
- While() 루프 – Boolean인 경우 특정 코드 실행을 허용합니다. 하는 동안() 조건이 충족되었습니다.
예를 들어 while(2>1){print(“야후!”)};. - For(;;) 루프 – 세 개의 표현식을 포함합니다 (초기화; 평가; 업데이트) 테스트할 조건을 정의하고, 카운트를 증가시키는 유연한 방법도 제공합니다. 또한 최소한 한 번은 코드를 실행합니다.
- Do{} While() 루프 – 이 유형의 루프는 다음을 실행합니다. 하다{} 코드를 최소한 한 번은 확인하십시오. 하는 동안() 조건은 여전히 참입니다.
12. 반복과 반복을 설명하세요 재귀
반복은 루프를 사용하여 동일한 코드 단계를 실행하는 반면 재귀는 함수가 자신을 계속 호출하는 프로세스입니다. 그러나 재귀의 문제점은 메모리 문제가 발생할 때까지 특정 깊이까지만 갈 수 있다는 것입니다.
13. 직업을 설명하세요 중단하고 계속하기 루프에서
A 하다 문장은 루프 실행을 끝내고 나머지 컴퓨터 코드의 실행을 계속합니다. 계속 반면에 문장은 루프를 처음부터 반복합니다.
14. OOP란 무엇인가요?
OOP는 객체 지향 프로그래밍(Object Oriented Programming)의 약자로, 함수나 프로시저가 아닌 데이터와 객체를 중심으로 소프트웨어 디자인을 구현한 프로그래밍 패러다임입니다.
15. 절차적 프로그래밍이란 무엇입니까?
절차적 프로그래밍은 실행할 명령어의 시퀀스 또는 단계를 중심으로 컴퓨터 코드를 구성하는 프로그래밍 패러다임입니다. 이름에서 알 수 있듯이, 이벤트의 초기 단계에서 코드를 시작하여 이벤트의 예상 종료로 끝나는 탑다운 방식입니다.
16. 함수형 프로그래밍을 설명하세요
함수형 프로그래밍은 제공된 인수의 상태나 데이터를 변경하지 않는 순차적 함수를 적용하여 소프트웨어 개발에 접근하는 컴퓨터 프로그래밍 패러다임입니다.
목표는 예상치 못한 부작용 없이 예상한 결과를 얻는 더욱 강력한 프로그램을 만드는 것입니다.
17. 설명 고급 언어
고급 프로그래밍 언어는 컴퓨터의 특성이나 본질보다는 인간의 이해에 더 중점을 둔 컴퓨터 언어입니다.
C나 Python과 같은 고급 프로그래밍 언어는 이해하기 쉽지만, 저급 어셈블리 언어는 초보자에게는 매우 혼란스러울 수 있습니다.
18. 인기 목록 저수준 언어
저수준 프로그래밍 언어는 어셈블리와 머신 코드 두 가지 뿐입니다.
19. SQL 주입 공격 정의
SQL 주입 공격은 개발자가 프로그래밍 중에 입력을 제대로 정리하지 않았기를 바라며 사용자 이름이나 주소 입력과 같은 입력 필드에 SQL 문을 입력하는 프로세스입니다. 그리고 성공하면 이러한 공격은 공격자가 서버에 대한 관리자 액세스 권한을 얻을 수 있게 합니다.
20. SQL의 테이블이란 무엇입니까?
SQL의 테이블은 열과 행으로 그룹화된 데이터 모음을 말합니다. 각 열은 고유한 데이터 유형을 가지고 있으며 단일 데이터베이스에 여러 테이블을 가질 수 있습니다. 한 번에 여러 테이블을 쿼리할 수도 있습니다.
다음을 사용하여 테이블을 만듭니다.
CREATE TABLE 테이블 이름(열1 데이터 유형, 열2 데이터 유형, 열3 데이터 유형, ...);
21. 객체와 클래스의 차이점을 설명하세요
객체는 클래스의 인스턴스이고, 클래스는 객체가 생성되는 청사진입니다. 객체는 색상, 높이, 무게, 속도 등과 같은 상태와 속성을 가질 수 있습니다.
이러한 속성은 최소한 기본값으로 정의되거나 초기화되어야 합니다.
22. XNUMX메가바이트는 몇 비트로 이루어집니까?
8,000,000메가바이트는 1비트이고 8메가바이트는 10비트이므로 XNUMX메가바이트에는 XNUMX비트가 있습니다.6.
23. Float 데이터 유형 정의
float는 소수점 이하 자릿수를 나타내는 데이터 유형입니다. 표준 정수가 제공할 수 있는 것보다 더 높은 수준의 정밀도가 필요한 상황에서 사용됩니다. float의 예는 다음과 같습니다.
0.013
or
25.932
24. HexaDecimal 0xFF는 무엇을 의미합니까?
0xFF는 255진수 11111111 또는 0진수 16을 의미합니다. 1x는 9진수 표기법 또는 15진수 표기법을 의미하며, 0에서 15까지 표시한 후 A에서 F까지 표시하여 0를 나타냅니다. 따라서 255xF는 XNUMX진수 XNUMX이고, XNUMXxFF는 XNUMX진수 XNUMX입니다.
25. 프로그래밍 오류의 종류를 명명하세요
컴퓨터 프로그램에는 세 가지 주요 오류 유형이 있습니다.
- 구문 오류
- 논리적 오류
- 런타임 오류
26. 구문 오류란 무엇입니까?
구문 오류는 프로그래밍 언어의 엄격한 구문에서 벗어나는 경우 발생합니다. 이는 잘못된 매개변수에 문자를 잘못 배치하여 함수에 전달된 것에서 비롯될 수 있습니다. 대부분의 컴파일러는 오류가 발생한 소스 코드 줄 번호를 포함합니다.
27. 논리적 오류란 무엇입니까?
논리 오류는 프로그램이 작동하는 방식에서 발생하는 오류입니다. 따라서 프로그램이 완벽하게 실행될 수 있지만 목적을 달성하지 못합니다. 논리 오류는 여러 가지 방법으로 발생할 수 있으며 여러 가지 이유로 인해 발생할 수 있습니다.
28. 런타임 오류란 무엇입니까?
런타임 오류는 프로그램 실행 중에 발생하는 컴퓨터 프로그램 오류이며 예상치 못한 상황으로 인해 발생합니다. 따라서 프로그램이 완벽하게 작동하는 경우 메모리 및 네트워크 문제로 인해 프로그램이 제대로 작동하지 않을 수 있습니다.
29. 설명 강력한 언어 대 약한 유형의 언어
강력한 유형의 언어는 다양한 데이터 유형과 이를 변환하는 방법에 대해 엄격한 반면, 약한 유형의 언어는 데이터 유형과 그 정의에 대해 제한이 적습니다.
약한 형식의 언어 중 다수는 데이터 유형을 자동으로 변환하지만 강력한 형식의 언어는 명시적 변환을 요구하는 경우가 많습니다.
30. MVC 아키텍처란 무엇입니까?
MVC는 Model-View-Controller를 의미하며 사용자 인터페이스를 위한 소프트웨어 개발 패턴입니다. 프로그램 로직을 3개 부분으로 나눕니다.
The 모델 부분은 해당 객체의 기본 데이터 논리를 처리하는 반면, 전망 사용자에게 정보를 표시하는 것을 처리합니다. 제어 장치 뷰와 모델 간의 데이터 흐름을 처리합니다. MVC 디자인은 종종 객체 지향 프로그래밍과 함께 사용됩니다.
31. 정의하다 암호알고리즘
알고리즘은 특정 문제를 해결하기 위해 설계된 일련의 절차입니다. 이러한 절차는 일반적으로 더 작은 단계로 나뉘며 컴퓨터는 매번 정확히 그런 방식으로 이를 수행합니다.
알고리즘의 예로는 얼굴 인식, 구글 검색, 신발끈 묶는 방식, 데이터 인코딩이나 암호화 등이 있습니다.
32. 무엇입니까 머신러닝?
머신 러닝 또는 ML은 인공 지능의 한 분야로, 데이터를 사용하여 시스템이 패턴을 식별하고 스스로 결정을 내릴 수 있도록 돕는 데 중점을 두고 있습니다.
그러면 성능이나 효율성이 향상됩니다. 머신 러닝 시스템은 감독 기반, 비감독 기반, 강화 기반이 될 수 있습니다.
33. 무엇인가 정규 표현식?
정규 표현식 또는 Regex는 텍스트 문서에서 검색 패턴을 정의하는 데 사용되는 문자열입니다. 다양한 프로그래밍 언어는 정규 표현식을 구현하거나 인기 있는 정규 표현식 라이브러리를 사용합니다. 텍스트의 모든 문자와 일치하는 정규 표현식의 예는 다음과 같습니다.
(. *)
다음은 mp3 파일과만 일치합니다:
.+\.(mp3)$
34. 모듈러스(%) 연산자는 무슨 역할을 하나요?
모듈러스 연산자 % 두 개의 피연산자를 취하고 두 번째 피연산자를 사용하여 첫 번째 피연산자를 나눕니다. 그런 다음 연산의 나머지를 결과로 반환합니다.
이는 정수를 2로 나누어 홀수와 짝수를 테스트하는 데 자주 사용됩니다. 여기서 0은 짝수를 의미하고 1은 홀수를 의미합니다.
35. 설명 프로세스 포킹
포킹은 다음에서 발생합니다. 포크() 실행 중인 프로세스가 자신의 사본을 만드는 데 사용할 수 있는 Unix 및 Linux 시스템의 기능입니다. 따라서 프로세스 포킹은 프로세스를 복제하여 두 개의 유사하고 동시에 실행되는 프로세스를 만드는 것입니다.
포킹의 또 다른 유형은 오픈소스 프로젝트의 소스 코드를 가져와 완전히 새로운 프로그램을 만드는 것을 말합니다.
36. 설명 스레드 생성
스레드 스포닝은 프로세스를 실행하기 위해 새로운 CPU 스레드를 만드는 프로세스입니다. 스포닝은 종종 컴퓨팅 집약적 프로그램에서 프로세서의 멀티스레딩 기능을 활용하기 위해 사용되며, 성공 여부는 실행 중인 CPU, 코어 수, 코어당 제공하는 스레드 수에 따라 달라집니다.
37. 무엇을 합니까? 예약어 평균?
예약어는 프로그래밍 언어에서 식별자로 사용할 수 없는 용어입니다. 여기에는 함수, 변수, 레이블이 포함됩니다. 이미 정의되어 있고 특정 의미가 있기 때문에 예약되어 있습니다.
38. 인기 있는 예약어를 나열하세요
언어마다 구문에 따라 예약어가 다릅니다. 프로그래밍에서 가장 인기 있는 예약어는 다음과 같습니다.
- IF
- TRUE
- 그릇된
- SWITCH
- 싫다면
- CASE
- 부에 네
- RETURN
- FUNCTION
- BREAK
- GOTO
39. 문자열이란 무엇인가요?
문자열은 종종 배열에 보관되고 텍스트 데이터를 정의하는 데 사용되는 문자 시퀀스입니다. 가장 인기 있는 문자열은 "hello world"입니다.
40. 변수란 무엇인가요?
변수는 프로그램 실행 중에 변경될 수 있는 모든 값입니다. 변수는 문자열과 정수를 포함한 모든 데이터 유형이 될 수 있습니다. 예를 들어, 프로그램은 아래와 같이 초기화됩니다.
정수 = 0;
정수 b = 1;
그런 다음 실행 중에 변경 사항이 적용됩니다.
b = a+b; //b가 변함
41. 상수란 무엇입니까?
상수는 프로그램 실행 중에 변경되지 않을 것으로 예상되는 변수입니다. 좋은 예로는 빛이나 소리의 속도가 있습니다. 다양한 프로그래밍 언어에서 상수를 다양한 방식으로 정의할 수 있습니다. 예를 들어, C에서는 다음과 같습니다.
const float middle_c = 261.62; // 피아노의 중간 키 c는 261.6255Hz입니다.
42. 배열 정의
배열은 한 번에 여러 값을 저장하는 데 사용되는 변수 유형입니다. 많은 언어에서는 유사한 데이터 유형의 값만 저장할 수 있지만, 다른 언어에서는 다른 유형의 배열을 처리할 수 있습니다. 또한 배열의 배열인 다차원 배열을 가질 수 있으며, 이는 지저분해질 수 있습니다.
mql4에서 배열을 정의하는 것은 간단합니다.
string TextArray[100]; // XNUMX개의 문자열 배열
43. 무엇입니까 함수 오버로딩?
함수 오버로딩은 개발자가 이름은 같지만 기능은 다른 여러 함수를 정의할 수 있는 방법입니다. 이는 다른 인수를 사용하여 다른 함수 버전을 생성하여 달성됩니다. 그런 다음 컴파일러는 제공된 인수의 유형과 개수로 어떤 함수가 필요한지 알 수 있습니다.
44. 정의 참조로 호출
참조에 의한 호출은 인수의 메모리 주소를 함수에 전달하는 방법으로, 인수 값의 사본을 전달하는 표준 방법과 대조적입니다. 참조 호출의 목표는 인수가 함수에 의해 직접 수정된다는 것입니다.
45. 설명 산술 연산자
이들은 프로그래밍 언어에서 산술 연산을 수행하는 특수 문자입니다. 산술 연산자에는 다음이 포함됩니다.
- 덧셈 또는 단항 더하기(+)
- 뺄셈 또는 단항 빼기(-)
- 곱셈(*)
- 분할 (/)
- 계수 (%).
46. 설명 논리 연산자
논리 연산자는 조건 논리에 기반한 연산을 수행하는 데 사용되는 단어나 기호입니다. 대부분의 언어에는 3개의 논리 연산자만 있습니다.
- 및 (C, C++, JavaScript의 &&)
- OR (C, C++, JavaScript에서 ||)
- 않습니다. (! C, C++, JavaScript)
47. 논리적 1 AND 0 =?
논리적 1 AND 0 연산은 다음을 제공합니다. 그릇된 두 번째 피연산자는 0이고, AND 연산의 두 피연산자 모두 1이거나 TRUE여야 양의 출력을 얻을 수 있기 때문입니다.
48. 논리적 NOT 1 =?
논리적 NOT 1 연산은 다음을 제공합니다. 그릇된 NOT 연산자는 주어진 모든 것을 부정하기 때문에 1을 0으로, 0을 1로 바꿉니다. 따라서 1 또는 TRUE 피연산자를 제공하면 0 또는 FALSE가 됩니다.
49. 논리적 1 NAND 1 =?
논리적 1 NAND 1 연산은 다음을 생성합니다. 그릇된 두 피연산자가 모두 참이고 NAND 연산자는 항상 두 개의 유사한 입력을 부정하여 반대 출력을 생성하기 때문입니다.
따라서 작업이 다음과 같은 경우 0 낸드 0, 그러면 출력은 1 또는 TRUE가 됩니다.
50. 논리적 1 XOR 1 =?
논리적 1 XOR 1 연산은 다음을 생성합니다. 그릇된 일반적인 OR 연산은 두 입력 중 하나 또는 둘 다 TRUE인 경우 TRUE를 생성하는 반면, XOR(배타적 OR) 연산은 한 입력만 TRUE이고 다른 입력은 TRUE가 아닌 경우에만 TRUE를 생성합니다.
결론
우리는 꼭 알아야 할 프로그래밍 면접 질문 50가지와 그 답변 목록의 마지막에 도달했습니다. 그리고 보시다시피, 프로그래밍의 세계는 광대하지만 흥미진진합니다.
두 인터뷰가 똑같지는 않습니다. 따라서 이 목록이 올바른 주제 방향을 제시하는 반면, 각 이슈에 대한 더 나은 이해를 얻으려고 노력해야 합니다.





