웹 애플리케이션에서 클라이언트 측에 5000 요소 저장 [닫기]


12

방금 ASP.Net 개발자를위한 전화 인터뷰를했는데, 처음 소개 한 후 면접관이 첫 번째 기술적 질문을합니다.

"웹 애플리케이션의 각 사용자에 대해 클라이언트 측에 5000 개의 요소를 저장하는 방법"

내 대답은

각 요소의 평균 크기는 얼마입니까? 클라이언트쪽에이 많은 데이터를 저장해야합니까? 데이터베이스에 보관할 수없고 이것을 어떻게 사용자 세션 / 클라이언트 ID에 연결할 수 없습니다 .

그의 대답은 "아니오, 각 요소가 int / string, 일반 테이블 행을 포함하여 약 8 개의 필드를 가진 레코드라는 점을 고려하여 클라이언트 측에 어떻게 저장하겠습니까?"입니다.

"세션에서 세션을 유지할 수는 있지만 세션이 각 사용자에 대해 서버 측에서 유지되므로 비용이 많이 들거나 다른 옵션은 쿠키에 많은 양의 데이터를 저장하는 것"이라고 말했습니다. 쿠키에 많은 데이터를 저장할 수 있는지 확인하십시오. HTML5 저장소 옵션이 있다고 언급했지만 그와 함께 일하지 않았습니다. SQLite를 기반으로하기 때문에 이론적으로 많은 데이터를 저장할 수 있습니다 .

그것은 면접관이 다소 냉소적으로 말한 곳 이므로 웹 개발에 3 년의 경험이 있고 인터뷰를 종료했습니다.

내가 뭘 잘못했는지 궁금해? 또는 클라이언트 측에 데이터를 저장하는 것과 관련하여 실제로 누락 된 것이 있습니까?


14
나는 그가 당신이 언급 한 것처럼 들리지만 html5 로컬 스토리지를 찾고 있다고 생각 합니다. 면접관이 바보 였거나 오해했을 수도 있습니다.
로봇

1
'요소'가 무엇인지에 대한 정의가 주어 졌습니까? 나는 당신이 잘못했다고 생각하지 않습니다. 질문은 특히 모호합니다.
GrandmasterB

8
왜 그가 '요소'라는 용어를 사용하여 설명했는지 모르겠습니다. 그러나 그렇습니다. HTML 저장 후인 것 같습니다. 고객 측을 저장하고 싶은 '이유'에 대한 첫 번째 본능도 좋은 쪽이라고 생각합니다.
GrandmasterB

5
면접관이 문자 그대로 "로컬 스토리지"라는 말을 찾고 있었을 수도 있습니다. 어떤 사람들은 그저 항문 유지에 불과합니다. 당신은 어쨌든 그들을 위해 일하고 싶지 않을 것입니다. 당신은 총알을 피했다.
Greg Burghardt

2
"내가 뭘 잘못 했니?" 이 회사에 적용 자신의 의견과 태도에서 : 면접관이 다소 비꼬 며 말했다 위치를 웹 개발 경험 3 년을 가지고, 면접 종료 있도록 즉,의
시스코 Presencia을

답변:


10

HTML5 로컬 저장소를 찾고 있었을 가능성이 있으며 이에 대한 경험이있을 것으로 예상됩니다.

솔직히, 그것이 직업의 필수 요건이 아니고 당신이 그 일에 경험이 있다고 말하지 않는 한, 그의 의견과 반응은 어느 정도의 경험이있는 사람에게는 불합리합니다.

왜?

3 년 전, 사양 인 HTML5는 아직 초기 단계에있었습니다. 다시 말해, 구체적으로, 경력은 스펙 자체의 역사만큼이나 길다. 제품에 대한 경험보다 제품에 대한 경험이 많은 사람들을 찾는 직업을 보는 것은 드문 일이 아닙니다. 전체 사양 에서 동일한 결과가 나타나는 경우는 거의 없습니다 . 그런 보석을 찾은 것에 박수를 보냅니다.

더 심각하게도, 문제는 면접관이 지나치게 모호한 질문을하고 너무 심하게 판단하는 것처럼 보입니다. 면접관이 모호한 질문을하는 것은 드문 일이 아닙니다. 특히 개발 분야에서 특히 그렇습니다. 일반적으로 이것은 당신의 생각과 첫 번째 본능이 당신을 이끄는 곳을 측정하려고 시도됩니다. 이를 위해서는 이러한 종류의 데이터를 로컬에 저장할 필요성에 의문을 제기하여 잘 수행했습니다. 이러한 질문은 그 자체로는 나쁘지는 않지만 인터뷰자가 인터뷰 한 내용으로 인해 결과가 나빠질 수 있습니다 (아마도 그러한 인터뷰 종료는 어쨌든 해당 회사에서 일하고 싶지 않음을 의미합니다).

