대략 7~8년 전 봄 이야기임
게임회사 존나 큰 회사 (N사) 기술면접 보러감
직무는 게임 서버개발
경력 3년 이상 이라고 기준 그어놨는데, 그냥 씹고 지원함, 운좋게 기술면접 보자함
(그때 경력 1년 10개월 ㅇㅇ, 퇴사 날짜가 아다리가 잘맞아 경력 2년 찍고 이직함 ㅇㅇ )
간단한 이야기 하고 바로 본론으로 넘어감
면접관 : 일단 코딩 문제 몇개 있는데 이거 풀어보세요
(간단한 문제였음, 문자열 순서 뒤바꾸는 문제랑 링크드 리스트 문제)
화이트보드에 쓱쓱 품.
면접관 : 다 맞으셨고요, 기술 관련해서 몇개 물어볼께요. SQL 쓰셨죠?
나 : 네
면접관 : 그러면 인덱스에 대해서 설명해주세요
나 : 네, 화이트보드좀 쓸께요... (그림 그리기 시작)클러스터드 인덱스랑 넌 클러스터드 인덱스가 있는데 이게 MSSQL 내부에서는 트리구조로 가는데
이러이러한 원리 때문에 클러스터드는 상대적으로 select 가 빠른데 인덱스값 잘못 넣어서 insert 하면 정렬때문에 지랄나고 ....
면접관 : 네, 잘 들었습니다. 다음으로 C++ 에 virtual 함수에 대해 설명해주세요
나: 화이트보드 다시 쓸께요, (또 그림그리기 시작) C++ 에서 다형성이 발생할때는 상위 클래스의 포인터로 하위 클래스의 객체를 생성할 수 있는데
이때 함수를 호출하면 상위 클래스 함수가 호출 되는데 이게 왜이러냐면, C++ 컴파일러는 컴파일을 할때 변수는 메모리위치를 저장하고 함수는 엔트리포인트를 저장하는데
어쩌구 저쩌구 해서 이런 문제가 생기니까 주절주절 그래서 virtual 키워드를 붙여서 가상함수로 선언하면 이 함수는 이제 호출될때 버추얼 테이블에서 실제 함수 주소를 찾아...뭐라뭐라
면접관 : 다음으로 넘어갈께요 IOCP 에 대해서 설명해주세요
나: 다시 화이트보드 쓸께요, IOCP 를 설명 하려면 Overlapped IO 부터 설명을 해야 하는데
윈속 IO 모델이 아주 기본으로는 동기 통신이라, 비동기 통신을 지원하기위해 윈속 2.x 대부터 overlappedIO 를 지원하는데
이걸 사용해서 IO 가 일어나는 상황을 그림으로 그려보면...
면접관 : 더이상 설명은 됐고요, 그럼 IOCP 를 왜쓸까요?
나 : IO 작업이 완료되었다는 통지를 받는법이 있는데 쓰레드를 블럭시키는 방법, eventselect, completion routine 은 모두 한개의 쓰레드에서 처리할 수 있는 소켓에 제한이 있는데
IOCP 는 아시다시피 쓰레드 풀을 효율적으로 쓸 수 있어서 주저리주저리...
면접관 : 메모리 단편화가 뭐고 이걸 해결하기 위해서는 어떻게 해야할까요?
나 : 실제 메모리는 100MB 가 남아있지만, 메모리 상황을 자세히 보면 이게 10MB 씩 10개로 나뉘어져 있는 상황이 메모리 단편화고, 저라면 메모리 풀을 만들어서 쓰겠다..(이건 틀린거 같았음..)
면접관 : 시간 다 되었네요, 수고하셨습니다.
나 : 감사합니다.(ㅅㅂ 운이 좋았네, 더이상 아는것도 없었는데.)
두시간 있다가 합격통지받음 ㅇㅇ
참고로 내가 답했던거, 게임회사 가려고 포트폴리오 만들면서 공부했던거임
첫 회사 기술면접에서도 저거랑 거의 비슷한 질문했고, 거의 똑같이 설명했음.
이력서에 기술관련해서 뭘 쓸 때, 스케치북 하나에 해당 기술의 아키텍쳐를 그려보고, 제대로 설명 할 수 있는지 생각해봐
이런 방법으로 제대로 설명할 수 있으면 기술면접에서 안밀린다 ㅇㅇ
면접때 말로 하기 힘들면 그림으로 그리면서 설명해도 된다, 개발꼰대들 암만 많아도 그정도는 권장하지 하지말라고 하진 않음.
중요한건 사람 뽑을때 '얕고 넓게' 아는 개발자 뽑는데는 높은 확률로 SI 땔감으로 간다.
신입부터 경력 2~3년차 까지는 '좁아도 깊이있게' 아는사람이 경쟁력있으니 참고들 하시고 ㅇㅇ
개쩐다;;
야야 이런 인생 썰 좋다고 선댓 후읽 간다
쩐다
줫고수네
이정도면 학원출신 개발자 병신이라고 욕해도 되냐?
ㅇㅇ
근데 게임개발자엿음? 그 학원 출신들이 겜회사도오나
욕좀 ㅇㅇ;;
지금은 스타트업 ㅇㅇ 게임개발은 2017년까지만 함 ㅇㅇ
읭, 게임버리고 웹땔깜간거? 아니면 여전히 게임이냐
웹땔깜요 ㅇㅇ 게임 그만 만들고 싶어서 땔침 ㅇㅇ
왜 상남자들의 세계를 버리고 졷밥들의세계인 웹으로온거 ㄷㄷ
상남자가 아니라서 ㅎㅎ
야 근데 이거 다 읽고 보니까 씨발 운영체제에서 했던 메모리관리, 컴구에서 했던 클러스터링 , DB에서 했던 내용 다나오네 고맙다 씹덕아 내 닉네임이 사실 운영체제씨발 이거든
ㄷㄷㄷ
고수 ㅎㄷㄷ 넷마블인가요
야구팀 있는곳 ㅇㅇ
글 3/4까지 보고 추천눌렀다가 얉고 넓으면 si어쩌구, 깊고 좁게 어쩌구 하는데서 비추 100번줌.
인정, 그건 나도 확실하지 않아서, 다만 주변에 그런사람들이 많이 SI 가서 고생하더라
머임 그럼 입사하고 나서 이 이상으로 배운거 머머있음??? 이 이상은 설계 배움?? 아니면 Windows Internals같은거 통암기함??
입사하고 나서라... 실무적인거, 구현 테크닉들 많이 배웠다. 예를들자면 멀티코어 CPU 를 쓸때 Windows API 써서 특정 쓰레드는 특정 코어에서 실행되도록 하는거던지, 부하 분산 어떻게 하는지 등등...
배우고있는거네... 이야기 감사용
게임서버개발함? WindowAPI 서버에서 쓸정도면 PC 온라인일텐데?
서버개발지망생임
멋지다 ㅋㅋㅋ 성공하길 바라~
Windows internal 보다는 windows via c++ 보는거 권장한다
그건 이미 보는중입니다 ^^7
n사랑 지금 스타텁이랑 비교하면 어떰? 복지, 연봉 같은거. 더 편하고 좋음?
복지, 연봉 다 N사가 갑임, 40대 넘어가는 아재들 N사에서 못나오는 이유중 하나가 개쩌는복지임. 스타텁은 유명한데나 이런저런 복지있지 나머지는.... ㅠㅠ
ㅅㅂ 난다 어버버하다 끝날 질문이네
와드
게임안하는 N사 면접도 기본적인걸 깊이있게 아는지 물어보더라
알고리즘 빼면 개념 중심 질문들이네용 신입은 테크닉은 그렇게 중요하지 않다더니 진짜인듯.. IOCP는 게임서버개발이라 물어본거라 io관련, 비동기동기, 쓰레드 알면 될 것 같고 SQL 인덱스는 기본이고 C++ Virtual은 자바로 치면 인터페이스랑 타입캐스팅, 바인딩 물어본거고 메모리단편화는 신기하게도 자주 나오는 주제더라 이건 os해보면 모를 수 없는
기술면접 포트폴리오에서 내셧나보네.
포트폴리오 가라로 한건지 아닌지
형님 게임 서버 프로그래머 지망생인데 게임잡 뒤져봐도 요새는 경력직만 찾던데 그 때는 신입도 많이 뽑았습니까?
난 들이댔음 ㅇㅇ 경력이건 신입이건 상관없이 이력서 뿌림
멋있습니다 .. 하나만 더 질문해도 되나요 ?? 서버로 게임회사 문 두드리려면 어떤 지식들이 있어야 하나요 ..? 멀티스레드/DB/네트워크/SQL/C++지식 가지고가면 되나요? 소켓쪽은 Boost.Asio 책사서 공부하려는데 어떤지 ..
잘 알고있네
글 ㄱㅅㄱㅅ
버츄얼테이블 함수포인터들 아님? 다 설명을 이렇게하면 이렇게된다 하는식이라 그냥 상상속에서 내린결론인데, 찐하게 공부할려면 어떻게 해야함 ?
닥치는대로 다 하다보니까 컴파일러 까지 공부하게되었고, 나중에 학교수업(프로그래밍 언어론, 컴파일러 이론) 한번 더 들으니 프로그래밍 언어가 돌아가는 개념이 머릿속에 그려졌음. 이게 다임 ㅇㅇ
저한테 게임 서버 만드는거 갈쳐주시는분이 이런거 시켰었는데 - dc App
NC소프트??
우리 국비쟁이들은 저런 용어 모른다구요옷 뺴액!!!
개인적으로 생각해봤을떄 양산형은 절대 올 수 없는 경지인듯... 저기서 같이 일했던 분 중 한분도 학원출신 개발자셨는데 내가 말하는거 다 이해하심 ㅇㅇ
게임은 좁고 깊게가 맞는데 웹은 넓고 얇게가 맞습니당