본문 바로가기
etc/Road to 개발자

면접에서 느낀 점(23/08/04)

by 시니성 2023. 8. 4.

오늘은 운이 좋게도 서류가 통과되어 기술 면접을 보았다.

오늘 면접에서 가장 반성해야할 부분은, 면접 역시 소통이라는 점을 간과했다는 것이다.

 

최근 나는, 나를 돋보이게 해줄 포트폴리오 작업에 파묻혀 며칠을 지냈다.

이 때문일까? 면접관님께서 질문하실 수 있는 리스트에 대한 답변을 준비하고, 내 프로젝트 경험을 잘 전달해 드리기 위해 프로젝트 관련 기술들을 찾아보고, 나에 대해 어필하기 위해 내 장점과 단점에 대해서는 많이 생각했지만, 그해 반해 지원하는 회사에 대해 알려고 하는 마음이 굉장히 부족했다.

 

소통이란 결국 나를 알고 나를 피력하는 것 보다 상대방을 알고 상대방이 원하는 행동을 해줄때 더 원활해 진다는 사실을 잊어버렸다.

면접이라는 특수한 상황은 다른 소통 상황보다 나에 대한 이야기를 더 해야하는 자리임이 물론 맞지만, 소통의 기본을 잊으면 안되겠다는 생각이 들었다.

 

기술에 대한 질문에 답하지 못할 때 보다, 회사의 도메인에 관한 질문에 대답을 하지 못할때 더 큰 부끄러움이 느껴지더라.

1차 기술면접을 통과하여 2차 인성면접을 볼 수 있을지 모르겠지만, 2차 인성면접 때에는 부끄럽지 않게 대답할 수 있도록 내가 지원하는 곳에 더한 공부도 소홀히 하지 않을 예정이다.

사실, 조금만 더 깊게 생각해 봤더라면, 내 기술을 늘어놓는 것 보다 회사의 업무 도메인과 내 역량이 잘 맞는지가 더 중요할 수 있다는 것을 알 수 있었을 텐데 아쉽다.

 

또 매번 면접에서 받았던 질문들과, 내가 대답하지 못한 질문을 정리하고 대답하지 못한 부분은 하나씩 포스팅으로 정리해 나갈 생각이다.

배움과 성장은 어디에나 있다.


 

0. 자기소개
1. 스프링 프레임워크 스프링 부트 차이
2. DI란?
3. AOP란?
4. 로드밸런싱이란?
5. 로드 밸런싱 타겟그룹 서버가 최대 10대까지 오토스케일이 가능한데, 모월 모일 그 이상의 트래픽이 예상된다. 하지만 경영지원 부서에서는 10대 이상의 비용발생은 원치않는다. 오토스케일 허용 대수를 늘리지 않고 해결할 수 있는 방법은?

(대답 못 드림)
6. 본인 깃 블로그 관련 내용.

(B-Tree, B+Tree 차이점 설명, 왜 B+Tree에서는 왜 자식노드들을 연결 시켜놨는지 의미에 대해 제대로 설명 못 드림)
7. 프로젝트에서 맡은 역할
8. 프로젝트 적용 기술
9. 프로젝트 시 사용해본 프레임웍들의 특징 및 본인이 경험해본 장단점

10. 부당한 지시, 예를 들어 도저히 마감할수 없는 기한내에 프로젝트를 마감하라는 지시에 어떻게 대응할 것인가

11. React와 Flow, 정적 타입 체커란?

(대답 못 드림)

12. 우리 회사는 뭐하는 회사인가요?

(대답 못 드림)

 

공부 할 부분

* 지원하려는 회사의 업무 도메인에 대해 공부하기

* 로드 밸런싱 타겟그룹 서버가 최대 10대까지 오토스케일이 가능한데, 모월 모일 그 이상의 트래픽이 예상된다. 하지만 경영지원 부서에서는 10대 이상의 비용발생은 원치않는다. 오토스케일 허용 대수를 늘리지 않고 해결할 수 있는 방법은?

  1. 성능 최적화: 현재 서버에서 실행 중인 애플리케이션의 성능을 최적화하여 더 많은 트래픽을 처리할 수 있게 합니다. 이는 코드 최적화, 데이터베이스 쿼리 최적화, 캐싱 전략 개선 등을 포함할 수 있습니다.
  2. 리소스 효율적 활용: 서버의 리소스 사용량을 분석하여 사용되지 않는 리소스가 있다면 그것을 더 효유적으로 사용합니다. 예를 들어 CPU 사용률, 메모리 사용률, 디스크 I/O 등을 모니터링하고 이를 최적화합니다.
  3. CDN 사용: 정적 컨텐츠(이미지, CSS, JS 파일 등)에 대한 요청을 CDN(Content Delivery Network)으로 이동하여 서버의 부하를 줄입니다.
  4. 비동기 처리: 가능한 경우 비동기 처리를 사용하여 응답 시간을 줄입니다.
  5. 마이크로서비스 아키텍처: 애플리케이션을 여러 개의 작은 서비스로 분리하고 각 서비스를 개별적으로 확장합니다. 이 방식은 하나의 서비스에 문제가 발생해도 전체 시스템에 영향을 미치지 않으므로 안정성을 향상시킵니다.
  6. 효율적인 로드 밸런싱 전략: 현재 사용하는 로드 밸런싱 전략이 트래픽을 효과적으로 분산시키지 못한다면, 다른 전략을 고려해보세요. 예를 들어 Round Robin, Least Connections, IP Hash 등 다양한 로드 밸런싱 전략이 있습니다.

각 항목에 대해 공부하기

 

* React, Flow, 정적타입체크에 대해

* B-Tree, B+Tree 다시 공부하기

-> B+Tree Linked List 의 강점 및 사용례
하나의 데이터를 찾는게 아니라, 특정 범위의 값을 가진 모든 레코드를 찾거나, 모든 레코드를 특정 순서로 검색하거나, 이러한 연산을 수행해야 할 때 B+ 트리의 리프 노드들이 링크드 리스트로 연결되어 있으면, 이러한 범위 검색이나 순서 검색 작업을 효과적으로 수행할 수 있습니다.

예를 들어, "모든 직원의 월급이 $2000에서 $3000 사이인 사람들의 목록을 찾으시오"라는 쿼리가 있다고 가정해봅시다. B+ 트리 인덱스가 월급에 대해 구성되어 있다면, $2000의 위치를 찾고, 그 다음부터 링크드 리스트를 따라 이동하면서 각 레코드를 검색하고, $3000의 값을 가진 레코드에 도달할 때까지 계속하면 됩니다.

이렇게 B+ 트리에서의 링크드 리스트는 데이터베이스 인덱스의 범위 검색과 같은 연산을 매우 효과적으로 수행할 수 있게 합니다.