이제 회사의 비즈니스 요구에 따라 로컬 스토리지를 사용해야 할 수도 있습니다. 이 경우, 직무 설명에서 철자가되었을 것입니다. 이력서가 훈련이나 훈련을 할 수 없거나 제공 할 수 없다고 느꼈을 때 이력서에 그러한 경험이 반영되지 않았을 때 잠재적으로 가능한 후보로 배제되어 있어야합니다 새로운 직원은 기술을 빠르게 익힐 시간과 의미를 갖습니다.

로컬 스토리지 자체에 관해서는 앞에서 언급했듯이 스펙으로 HTML5는 약 3 년 동안 사용되어 왔으며 "마지막 호출"초안을 세고 있습니다. 그런 다음 브라우저 지원 문제가 있습니다. 이력이 오래되었거나 없을 수도 있습니다 (예 : HTML5 응고 이전에도 이름-값 쌍이 널리 지원되었지만 IndexedDB 및 Web SQL DB는 여전히 스케치 ).

마지막으로 HTML5 로컬 스토리지 사용은 여전히 ​​덜 일반적입니다. 웹 개발자로 내 년 동안, 내가 한 번 모두를 활용 알고 있음을 응용 프로그램에 걸쳐 왔어요 (가 보이지를 사용하는 일부가 될 수 있지만, 열심히 그의는 정량화), 아마 대여섯 프로젝트는 수 ( 그 당시에는 실제로 필요 하지 않았 거나 그 접근법을 사용하는 데 대한 비용은 정당화되지 않았습니다).

보다 일반적인 의미에서, 인터뷰 실패가 발생합니다. 소프트웨어 개발은 지금까지 너무 큰 필드가 매일 일에 대한 모든 작은 세부 사항을 알 수 있도록 (이 경우, HTML5 로컬 스토리지의 저장 용량 제한) 및 정직에 대한, 주어진 일이 내 의견에서, 모르고되고 여전히 최선의 길입니다 (저는 자신이 무언가를 모른다는 사실을 감추려고하는 사람보다 지식의 차이를 인정하고 채우려는 사람에 대해 개인적으로 더 많은 존경을받습니다). 이를 염두에두고 여기에 제공 한 정보를 바탕으로 질문을 잘 처리했다고 가정하겠습니다. 당신 이 뭔가 있다면 우리가 인터뷰에서 언어의 비언어적 측면을 평가하지 않았기 때문에 귀하의 답변 방법에 대한 세부 사항에있을 수 있습니다.


7

'올바른'답은-적어도 그들이 찾던 것-실제로 HTML5 LocalStorage (Steven Burnap의 훌륭한 링크)였습니다. 그리고 면접관은 아마 당하고 ... 음, 나는 기술적 인 문구 "는 약간이라고 생각 노브 ".

쿠키 는 기본적으로 제거 프로세스에 의해 도달합니다 . 쿠키는 충분히 큰 위치에있을 수 없으며 세션은 실제로 서버 측이며 클라이언트 측 스토리지 메커니즘이 아닙니다. 규칙보다 예외 인 데이터가 많은 UI 작업에서 일반적으로 HTML5 LocalStorage 기능 만 필요하다는 점에서 재미 있습니다. 사람은 몇 년 동안 프로그래밍 할 수 있고 기능이 필요하지 않은 반면 다른 사람들은 첫 번째 프로젝트에서 기능이 필요할 수 있습니다.

그러나 나는 일반적으로 이와 같은 경우에 당신의 대답에 대한 질문이 아니라 당신이 어떻게 대답했는지, 그리고 거기에 도달하는 과정에 대한 질문이라고 말합니다. 당신의 설명에서 당신은 괜찮 았지만 나는 거기에 없었으므로 그들의 인상은 매우 다를 수 있습니다.

대부분의 현명한 면접관은 모든 사람이 훌륭한 답변을해야하는 리트머스 테스트라는 작은 기술 측면을 선언하지는 않지만, 현명한 면접관이 아닌 사람들과 많은 면담을 가졌습니다. 그러한 사소한 일을 아는 것은 그러한 사람들을 만날 때 도움이 될 수 있습니다.

마지막으로, 아주 좋지 않은 방식으로 인터뷰를 선언함으로써 그 사람은 이미 화가 났고 이미 당신에 대해 결정했을 가능성이 높습니다 (이 특정 질문에 대한 당신의 대답은 조금). 그들은 단지 당신이 여행을하기 위해 잠시 기다렸 기 때문에 그들은 그것을 지적하고 그들이 30 초 안에 결정했다는 사실을 드러내지 않을 것입니다.

어쩌면 당신은 "올바른"답변을 알지 못하는 질문에 대답하는 방법을 연습하고 싶을 것입니다. . "[중요한 기술의 최신 버전]의 새로운 기능"기사를 다룬 다음 다시 찾아 오십시오!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.