Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

AI가 번역한 다른 언어 보기

투잡뛰는 개발 노동자

[비전공, 개발자로 살아남기] 14. 신입 개발자 자주 묻는 기술면접 내용 요약

  • 작성 언어: 한국어
  • 기준국가: 모든 국가 country-flag

언어 선택

  • 한국어
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

durumis AI가 요약한 글

  • 신입 개발자 면접에서 자주 묻는 기술 질문들에 대한 답변으로, 메모리 영역, 자료구조, 데이터베이스, 프로그래밍 패러다임, 페이지 교체 알고리즘, 프로세스와 스레드, OSI 7계층, TCP와 UDP 등 다양한 주제를 다루었습니다.
  • 각 주제에 대한 설명과 함께 대표적인 예시를 들어 이해를 돕고, 면접에서 자주 나오는 개념들을 쉽게 이해할 수 있도록 풀어서 설명했습니다.
  • 이 글을 통해 신입 개발자들이 면접 준비에 도움을 얻고 자신감을 가질 수 있기를 바랍니다.

비전공, 개발자로 살아남기


#14. 신입 개발자 자주 묻는 기술면접 내용


[메인 메모리의 영역]

  • 코드 영역: 프로그램의 소스 코드가 저장되는 영역으로, CPU는 코드 영역에 저장된 명령어(소스, 함수, 제어문)를 가져와서 처리합니다. 예를 들어, C언어로 작성된 프로그램이 실행될 때, 코드 영역에는 이 프로그램의 소스 코드가 저장되어 있습니다.
  • 데이터 영역: 전역 변수와 정적 변수가 저장되는 영역으로, 프로그램 시작과 함께 할당되며, 프로그램이 종료될 때까지 소멸하지 않습니다. 예를 들어, C언어로 작성된 프로그램이 실행될 때, 데이터 영역에는 이 프로그램에서 선언한 전역 변수나 정적 변수가 저장됩니다.
  • 스택 영역: 프로그램이 사용하는 임시 메모리 영역으로, 함수의 호출과 관계되는 지역 변수와 매개 변수가 저장됩니다. 함수의 호출과 함께 할당되며, 함수가 종료되면 소멸합니다. 예를 들어, C언어로 작성된 함수를 호출할 때, 해당 함수에서 사용하는 지역 변수나 매개 변수가 스택 영역으로 할당됩니다.
  • 힙 영역: 사용자가 메모리 공간을 동적으로 할당하고 해제하는 영역입니다. 예를 들어, C언어에서 malloc() 함수를 사용하여 메모리를 동적으로 할당할 때, 할당된 메모리 영역이 힙 영역에 저장됩니다.

[자료구조]

  • 스택: 후입선출(LIFO) 방식의 자료구조입니다. 예를 들어, 컴퓨터에서 '뒤로가기' 버튼이 스택과 유사합니다. 이전에 방문한 페이지들이 스택에 저장되고, '뒤로가기' 버튼을 누르면 가장 최근에 저장된 페이지가 꺼내져 나타나는 것과 같습니다.
  • 큐: 선입선출(FIFO) 방식의 자료구조입니다. 예를 들어, 은행에서 대기번호표를 받아 대기열에 들어가는 것이 큐와 유사합니다. 가장 먼저 도착한 사람이 가장 먼저 처리받고, 가장 나중에 들어온 사람이 가장 나중에 처리받는 것과 같습니다.
  • 트리: 데이터를 계층 구조로 표현하는 자료구조입니다. 예를 들어, HTML의 DOM 트리가 트리와 유사합니다. HTML 페이지의 구조가 트리로 표현되며, 루트 노드인 html 태그에서 시작하여 하위 노드들이 순차적으로 표현됩니다.
  • 힙: 이진 트리 구조 중 하나로, 최대 힙과 최소 힙으로 나뉩니다. 예를 들어, 우선순위 큐에서 가장 높은 우선순위를 가진 데이터가 힙의 루트 노드에 위치하고, 그 다음으로 높은 우선순위를 가진 데이터가 하위 노드로 위치한 것이 최대 힙의 예시입니다.

[RDBMS와 NoSQL]

  • RDBMS: 엄격한 스키마로 데이터를 구조적으로 정의하고 관리하는 데이터베이스입니다. 데이터를 분산 저장할 수 있으며 수정이 용이합니다. 예를 들어, MySQL, Oracle, MS-SQL 등이 RDBMS의 대표적인 예시입니다.
  • NoSQL: 유연한 스키마로 데이터를 저장하고 관리하는 데이터베이스입니다. 대용량 데이터 처리 및 저장에 적합하며, 확장성도 높습니다. 예를 들어, MongoDB, Cassandra, HBase 등이 NoSQL의 대표적인 예시입니다.

