<일기> 나만의 기술면접 질문리스트 만들기

Posted by bbubbush on April 20, 2019

오늘 스터디를 진행하면서 준비했었던 기술면접리스트다. 이렇게라도 적어놓지 않으면 스처지나가지 않을까 싶어 기록해 놓는다.

Q. GET / POST 방식의 차이점은 무엇인가요?

  • GET: HTTP 프로토콜의 전송방식의 하나. URL에 파라미터가 전달되어 보안에 취약하다는 특징이 있다. REST API에 따라 최근에는 조회에 사용되는 전송방식으로 굳어지고 있다. URL을 통해 전달하다보니 전달 가능한 데이터에 제약이 있다.
  • POST: HTTP 프로토콜의 전송방식의 하나. 파라미터를 Body 영역에 보관하여 전달하기 때문에 URL에 노출되지 않고, 데이터의 제약이 없다. REST API에 따라 입력데이터 전송에 사용하고 있다.

Q. JVM이란 무엇인가요?

  • Java Byte Code를 해석하는 컴파일러. OSMU을 수행하게 하는 자바의 핵심 기술이라고 생각한다. .java 파일을 바이트 코드 형태의 .class 파일로 컴파일하고(자바 컴파일러) .class파일을 읽어 프로그램을 수행하는 역할을 JVM이 담당한다. Heap 영역, Stack 영역, Static 영역 등이 있고 GC컴파일러를 포함한다.

Q. 좋은 코드란 무엇인가?

  • 성능, 가독성, 유지보수 용이 등 다양한 관점으로 생각할 수 있지만, 제가 생각하는 좋은 코드는 ‘어떤 개발자가 보아도 쉽게 이해가 가는 코드’를 대 전제로 생각한다. 여기에 상황에 따라 가독성이 낮아도 성능을 더 필요로 하는 기능에는 성능을 우선하고, 변경이 자주 일어나는 기능에는 유지보수 및 확장성이 우선되어야 한다.
  • 실제로 업무를 하다보면 다른 사람의 코드를 보는 경우가 많은데 주석이 한 줄도 없으면 이해하는데 많은 시간을 쏟는다. 더구나 코드의 가독성 마저 떨어지면 내가 이해한 내용이 맞는지 의구심마저 들게 된다.

Q. 반대로 나쁜 코드는 무엇인가요?

  • 설명 한 줄 없는 코드가 가장 나쁘다고 생각한다. ‘나 혼자만 이해하면 괜찮다’ 라는 생각이 반영되어 다른 개발자를 배려하지 않았다는 생각이 들기 때문이다.
  • 주석이 과하면 코드의 가독성을 해치지만, 아예 없는 것 보다는 과한 것이 낫다고 생각한다. 다만 깔끔한 주석을 달기 위해서는 많은 고민을 해봐야 한다고 생각한다. 프로세스를 간략하게 명시하는 방법도 있고, 핵심 데이터에 포커스를 두고 흐름을 나타낼 수도 있고, 간결한 문장으로 설명할 수도 있다.

Q. SPA(Single Page Application)는 무엇인가요?

  • 하나의 페이지에서 변경이 일어나는 부분만 변화시키는 방식이다. 기존의 웹은 요청이 있을 때 마다 전체 리소스를 제공하였다면, SPA는 실제 데이터가 변화는 영역(body)만 제공하여 속도를 개선할 수 있다.
  • 등장배경에는 모바일 인터넷의 사용빈도가 증가하면서 낮은 컴퓨팅파워에서도 잘 돌아가는 웹사이트가 필요해졌기 때문이다.

Q. 본인은 어떤 개발자인가요?

  • 넓고 얕게 아는 개발자입니다. 다양한 것을 좋아해 다방면으로 개발해보고 싶다는 욕심이 있습니다. 넓게 공부하다보면 깊이도 자연스럽게 깊어질 것이라 믿고 있습니다.