꿈소년의 개발 이야기

[대학원면접]포항공대 2007.여름.컴퓨터공학 본문

일상다반사

[대학원면접]포항공대 2007.여름.컴퓨터공학

꿈소년 2008. 4. 10. 11:47
반응형
날짜 : 2007년 여름.ㅋ

이카페에서 많은 도움을 받아서 이렇게 후기를 씁니다. 면접은 잘 못봤지만 내년에 다른 사람들에게 도움이 됐으면 합니다. 지금 생각해보니까 너무 많이 볼려고 하다가 본전도 못건진거 같습니다. 차라지 중요한 부분만 깊이 있게 볼껄 그런 생각이 드네요..ㅡㅜ

A조 5시

part 1
자기소개서를 물어봤습니다.
나름데로 3파트중에 가장 자신 있는 곳이었는데 너무 버벅 되버렸네요..ㅡㅜ

오토마타
레귤러 랭귀지란 무엇인가요?
(레귤러 그램머 설명했습니다.)
전 그램머가 아닌 렝귀지를 물어봤어요.
(로 생성되는 언어입니다.)
레귤러 랭귀지를 구현할수 있는 기계가 먼가요?
(NFA...DFA입니다. 아악 왜이랬을까요..ㅡㅜ)
DFA는 무슨 랭귀지를 인식하나요?
(레귤러 랭귀지입니다.)
NFA는 무슨 랭귀지를 인식하나요?
(레귤러 랭귀지입니다.)
레귤러 익스프레션이 무엇인가요?
(머라고 했는지..레귤러 그램머를 설명했습니다.ㅡㅜ)
레귤러 그램머와 레귤러 익스프레션을 헷갈리시는거 같네요.
(죄송합니다..ㅡㅜ)
레귤러 익스프레션이 사용되는 예는 어떤게 있나요?
(렉쉬컬 어날리시스가 있습니다.)
레귤러 랭귀지가 아닌 언어가 있나요?
(CFL, CSL 등이 있습니다.)
CFL을 사용하는 경우가 있나요?
CFL을 인식하는 기계가 먼가요?
(푸쉬...푸쉬... PDA입니다...ㅡㅜ)
PDA는 어디에 사용되나요?
(프로그래밍 언어가 PDA로 구현된걸로 알고 있습니다.)
어떤 언어가 있을때 레귤러 그램머인지 알수 있나요?
(펌핑 렘마를 사용하여 증명하면 됩니다.)
어떻게요?
(자세한 내용을 더듬거리면서 말했습니다. 주요내용과 모순 예기만 했으면 됬을텐데..ㅡㅜ)
TM이 인식하지 못하는 언어를 만나면 어떻게 되나요?
(비정상적으로 종료됩니다.)
어떻게요?
(...이러쿵 저러쿵...모른다고 할걸 그랬네요..ㅡㅜ)
TM이 인식하지 못하는 언어는 어떤 특징이 있나요?
(어떤 기계로도 인식할수 없습니다.)
수고하셨어요.

