도리안의 개발 잡설 #248 - 개발자를 위한 면접 자료 찾아보기

in zzan2 years ago

직장인으로 살다 보면, 의도치 않게 직장을 옮길 수 밖에 없는 상황을 맞이할 수도 있다. 그런 상황이 갑자기 닥치면, 이력서도 그렇지만 면접 준비가 특히 어렵다. 특히 개발자로서 면접은 자신의 전문성을 짧은 시간 내 증명해야 하는 관문이다. 어떤 질문이든 들어올 수 있고, 우리는 그에 대한 만족스러운(이게 면접관마다 주관적이라는 게 변수) 답변을 할 수 있어야 한다. 이직할 때가 되어서야 면접 준비하는 것은 너무나도 빠듯하다. 평소에 자료를 모아서 조금씩 준비하는 것이 좋지 않을까 생각한다.

유튜브에서는 요즘 면접 관련 자료들이 많이 올라와 있다. 개발 관련 면접 자료는 아직 많아 보이지는 않지만, 점점 많아질 것으로 예상한다. 오늘 포스트에서는 괜찮아 보이는 영상 하나 공유하고 거기서 나오는 질문들을 리스트로 적어둔다. 여기서 나오는 면접은 경력보다는 신입 면접에서 더 많이 나올 질문들이지만, 미처 챙기지 못했던 개념들이 있어서 다루어 보기로 했다. 때로는 허를 찌르는 의도로 개념적인 질문을 할 수도 있다. 경력자라도 어떤 질문이든 받을 수 있으니 준비해 두는 것도 나쁘지 않다.


면접 질문

(1) 아이스 브레이크

  • 혹시 저희 회사에 대해서는 들어보셨나요? 어떤 회사로 알고 있나요?
  • 시스템 개발도 있고 웹 개발도 있는데 웹 개발로 지원을 한 이유가 있으신가요?
  • 웹 개발자로 지원하기 위해 어떤 공부를 하셨나요?
  • 자기 소개를 1분 정도 간단하게 짧게 부탁 드립니다.
  • 현재 IT 기술 중에 제일 관심있는 분야는 무엇인가요?
  • 사용 가능한 언어는 무엇인가요?
  • 본인이 가장 자신있어 하는 언어는 무엇인가요?
  • 요즘 언어들 중에서도 인기있는 언어들이 있잖아요. Python이나 JavaScript 같은 다른 언어도 해보셨나요?
  • 객체 지향 언어가 있고 절차 지향 언어가 있는데요. 그 두 언어들의 차이와 장단점을 설명해 주실 수 있나요?
  • 절차 지향 언어와 객체 지향 언어의 대표적인 언어는 어떤 것들이 있을까요?

(2) 데이터 타입

  • 데이터 타입은 무엇인가요?
  • 데이터 타입과 변수의 차이는 무엇인가요?
  • Value Type과 Reference Type은 뭔가요?
  • 대표적인 Value Type과 Reference 타입을 얘기해 주세요.
  • 문자형도 char type과 string type이 있습니다. 왜 그렇게 나눠져 있을까요?
  • char type을 안 쓰고 string 타입을 쓰면 안 되나요?
  • Value Type과 Reference Type이 저장되는 공간이 있을 건데요. 예를 들면, heap 영역과 stack 영역이 있을 겁니다. 이들에 대해 설명할 수 있나요?
  • 왜 굳이 stack 영역이 있을까요? 그냥 모든 데이터들을 heap 영역에 저장을 하면 안 되는 건가요?

(3) 데이터의 비교

  • Java나 C#을 보면, equals()로 비교하는 방식이 있고 "=="으로 비교하는 방식이 있습니다. 두 방식의 차이는 무엇인가요?
  • equals() 함수에서 2개의 객체가 같다는 것을 어떻게 비교할까요?
  • string a = "12345";가 있고, string b = new string("12345");가 있습니다.
    • a, b 객체를 생성하는 방식의 차이는 무엇인가요?
    • a.equals(b)의 답은 뭘까요?
    • a == b의 답은 뭘까요?
    • a = "54321";로 바꾼 후, a.equals(b) 값과 a == b의 값은 각각 뭘까요?
    • a.equals(b)는 equals 함수가 두개의 객체가 같은 메모리를 바라보고 있다는 것, 같은 주소를 참조한다는 것은 어떻게 알까요?
  • Java나 C#에서 hashCode라는 것이 있는데요. 이에 대해 설명해 주실 수 있나요?
  • equals 함수가 hashCode를 어떻게 이용해서 두 개의 객체가 같은지 다른지 판단을 할까요?
  • hashCode를 이용해서 같은 객체인지 비교하는 방법을 설명해 줄 수 있나요?
  • equals 함수로 비교를 할 때 Car라는 Class가 있고 Animal이라는 클래스가 있습니다. 그 두 클래스는 name이라는 attribute (property)를 가지고 있습니다. 그럼 이 두 객체의 name이 같으면 같다라고 하고 싶은데 어떻게 하면 될지 설명해 주실 수 있나요? (조금 힌트를 드리면, equals 함수를 오버라이딩 하면 될 거 같습니다.)

(4) 메모리 기본

  • Java의 메모리 구조에 대해서 설명해 주세요.
  • string a = "12345";가 있고, string b = new string("12345");가 있습니다. 둘 중 어느 방법이 더 좋은 건가요? 어뎋게, 왜 그렇게 생각하세요?
  • string pool이라고 들어보신 적 있나요?
  • 변수에는 멤버 변수와 지역 변수가 있습니다. 이 두 가지 중에 stack 영역에 저장이 되는 변수는 무엇인가요?
  • 멤버 변수와 지역 변수는 언제 메모리에서 해제될까요?
  • Heap 영역에 저장되는 변수는 언제 해제될까요?
  • 참조 타입과 값 타입이 있는데, 참조 타입의 주소는 어디에 저장될까요?
  • 주소 값은 왜 stack 영역에 저장이 될까요?

지난 개발 잡설들

Coin Marketplace

STEEM 0.14
TRX 0.12
JST 0.025
BTC 53375.38
ETH 2393.56
USDT 1.00
SBD 2.15