[절차 지향과 객체 지향]

  • 절차 지향 프로그래밍: 순차적인 처리가 중요시되는 프로그래밍 기법입니다. C, Pascal 등의 언어가 절차 지향적인 언어입니다.
  • 객체 지향 프로그래밍: 객체(Object)라는 개념을 기반으로 데이터와 절차를 논리적으로 묶어 처리하는 방법입니다. Java, C++, Python 등의 언어가 객체 지향적인 언어입니다. 예를 들어, 자동차 시뮬레이션 프로그램에서 자동차를 객체로 표현하여, 자동차가 가지는 속성(색상, 가속도 등)을 데이터로, 자동차가 수행하는 기능(달리기, 멈추기 등)을 메소드로 표현합니다.

[Overriding과 Overloading]

  • Overriding: 부모 클래스가 가지고 있는 메소드를 자식 클래스에서 재정의해서 사용하는 것입니다. 자식 클래스에서 부모 클래스의 메소드를 호출하면 부모 클래스의 메소드보다 자식 클래스에서 재정의한 메소드가 실행됩니다. 예를 들어, Java에서의 toString() 메소드가 Overriding의 예시입니다.
  • Overloading: 같은 이름의 메소드를 여러개 정의하되, 매개 변수의 유형과 개수를 달리하여 다양한 유형의 호출에 응답하는 것입니다. 매개 변수가 다르지만 같은 이름을 가지는 여러 메소드들이 동작합니다. 예를 들어, Java에서 print() 메소드가 Overloading의 예시입니다.

[페이지 교체 알고리즘]

  • FIFO: 물리 메모리에 적재된지 가장 오래된 페이지를 교체합니다. 컴퓨터에서 일어나는 '작업 표시줄에서 닫기'도 FIFO 알고리즘과 유사합니다. 가장 처음 실행한 프로그램이 가장 마지막에 표시되어 닫히는 것과 같습니다.
  • LRU: 가장 오랜 기간 사용되지 않은 페이지를 교체합니다. 자주 사용되지 않는 앱 중에 오래된 앱을 종료시키는 '앱 종료 어플'도 LRU 알고리즘과 유사합니다.
  • LFU: 가장 적은 참조 횟수를 갖는 페이지를 교체합니다. 예를 들어, 브라우저에서 새로 열린 탭 중에 사용이 가장 적은 탭을 닫는 '탭 닫기' 기능도 LFU 알고리즘과 유사합니다.
  • MFU: 가장 많은 참조 횟수를 갖는 페이지를 교체합니다. MFU 알고리즘은 사용이 잘 이루어지지 않는 편입니다.

[프로세스와 스레드]

  • 프로세스: 운영체제로부터 할당받은 실행 작업 단위로 프로그램을 의미합니다. 여러 개의 프로세스가 동시에 실행될 경우, 각각의 프로세스는 독립된 메모리 영역과 CPU를 할당받습니다.
  • 스레드: 프로세스 내에서 동작하는 실행 단위로, 프로세스가 할당받은 자원을 공유하면서 실행됩니다. 예를 들어, 웹 브라우저에서 각각의 탭은 프로세스가 아니라 스레드로 동작합니다.

[OSI 7Layer]

  • Application layer: 사용자와 네트워크를 연결하는 계층으로, HTTP, FTP, SMTP 등의 프로토콜이 속합니다.
  • Presentation layer: 데이터의 표현 방식을 정의하는 계층으로, JPEG, MPEG, SSL 등의 프로토콜이 속합니다.
  • Session layer: 통신하는 두 시스템 사이에서 세션을 관리하는 계층입니다.
  • Transport layer: 데이터 전송을 담당하는 계층으로, TCP, UDP 등의 프로토콜이 속합니다.
  • Network layer: 데이터를 전송하기 위한 경로를 설정하는 계층으로, IP, ICMP 등의 프로토콜이 속합니다.
  • DataLink layer: 물리적인 주소(MAC 주소)에 의해 데이터를 전송하는 계층으로, Ethernet, Token Ring 등의 프로토콜이 속합니다.
  • Physical layer: 물리적인 연결 및 전송 매체에 대한 통신을 담당하는 계층입니다.

[TCP와 UDP]

  • TCP: 연결형 서비스로 신뢰성있게 데이터를 전송하는 방식입니다. 3-way handshaking과 4-way handshaking 방식을 통해 연결을 설정하거나 해제합니다. 예를 들어, 웹사이트에서 로그인하거나 파일을 전송할 때, TCP 방식을 사용합니다.
  • UDP: 비연결형 서비스로 데이터 전송을 위한 신호 절차를 거치지 않으며, 데이터의 신뢰성은 낮지만 처리 속도가 빠르다는 특징이 있습니다. 예를 들어, 동영상 스트리밍이나 온라인 게임 같은 경우, 빠른 전송이 중요하므로 UDP 방식을 사용합니다.