자료구조 알고리즘
ADT중에 스택과 큐 아시죠? 어떤성질이 있고 자료구조를 사용하여 구현할수 있나요?
(스택은 FILO의 성질을 가지며... 경우 크기가 제한되어 있다면, 배열을 사용하여 쉽게 구현할수 있습니다. 큐의 경우는 FIFO성질을 가지며
링크드 리스트로 쉽게 구현할수 있습니다.)
스택을 배열과 링크드리스트로 구현하면 장단점이 무엇인가요?
(배열을 사용하면 쉽게 구현할수 있지만 크기가 제한되어 있다는 점이 있습니다. 링크드리스트로 구현하면 크기가 무한하지만, 구현이 어렵고 비용이 많이 듭니다.)
링크드 리스트를 사용하면 어렵다는 말은? 무슨 비용이 드나요? 타임 컴플렉시티는요?
(데이타를 넣을때 메모리를 할당해야 하고, top에 있는 데이터와 연결시켜주어야 합니다. O(1)입니다)
힙이라는 자료구조 아시죠? 2가지가 있는데 어떤게 있나요?
(민 힙과 맥스힙이 있습니다.)
힙의 정의는 무엇인가요?
(맥스힙의 경우 루트가 최되값이 되고 그자식들도 반복적으로 맥스힙의 정의를 따르는 경우를 말합니다. 그리고 컴플리트 트리의 성질을 가져야 합니다)
컴플리트 바이너리 트리겠죠?
(예..ㅡㅜ)
오른쪽의 그림이 힙인가요?
(보고 조금 생각한후.. 아닙니다.)
왜인가요?
(이유를 설명했습니다...)
그럼 어떻게 하면 맥스힙으로 바꿀수 있나요?
(그림이 한데이터만 바꾸면 맥스힙이 되는 트리였씁니다... 자식중 큰값과 자신과 비교해서 바꿔주는것을 반복하면 됩니다.)
조금 일반적으로 말해주세요.
(전 힙소트에서 힙으로 만드는 방법을 말했습니다.)
그거 말고요..
(이러쿵 저러쿵 헛소리를 계속했습니다.)
리커시브를 사용하면 되죠?
(네...쩝 이걸 물어본거였다니)
리커시브와 이터레이티브의 차이는 먼가요?
(리커시브는 논리적으로 이해하기 쉽고, 이터레이티브는 실행속도가 빠릅니다.)
네 수고하셨습니다.


part 2
장래희망을 물어봤습니다.
컴구조
암달의 법칙이 무엇인가요?
(.. 잘모르겠습니다.)
프로세스가 n개 있을떼...
(아...설명했씁니다.)
그 이유가 먼가요?
(서로 통신을 해야하기 때문이고, 신뢰성 때문입니다.)
신뢰성요?
(..)
캐쉬 코이런스가 먼가요?
(용어가 생각 않났습니다. 잘모르겠습니다.)
이걸 몰라요? 캐쉬 여러군데 데이터가 있을때...
(아.. 데이터를 수정후 기존의 데이터를 읽을려고 할때 발생하는 불일치 입니다.)
해결방안이 어떤게 있나요?
(하나는 데이터를 수정후 바로 저장하는 방법이고, 하나는 인벨리드 비트를 설정해서 나중에 저장할...)
그렇게 길게 말고요. 짤게요.
(아 제가 처음 말한것은 라이트 백이고요, 뒤에 말한방식은 라이트 트로웃입니다.)
PLA아나요?
(예 들어는 봤습니다.)
거기에는 머머가 있나요?
(잘 모르겟씁니다.)


디지털 회로 설계
하자드에 대해서 설명해보세요?
(스트럭트, 데이타, 컨트롤 하자드가 있씁니다.)
파이프 라인 말고요. 논리회로에서요.
(신호차에 의해 우리가 원하는 결과가 나오지 않는것을 말합니다.)
왜 그런일이 생기나요.
(신호가 동기화 되어 있지 않고, 조금씩차이가 나서 입니다.)
그럼 어떻게 해결해야 하나요?
(클럭을 사용하면 됩니다.)
클럭 말고 다른건요?
(지나가는 게이트의 수를 줄이는 것입니다.)
그걱 이미 최적화 되어 있잖아요.
(잘 모르겠습니다.)
쉬컨스 머신에서 2가지를 말해보새요.
(섬오브 프로덕트와 프로덕트 오브 섬요...미쳤지..ㅡㅜ)
그거 말고요 쉬컨스~~쉬컨스~~
(아 밀러기계와 무어기계가 있습니다.)
밀러가 아니고 밀리입니다.
(네..ㅡㅜ)
둘의 차이가 먼가요?
(밀러의 경우 입력이 출력과 다음상태에 영향을 미치고, 상태가 출력과 다음상태에 영향을 미치는 기계이구요
무어기계는 상태만이 출력에 영향을 미치는것입니다.)
상태가 10개 있으면 몇개의 매모리소자가 필요한가요?
(4개입니다.)
왜그런가요?
(막 설명하다가 막혀서...2의 4승을 표현하기 위해서는 4비트가 필요하기 때문입니다.)
네 수고하셨서요..





