티스토리 뷰

일기

면접 복기

주디 𝙹𝚞𝚍𝚢 2021. 4. 2. 20:57

 오늘 아주 감사하게도 면접을 볼 기회가 있었는데... 속상했다. 완벽하게 설명을 할 줄 아는 게 진짜 아는거다. 그때까진 안다고 말할 수 없는거다. 어줍잖게 알고 있는 게 제일 위험하다는 걸 아는데 그 어줍잖게 아는 걸 극복하는 게 힘들다. 더 공부를 해야겠다고 생각이 들었다.


1. 클라이언트를 구현할 때 Http프로토콜로 했을텐데, RestAPI를 사용했는지, 웹소켓을 사용했는지?

 - 이 질문은 내가 질문을 잘못 이해했던 것 같다. RestAPI를 잘 모르기도 했고. 그렇지만 RestAPI와 웹소켓의 차이는 알고 있었다. RestAPI같은 경우는 클라이언트가 서버에 요청하고 서버가 응답하고 통신이 끝나지만, 웹소켓은 특정 포트를 통해 연결을 계속 하고 있어서 실시간으로 양방향통신을 할 수 있다. 내가 프로젝트를 구현할 때에는 서블릿와 JSP로 구현했고, url에 따라 서블릿을 호출하는 방법인건데... 이게 RestAPI인건지는...? 보다 정확하게 알기 위해 ⭐️RestAPI를 더 공부하자.

2. 컨텍스트 스위칭의 종류

 - 컨텍스트 스위칭의 개념은 잘 설명한 거 같은데, 종류라고 하셔서 당황... 컨텍스트 스위칭을 발생시키는 인터럽트의 종류를 물어보신 게 아닐까 싶다.

 (1) 입출력 요청시(I/O Request)

 (2) 타이머 인터럽트

 (3) 자식 프로세스를 만들 때

 (4) 인터럽트 처리를 기다릴 때

출처 : jeong-pro.tistory.com/93

3. JVM 메모리 관리 어떻게 하는지?

 - 자바같은 경우 가비지 컬렉터가 있어서 불필요해진 메모리를 자동으로 해제해주는 걸로 알고 있는데 메모리 관리 어떻게 했냐고 하셔서 또 당황. 생각해보니 Stop the world에 대해 말씀하신 것 같아 찾아보니 자료가 있었다.

 아래의 첫번째 출처에 따르면 최악의 효율이 발생한다면 Full GC로 인해 애플리케이션이 멈추는 Stop the World현상이 생긴다고 한다. 두번째 출처에 따르면 "GC에 대해서 알아보기 전에 알아야 할 용어가 있다. 바로 'stop-the-world'이다. stop-the-world란, GC을 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 경우 GC 튜닝이란 이 stop-the-world 시간을 줄이는 것이다." 라고 설명이 되어 있다.

 찾아보다보니 이 문제에 대해 내가 모를 수 밖에 없다는 생각이 들었다. 내가 했던 프로젝트들이 Full GC가 발생할만큼 대규모의 애플리케이션이 아니었던거다...... 어느 정도 규모가 되어야 Full GC가 발생할까하는 궁금증이 생겼다. 더 열심히 해야겠다는 생각이 들었다. ⭐️특히 두번째 출처인 Naver D2에 있는 가비지컬렉션부분은 꼭 보자.

출처 : https://www.holaxprogramming.com/2017/10/09/java-jvm-performance/

 

Java 시스템 운영 중 알아두면 쓸모 있는 지식들

안녕 프로그래밍

www.holaxprogramming.com

출처 : d2.naver.com/helloworld/1329

4. Heap, Stack, Global variable

 - 이건 C언어얘기하시다가 물어보신 거 같은데 자바로 치면 Heap, Stack, Static 영역을 이야기하셨던 거 같다. ⭐️아래의 출처를 한 번 더 보고 익혀두자.

m.blog.naver.com/heartflow89/220954420688

 

[JAVA/자바] 메모리 구조(static, stack, heap)

이번 글은 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다....

blog.naver.com


후기

 이전에 면접본 회사에 비하면 정말 정말 정말 진중하게 면접을 진행하신다는 게 느껴졌다. 처음 면접제안하실 때 내 블로그를 보고 제안을 해주신 것만 봐도 그랬다. 다른 회사들보면 지원자가 준비를 했더라도 레퍼런스까진 안 보는 곳들도 많은데(이전에 면접본 회사가 그랬다.) 레퍼런스도 다 확인하신다는 점에서, 지원자에게 긴장될 수 있는 면접자리를 편안하게 해주시는 배려에서 좋은 회사라는 것이 느껴졌다. 고민끝에 결국 안 가기로 했지만...... 너무 일찍 만난 것 같아 아쉬운 마음이 많이 들었다.

 면접보느라 귀중한 시간내주신 것도 감사했다.(진짜 정말 정말로...) 기술면접 질문하시는데 내가 진짜 얕게 알고 있구나라는 생각이 많이 들었다. 코드를 깨끗하게 효율적으로 작성하기 위해 무언가를 하고 있다고 하지만, 정작 내가 사용하는 자바언어에 대한 이해가 떨어졌던 것 같다. 부족한 부분을 보충할 수 있도록 노력해야겠다. 내가 더 알아야할 부분에 대해서는 ⭐️를 쳐놨으니 그 부분을 더 공부하면 될 거 같고, CS는 면접관이 작정하고 깊게 질문하면 대답 못하는게 당연하다지만 당장 면접을 떼우기 위해 CS를 공부하는 게 아니라 개발업무를 진행하는 데 있어서 도움이 되기 위해 공부하는 것이므로 좀 더 깊게 공부할 수 있도록 새로운 책을 찾아봐야겠다.

300x250

'일기' 카테고리의 다른 글

내려놓기  (0) 2022.02.10
슬럼프 혹은 번아웃  (0) 2021.09.07
개인프로젝트 첫 배포🧡😭  (0) 2021.07.18
개발자로의 첫 커리어를 시작하기 전에  (0) 2021.04.08
요즘  (0) 2020.12.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함