TheCareer
투잡뛰는 개발 노동자
코딩, 취업, 이직, 경제에 관심 많은 IT 노동자
TheCareer
[python]파이썬 기초1 파이썬 모듈 알아보기 PHP로 개발된 프로그램을 Python으로 마이그레이션하는 과정에서 Python의 기본 개념과 모듈 사용법을 설명합니다. Python은 스크립트 언어로, 동적 타이핑을 지원하며 플랫폼 독립적인 특징을 가지고 있습니다. 다양한 라이브러리 지원으로 생산성이 높으며, 모듈을 통해 코드 재사용성을 높일 수 있습니다.

2024년 3월 27일

[비전공, 개발자로 살아남기] 13. 신입 개발자 기술면접 신입 개발자 기술 면접에서 자주 묻는 질문과 답변 예시를 통해 개발 역량을 어필할 수 있습니다. 객체 지향 프로그래밍, 데이터베이스, 네트워크, 알고리즘, 팀 프로젝트 경험 등 다양한 질문에 대한 준비를 통해 자신감 있는 면접을 준비하세요.

2024년 4월 1일

[비전공, 개발자로 살아남기] 17. 신입개발자 포트폴리오, 어디까지? 신입 개발자 포트폴리오는 개발에 집중하는 것이 좋으며, 외부 API 연동 경험까지 갖추면 충분합니다. Infra는 현업에서 바로 적용하기 어렵기 때문에, 기본 기능을 탄탄하게 구현하는 데 집중하는 것이 더 효과적입니다.

2024년 4월 3일

[Concurrency] Atomic Operation: Memory Fence와 Memory Ordering Atomic 연산에서 메모리 순서를 고려하는 것은 동시성 처리에 필수적입니다. CPU 최적화로 인해 명령어 순서가 바뀌는 현상이 발생할 수 있으며, 이는 동시성 환경에서 문제를 일으킬 수 있습니다. Memory Fence와 Ordering 옵션을 통해 이러한 문제를 해결할 수 있습니다. Ordering 옵션에는 Relaxed, Acquire, Release, AcqRel, SecCst가 있으며, 각각 다른 수준의 메모리 순서 보장을 제공합니다.
곽경직
곽경직
곽경직
곽경직
곽경직

2024년 4월 12일

[오브젝트] 1장. 객체, 설계 소프트웨어 개발에서 변경 용이성과 의사소통은 중요하며, 이를 위해 객체 지향 설계를 적용해야 합니다. 객체는 자신의 데이터를 스스로 관리하는 자율적인 존재이며, 객체 간의 의존성을 적절하게 관리하는 것이 훌륭한 설계입니다.
제이온
제이온
제이온
제이온

2024년 4월 28일

[오브젝트] 2장. 객체 지향 프로그래밍 영화 예매 시스템을 객체 지향 프로그래밍으로 구현하는 방법을 설명합니다. 영화, 상영, 사람, 할인 정책, 할인 조건 등의 객체를 정의하고, 객체 간의 협력을 통해 할인 요금을 계산하는 방법을 제시합니다.
제이온
제이온
제이온
제이온

2024년 4월 28일

[Java] Synchronized Collection vs Concurrent Collection 자바에서 동기화된 컬렉션(Vector, Hashtable, Collections.synchronizedXXX)은 멀티 스레드 환경에서 동시성을 보장하지만, 성능 저하와 여러 연산을 묶어 사용할 때 문제 발생 가능성이 있습니다. 대안으로 java.util.concurrent 패키지의 병렬 컬렉션(CopyOnWriteArrayList, ConcurrentHashMap 등)을 사용하면 읽기 성능 향상과 효율적인 동시성 처리가 가능합니다.
제이온
제이온
제이온
제이온

2024년 4월 25일

[Javascript] Object의 구조 (V8) JavaScript에서 Object는 내부적으로 해시테이블과 유사한 방식으로 동작하지만, V8 엔진에서는 Hidden class를 이용하여 Fast 모드와 Dictionary 모드로 변환되어 성능을 최적화합니다. Hidden class는 객체의 구조를 정의하고 Fast 모드에서는 빠른 속도를 제공하지만, 키 추가 등의 변화가 발생하면 Dictionary 모드로 전환되어 해시테이블처럼 동작하며 성능이 저하될 수 있습니다.
곽경직
곽경직
곽경직
곽경직
곽경직

2024년 3월 18일

[DB] 캐시를 설정하는 기준 자주 읽지만, 쓰기 빈도가 낮은 데이터를 캐싱하는 방법과 로컬 캐싱, 글로벌 캐싱의 장단점을 비교 분석했습니다. 특히, 캐싱할 데이터의 종류, TTL 설정 방법, 실무 적용 사례와 함께 앞으로 성능 테스트 계획을 소개합니다.
제이온
제이온
제이온
제이온
제이온

2024년 4월 25일