part 3
자기소개서를 물어봤습니다.
OS
멀티프로그래밍이 먼가요?
(하나의 프로세서에서 여러개의 job을 돌아가면서 동시에 실행시키는것처럼 보이는 겁니다.)
그게 머가 좋은가요?
(사용자가 편리합니다. 동시에 여러개의 프로그램을 돌릴수 있습니다.
사용자가 머가 좋은가요?
(예를 들어 제가 인터넷을 하면서 음악을 듣고, 게임을 한다면 배치 프로그램은 한번에 하나씩 밖에 못하지만 멀티 프로그래밍은 다같이 할수 있습니다.)
// 추가 빼먹었네요..ㅡㅜ
버스의 장단점이 무언가요?
(동시에 여러개를 처리할수 있지만, 사용량이 많아지면 부하가 걸릴수 있습니다.)

//
인터럽트와 페이지 폴트중 어느게 어렵나요?
(인터럽트입니다. 페이지 폴트도 하나의 인터럽트고, 가상머신에서 메모리를 바꿔주는 일을 합니다. 인터럽트의 경우 각각의 디바이스에 대해 다른 서비스 루틴이 필요하고, 제어하는 방법이 다릅니다.)
흠..설명은 그렇지만 답은 맞았네요.
스타베이션이 일어날수 있는 CPU 스케줄링은 머가 있나요?
(FCFS, 라운드....ㅡㅜ)
아뇨 스타베이션이 일어날수 있는거요.
(아. 프라이어티 스케줄링과 멀티큐 스케줄링이 있습니다.)
우선순위를 정해주는 규칙이 있나요
(중요한것을 높이 정해줍니다..ㅡㅜ)
흠.. 그러면 스타베이션이 일어나지 않는게 있나요?
(FCFS, 라운드로빈입니다.)
라운드 로빈이 FCFS보다 항상 좋나요?
(예. 특히 레스폰스 타임은 훨씬 좋습니다.)
끄덕 끄덕
(웨이팅 타임은 차이가 없을거 같습니다...괜히 말했네요..ㅡㅜ)
그건 좀 생각해봐야겠네요.

(페이지 리플레이스 먼스 정책과 벨러디의 모순에 대해서, 벨러디의 모순이 일어나지 않는 정책이 있는지에 대해서 자세히 기억이 안나네요..ㅡㅜ)

PL
C++해보셨죠?
(예)
C++이 안전한가요? 이유는?
(안전하지 않습니다. 댕글리 포인터나 댕글리 오브젝트 문제가 발생할수 있습니다. 자바의 가비지 콜랙션 같은 기능도 없습니다.
그리고 파라미터 타입체킹도 하지 않습니다.)
그럼 JAVA는 안전한가요?
(C++에 비해..)
C++과 비교 하지 말고, 안전한가요?
(....예)
JAVA도 배열의 인덱스범위를 넘어서 참조하면 예외를 발생하고 종료됩니다. 그래도 안전한가요?
(.....그부분은 생각하지 않고 해서..ㅡㅜ)

C++에서 하나의 함수를 만들어서 int형도 쓰고, string도 쓰고 이런게 머가 있죠?
(템플릿입니다.)
JAVA는요?
(잘 모르겠습니다.)
generic 클래스 들어봤나요?(저용어가 맞나요??)
(예 들어봤씁니다.)
그외에도 +기호를 여러 의미로 사용할수 있어요. 그걸 머라고 하나요?
(오브로딩 입니다.)
그것 말고 사용해본 언어 있나요?
(파이선 있습니다.)
파이선은 안전한가요?
(아니요)
왜 그런가요?
(우선 중간에 데이터 타입이 바뀔수 있고요. 공란의로 블록을 의미하기 때문에 실수하기 싶습니다.)