도리안의 개발 잡설 #248 - 개발자를 위한 면접 자료 찾아보기
직장인으로 살다 보면, 의도치 않게 직장을 옮길 수 밖에 없는 상황을 맞이할 수도 있다. 그런 상황이 갑자기 닥치면, 이력서도 그렇지만 면접 준비가 특히 어렵다. 특히 개발자로서 면접은 자신의 전문성을 짧은 시간 내 증명해야 하는 관문이다. 어떤 질문이든 들어올 수 있고, 우리는 그에 대한 만족스러운(이게 면접관마다 주관적이라는 게 변수) 답변을 할 수 있어야 한다. 이직할 때가 되어서야 면접 준비하는 것은 너무나도 빠듯하다. 평소에 자료를 모아서 조금씩 준비하는 것이 좋지 않을까 생각한다.
유튜브에서는 요즘 면접 관련 자료들이 많이 올라와 있다. 개발 관련 면접 자료는 아직 많아 보이지는 않지만, 점점 많아질 것으로 예상한다. 오늘 포스트에서는 괜찮아 보이는 영상 하나 공유하고 거기서 나오는 질문들을 리스트로 적어둔다. 여기서 나오는 면접은 경력보다는 신입 면접에서 더 많이 나올 질문들이지만, 미처 챙기지 못했던 개념들이 있어서 다루어 보기로 했다. 때로는 허를 찌르는 의도로 개념적인 질문을 할 수도 있다. 경력자라도 어떤 질문이든 받을 수 있으니 준비해 두는 것도 나쁘지 않다.
면접 질문
(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 영역에 저장이 될까요?
지난 개발 잡설들
- #247 - IT 회사에서 일하면서 경험했던 나쁜 사람들
- #246 - 한 안드로이드 개발자의 퇴직
- #245 - QA파트 마지막 인원의 퇴사로 업무 인수인계 대리 예정
- #244 - 구미가 당기는 M1 맥북 프로 그리고 몰랐던 개발환경 세팅
- #243 - IT북스토어 과제: 보완할 점들
- #242- 정년퇴직한 개발자 관련 뉴스를 보며...
- #241 - IT북스토어 과제: 리팩토링
- #240 - 중고서점에서 구입한 책
- #239 - 얼랑뚱땅 지나가 버린 설연휴 전날
- #238 - 퇴사예정자의 코드를 리뷰하면서 느낀 점
- #237 - 늦은 밤 작업은 지양해야
- #236 - 안드로이드 스튜디오 업그레이드 그러나 이후 오래 걸리는 그래들 싱크
- #235 - 업무 일기도 마인드 맵으로!
- #234 - 개발 오래 하려면 건강 관리부터
- #233 - 새로운 책받침대 구입
- #232 - iOS에 이어 안드로이드 개발자도 퇴직 의사를 밝히다
- #231 - 재택근무 환경에 변화를 주다.
- #230 - 점심 시간에 불이 꺼져 있는 타사 사무실
- #229 - 마인드 맵 그리기 시작!
- #228 - 간만에 종일 코딩해서 즐거운 하루
- #227 - 마인드 맵으로 개발업무일지 쓸 수 있을까?
- #226 - 또 다른 iOS 개발자의 퇴직
- #225 - 스팀잇과 네이버 블로그의 관리는 어떻게...
- #224 - 쉽지 않은 재택근무
- #223 - 야근을 하게 되는 이유들...
- #222 - 신변잡기의 내용이 이어지는 개발 잡설
- #221 - 내일 하루 쉬기로...
- #220 - 프리랜서 관련 유튜브 영상을 보고...
- #219 - IT Bookstore에서 제공하는 API
- #218 - 간만에 재택근무. 이번에는 서서 일해 보았다.
- #217 - 일찍 퇴근하려 했지만... 쉽지 않은 시간 관리
- #216 - 집중력 저하
- #215 - 갑작스레 떠나게 된 동료 개발자
- #214 - 공부가 뜻대로 되지 않은 날
- #213 - 개발자로 계속 성장하기 위해서는 어떻게 해야 하는가?
- #212 - 다른 회사의 연말 휴일이 부러웠다
- #211 - 오늘만큼은 개발을 내려놓자
- #210 - 수강을 고려 중인 안드로이드 강좌
- #209 - 오전에는 공부 좀 하자
- #208 - 메인 앱의 리팩토링 진행 방향
- #207 - 숙제를 복기해보니 헛점들이...
- #206 - 작지 않은 숙제 하나 해결
- #205 - 모바일 개발자로서 살아남으려면 알아야 할 고급 앱...
- #204 - Kotlin 언어가 제공하는 유용한 함수들 also, apply, let, run, with
- #203 - 쓸데없이 복잡해진 책상 환경
- #202 - 개인사무실을 빌려서 해본 재택근무
- #201 - 계속해서 변화하는 IT 시장에 나는 잘 적응하고 있는지
- #151 ~ #200
- #101 ~ #150
- #51 ~ #100
- #1 ~ #50
Sort: Trending
[-]
successgr.with (74) 3 years ago