2008 오픈마루 하계 인턴 면접 문제

오늘 오픈마루 면접을 보고 왔다. 오픈 마루의 많은 서비스들이 루비 온 레인즈를 기반으로 만들어졌기에 당연히 루비에 관한 이야기가 나올줄 알았는데 전혀 아니었다. 내가 공개를 해도 되는 것은 잘 모르겠지만, 오픈마루분들이라면 학생들을 위해서 공개하는 것을 흔쾌히 승낙해 주실 것이라 믿고 올린다. 문제가 되면 바로 삭제하겠습니다.

1. 환경

  1. 알라딘 도서 검색 API http://api.aladdin.co.kr/search.do
  2. 예스 21의 도서 색 API http://api.yes24.co.kr/search.do
  3. 양사의 도서 검색 API는 title에 대해서만 검색을 수행
  4. 결과 data는 title, ISBN, imageURL, price 4개의 필드로만 구성
  5. respose format은 JSON 또는 XML이라고 가정

2. 목표

가상의 사이트 http://www.mybook.com 에서 상기 API를 이용하여 아래와 같이 도서 검색을 한 뒤 가격 비교 목록을 출력(단, 검색시, ajax 호출 필수)

[그림 설명 – 검색 칸에 “모짜르트”라고 검색을 하면 아래쪽에 모짜르츠 관련 책과 서점별 가격이 나옴]


3. 과제

  1. http://www.mybook.com 을 Client(browser)와 Server로 나우어서 각 part별로 필요한 모듈을 나열하고, 각 모듈별 역할을 설명하시오.
  2. 1의 결과를 통해서 web browser, http://www.mybook.com, http://api.aladdin.co.kr, http://api.yes24.co.kr 4개의 개체간 데이타 흐름을 도표로 간략히 그리시오.
  3. 위 어플리케이션에 추가 기능을 넣는다면 어떤 기능이 있을지 생각해보고 추가 기능에 대해서 a, b 결과에 반영하시오.
  4. 토론 시간은 15분, 정리 및 발표는 5분으로 제한합니다. 발표 양식은 자유.

잘 이야기했는지 모르겠다. 설계부분은 잘 한 것 같은데, AJAX관련해서 부족한 것 같다. 특히 Ajax Call 관련해서 생각 중 애매한 부분이 발견되어서 애를 먹었다.

  • 다른 서점을 추가하려면?
  • 서버의 부하, 클라이언트의 부하는 상황에 따라 어떻게 변할 것인가?
  • 파싱처리는 어디에서?
  • XML과 JSON 중 어느 것을 사용할 것인가?

등의 추가 질문이 있었다.

인성 면접관련해서 나왔던 질문은 다음과 같다.

  • 자신을 한 단어로 표현한다면?
  • 자신을 간단히 소개하라
  • 자신이 소중하게 생각하는 물건 3가지
  • NC Soft가 자신을 뽑아야 하는 이유
좋은 결과 있었으면 좋겠다.