[구인-큐브리드] DBMS 개발자로서 경력을 확보하고 싶으신 분을 찾습니다.

2
points

오라클과 경쟁하는 국산 DBMS 업체 큐브리드에서 실력있는 개발자를 구합니다.

회사와 제품 소개는 큐브리드 홈페이지(http://www.cubrid.com )와 홍보영상(http://www.cubrid.com/download/cubrid_intro.wmv )을 참조하세요.

학력, 연령, 성별, 경력, 전공에 관계없이 지원하실 수 있습니다.
단 3시간의 면접만 통과하시면 됩니다.
거의 대부분 지원분야의 핵심경쟁력을 검증하는 데 활용됩니다.

제품개발부서는 PM팀(프로그램 관리), 개발팀, QA팀으로 이루어져 있고,
- PM팀은 커뮤니케이션 능력, 결과 중심의 업무태도를,
- 개발팀은 문제 해결, 코딩 기술을,
- QA팀은 테스팅과 코딩 기술을 집중적으로 면접합니다.

아래에 팀별로 면접 질문 예제를 만들어 보았습니다.
원하는 팀의 질문에 "나는 이렇게 하겠다!"는 아이디어를 가지고 대화를 시작할 수 있습니까?
그렇다면, 저희 회사에 지원하셔서 실력을 보여주시길 바랍니다.

면접은 대화식으로 진행하여 정답 보다는 과정을 봅니다. 따라서, 아래 문제에 정답을 맞추는 것이 중요한 것은 아닙니다. 정답이 없는 것들도 있고.
그리고, 인터넷에서 "Microsoft Interview Questions"을 검색하시면,
저희 회사가 면접에서 활용하는 문제의 대략 유형을 찾을 수 있습니다.

Joel Test에서 12점 만점을 유지하고 있는 큐브리드의 개발 프로세스.

실력있는 분이라면 대졸신입이라도 연봉 5천만원 드릴 수 있습니다.
회사홈페이지를 통하여 온라인지원하시기 바랍니다.

(PM팀)
1. 고객의 요구사항에 대하여 개발, QA, 기술지원팀의 입장이 첨예하게 대립할 때가 있습니다. 이럴 때 어떤 프로세스를 통하여, 어떤 기준으로 문제를 해결하겠습니까?
2. 큐브리드 고객이 배너광고 응용 개발을 위해 DBMS SQL에 무작위추출 (random sampling) 질의 기능이 있으면 좋겠다고 합니다. 어떻게 제품 명세를 만들겠습니까?
(개발팀)
1. tic-tac-toe 게임 모두 아시죠? NxN 보드 tic-tac-toe 게임을 개발하는데, 플레이어가 현재 놓은 위치가 게임을 끝내는지 아닌지를 판별하는 함수를 만들어 보세요. 예를 들어, bool IsWinningMove(int **board, int row, int column) 함수를 만드는 것입니다.
2. 전체 개수를 미리 알 수 없는 number stream에서 무작위로 1000개를 추출하려고 합니다. 추출된 것이 stream의 특정 지역에 집중되면 안될 것이고, 전체 개수를 미리 알 수 없으니, 전체를 디스크에 저장할 수도 없을 것입니다.
(시험팀)
1. 윈도우의 notepad의 save 기능을 시험하기 위한 플랜을 작성하여 보세요.
2. QA팀이 제품의 마지막 릴리스를 인증하는데, 개발팀에서 발생시킨 오류 때문에 인증기간이 늦어질 뿐만 아니라, 인증기간에 대한 예측성이 떨어져 릴리스 일정관리가 힘들어지고 있습니다. QA팀으로서 개선안을 제시해보십시요.

익명사용자의 이미지

ㅋㅋ 웃기다

-9
points

ㅋㅋ 웃기다

제가 보기에도

-5
points

제가 보기에도 우리나라 중소기업은 너무 눈이 높은거 같습니다.

저정도 자격이라면 절대 중소기업 안가고 오라클이나 구글의 입사시험 준비하겠습니다..

오라클과 경쟁할려면 오라클만한 대우를 해줘야 되지 않겠습니까?

사람은 오라클에서 뽑는 수준으로 까다롭게 뽑고 대우는 거기에 한참 미치지 못하는 이하인데 누가 옵니까?

그것도 오라클과 비교해서는 규모가 1/1000밖에 안되는 중소기업에...

c0d3h4ck의 이미지
1410
points

실력만 있다면 대졸 신입이 연봉 5천을 준답니다..

3
points

어딜 봐서 오라클이나 대기업의 대우에 뒤지나요?
물론 '실력이 있다면' 이라는 전제가 붙지만 위의 말 대로라면 우리나라
IT 회사로서는 최고급 대우라고 생각 됩니다.

그런 말은 다 합니다..

-4
points

실력있으면 당연히 어디회사든지 대우해주겠지요..

근데 그 기준이야 회사 마음 아닙니까?

대기업은 그럼 뭡니까? 실력있건 없건 일정자격기준만 경쟁 통과하면 다 기본은 많이 주는건요?

연봉 5천이 많다 보시는데.. 삼성전자 PS 좀 받으면 신입이라도 그정도가 아니라 5천이상도 받습니다.

그럼 거꾸로 큐브리드에서 5천받는 개발자가 얼마나 되는지 묻고 싶네요.

제가 생각하기론 최소 팀장이상 임원급이 아닌 사원급에선 없다 생각됩니다만..

그럼 말뿐인 허울아니란 얘기입니다..

웃는 남자의 이미지
3494
points

위에 분들이 잘 모르시는 것 같은데...

5
points

제가 알기론 큐브리드라는 회사는 괜찮은 개발자대우를 해주는 걸로 압니다.
허접한 중소기업이 아니에요.
그리고 구인글에 실력있다면 신입이라도 연봉 5천도 준대자나요.
글을 띄엄띄엄 보셨나봐요?
그러니 저 정도 스킬을 요구할 수는 있다고 생각합니다.

면접예제로 제시된 질문을 풀어보는 것도 잼있을 듯 합니다만..

Nothing left after Nirvana.

esrevinu의 이미지
1843
points

개발팀 2번 문제에 흥미가...

1
point

어떻게 해야 될까요?
제 생각에는 이렇게 하면 될 것 같아요.
일단 1000개의 저장공간을 만든 다음 stream에서 처음 1000개를 저장하고
다음 1000보다 큰 N번부터는 1~N 사이의 난수를 발생시켜서 그 난수가 1~1000
사이에 있으면 난수번째 자리의 수를 마지막 수로 대체하고 그렇지 않으면 버리는 방식으로 해 나가면 될 것 같은데...
전 개발자가 아닙니다. 그냥 어떻게 하는지 궁금하네요. 이런게 데이터베이스 소프트웨어 알고리즘인가 보죠?

무서운 공력이시군요...

1
point

esrevinu님, 너무 쉽게 풀어버리는군요. 문제를 복잡하게 보지 않고, 기본에 충실 (즉, N번째 숫자가 마지막이라고 보고 이것이 선택될 확률은 1000/N)하다보니 쉽게 푸신 것 같군요. 참고로, DBMS 알고리즘은 아닙니다. 그냥, 문제해결 능력을 면접하는 것입니다. 그런데, 채용공고에서도 보셨지만 큐브리드는 개발팀만 뽑는 것이 아닙니다. esrevinu님 정도의 문제해결 능력이면 어느 분야에서도 두각을 나타낼 것으로 봅니다. 혹, 큐브리드에 일하실 생각은 없으신지? -- 김평철

익명사용자의 이미지

1번은 게임 Tree 가

1
point

1번은 게임 Tree 가 가장 간단한 해법이겠네요. 뭐, N이 커질수록 검색시간은 늘어나겠죠.
뭐, 적당한 휴리스틱으로 좀 줄일수도 있겠네요.

2번은, 첫째로 만약 스트림이 1000개 이하일때는 어떻게 할 것인가도 생각을 해봐야 할꺼 같구요.
두번째로 스트림의 특정 영역이라는 말에 집중을 한다면, 즉 정렬된 데이터가 아니라면야 한번 쭉 돌아서
전체 개수를 센 다음, K(여기서는 1000)으로 나눈 단위로 그냥 랜덤 액세스(가능하다면) 해서 들고오면
될꺼 같군요. 여기서 랜덤 시드로 T(전체개수)/K 해서 나온 단위 안의 값으로 더해주면 더더욱 괜찮을듯.

만약 랜덤 액세스가 불가능하다면, 1부터 1000까지 가져와서 배열을 채우고(모자라면 거기서 끝) 랜덤 K 단위로
(/10,/100 현재까지 나온 개수의 적당부분으로, 값을 다음값과 계속 치환 시키면 그래도 적당한 분포로 나오지
않을까요?) 랜덤 액세스가 불가능 하다면, 그리고 한번만 딱 순회가 가능하다면, 그냥 위와 같이 만드는게 괜찮을듯

익명사용자의 이미지

실력있다면

1
point

실력있다면 신입에게도 억단위로 줄 수 있습니다. 이렇게 되면 개발자가 천시받지 않을 겁니다.

저도 그런 개발자를 찾고 있습니다....

2
points

큐브리드는 직위/직급/직책과 관계없이 철저하게 성능목표/평가에 의한 연봉제로 되어 있습니다. 사원급이 차장급 연봉을 받는 것이 어렵지 않습니다. 하지만, 아직은 임원급 연봉을 받는 개발자는 찾지 못했습니다. 임원급의 공헌도는 순수한 개인역량만으로 쉽지는 않습니다. 팀내 다른 직원들을 움직이고, 경우에 따라서는 다른 팀을 움직여서 이루어내는 일들이 주로 큰 공헌도를 갖게 됩니다. 즉, 코딩실력 뿐만 아니라, 커뮤니케이션, 설득/조정능력, 리스크관리 등 다양한 경쟁력을 가져야 할 것입니다. MS의 Software Architect가 비슷한 예라 할 수 있습니다. 문제는 우리나라의 경우 개발자 경력경로가 짧아 (약 35세때 max-out) 그런 정도로 성장하는 개발자가 거의 없는 것 같습니다. 아마, 패키지 SW가 아니라 단품성 SI 중심의 개발자 문화가 한 원인이 아닌가 생각합니다. 바람직한 개발자 문화를 앞당기는 것이 큐브리드의 한 임무라 생각하고 있습니다. -- 김평철

큐브리드회사입장에

-3
points

큐브리드회사입장에서는 임원급 연봉을 받는 개발자는 찾지 못하셨다 하시는데..

그럼 거꾸로 그런 개발자가 큐브리드를 찾아올거라 생각하시고 가만히 테스트할 준비로 기다리시는 겁니까?

김평철님은 제가 알기로 대기업 마이크로소프트에서 오래 일하셔서서 아직 국내회사 문화에 익숙하시지 않은거 같습니다.

마이크로소프트사도 인재를 확보하는데 세계 최대 소프트웨어 개발회사이지만 아직도 직접 대학에 찾아다니면서 인재확보에 모든 임원진들이 심혈을 기울이는 중요 업무라고 알고 있습니다.

근데 국내회사들은 구직자입장에서 보기엔 분명 중소기업임에도 자신들도 대기업입장에서처럼 까다롭게 구직자를 대하는데 대접은 중소기업처럼 한다는데에 서로 입장의 차이로 괴리가 발생합니다.

한예로 면접하러 온 모든 사람들에게 면접비와 차비를 큐브리드는 대기업 수준으로 지원하나요?

큐브리드가 현재 NHN과 차세대 DBMS개발을 하고 있는 것으로 알고 있습니다.

그럼 어차피 DBMS개발업무 지원으로 같은 일을 하는 개발자가 만약 두 군데를 놓고 합격하면 어디 명함을 선택할거 같습니까?

NHN는 회사버스로 중요한 지원자를 모시러 오기도 하고 면접비는 물론, 밥값도 준다 합니다..

익명사용자의 이미지

2번 답

2
points

일단 1000개까지는 배열에 다 저장한 다음,
1001번째 수는 1/1001의 확률로 그배열의 아무위치에 집어넣고,
1002번째 수는 1/1002의 확률로 넣고, ....,
하면 N이 언제끝날지 몰라도 항상 배열에 남아 있는 놈은 1000/N의 확률로 살아 남아 있는 놈입니다.

간만에 공부하려니 공식은 기억 안 나고 일일이 해봤네여.. ㅋㅋ
면접때 물어봤으면 대답 못 했을 듯...
답... 맞나여??

1/1001은 1000/1001의 오타겠지요?

0
points

남은 것이 1000/N이라 하신 것을 봐서 1001번째도 1000/1001이겠지요?
예, 맞는 것 같습니다. 그런데, 왜 맞는지 증명해보실 수 있겠어요? 저도 증명 해본 적은 없습니다만. 아마, 누군가는 이것으로 박사논문도 썼을 것입니다. ^^ 큐브리드에 입사하여 제대로 된 개발자 경력경로를 밟아보실 생각은 없으신지? - 김평철

시지프스의 이미지
2304
points

2번 문제 증명?

3
points

이렇게 하는 거 아닌가요?

일단 처음 1000개는 무조건 저장.

1001번째 입력: 1/1001의 확률로 입력 무시. 1000/1001의 확률로 기존 1000개 중 하나를 버리고 새 입력 저장.
이렇게 하면 1001번째 입력이 선택될 확률은 1000/1001
1~1000번째 입력이 선택될 확률은 (1/1001)*1 + (1000/1001)*1*(999/1000) = 1000/1001
따라서 결과는 성공적임

k번째 입력까지 결과가 성공적이었다면( k >= 1000)
k+1번째 입력에서...
(k-999)/(k+1)의 확률로 입력 무시. 1000/(k+1)의 확률로 기존 1000개중 하나를 버리고 새 입력 저장.
k+1번째 입력이 선택될 확률: 1000/(k+1)
1~k번째 입력이 선택될 확률: ((k-999)/(k+1))*(1000/k) + (1000/(k+1))*(1000/k)*(999/1000) = 1000/(k+1)

좋은 회사라고 알고 있는데..

0
points

저에게는 좋은 이미지의 회사 입니다.
물론 저야 실력이 안되서 지원조차 생각은 하고 있지않치만..

솔직히 중소 업체가 대기업에 경쟁력은 안되죠.. 대우 뿐만이 아니라 안전한 직장도 아니구요..
큐브리드 DBMS 개발해서 수입이 크게 얻을수 있을지 의문 입니다 평생 무료로 제공하고 기술지원등만 비용을 지불하는 형태인데.. 우리나라에서 리눅스로 크게 수익을 내는 업체가 얼마나 될까요?

대우라는건 급여 뿐만 아니라 여러 복지등도 있겠죠..

너무 대기업하고 비교만 한다면 누가 중소기업을 가겠어요? ^^;;
그래도 대기업은 학벌을 너무 중시해서..

익명사용자의 이미지

농담이기도

0
points

농담이기도 합니다만... Microsoft도 재벌은 아니죠.

Scarecrow의 이미지
4556
points

2번은 나름생각해

1
point

2번은 나름생각해 봤는데 미처 생각지 못한 방법이로군요. orz입니다.

1번은 그래도 나름 풀어보았는데 다른분들은 쉬워서 취급도 안하시는것들 같네요. ^^;

0은 말이 놓이지 않은 자리. 1, 2 두가지 말로 해서...

#include < stdio.h >
#include < stdlib.h >

#define MAX 4
#define False 0
#define True 1

int IsWinningMove(int board[][MAX], int row, int column)
{
	int i, ret;

	ret = board[row][0] && (board[row][0] == board[row][1]);
	for(i = 1; i < MAX - 1; ++i) {
		ret = ret && (board[row][i] == board[row][i+1]);
		if(!ret) break;
	}
	if(ret) return True;

	ret = board[0][column] && (board[0][column] == board[1][column]);
	for(i = 1; i < MAX - 1; ++i) {
		ret = ret && (board[i][column] == board[i+1][column]);
		if(!ret) break;
	}
	if(ret) return True;

	if(row == column) {
		ret = board[0][0] && (board[0][0] == board[1][1]);
		for(i = 1; i < MAX - 1; ++i) {
			ret = ret && (board[i][i] == board[i+1][i+1]);
			if(!ret) break;
		}
		if(ret) return True;
	}

	if(MAX-1-row == column) {
		ret = board[MAX-1][0] && (board[MAX-1][0] == board[MAX-2][1]);
		for(i = 1; i < MAX - 1; ++i) {
			ret = ret && (board[MAX-1-i][i] == board[MAX-2-i][i+1]);
			if(!ret) break;
		}
		if(ret) return True;
	}
	
	return False;
}

int main(void)
{
	int board[MAX][MAX] = {{ 0, 0, 2, 1 }, { 0, 1, 2, 0 }, { 0, 1, 2, 0 }, { 1, 0, 2, 0 } };
	printf("%s\n", IsWinningMove(board, 0, 2) ? "True" : "False");
	return EXIT_SUCCESS;
}

시그너쳐: ./configure --prefix=/usr; make; sudo checkinstall

시지프스의 이미지
2304
points

아닌 것 같아서 취소

0
points

아닌 것 같아서 취소합니다.

anfl의 이미지
2046
points

하하 우습네요.

-4
points

능력만 있으면 얼마든 연봉이 높을수 있다. :)
5000? 1억?
대단한 액수도 아니면서 의기양양해하지마시죠.

지금 당장 5000, 1억을 안줘도
사람들에게 진정 자신의 회사라고 말할수 있게 할수 있나요?
그만한 기업문화나 철학, 가치를 생각하고 계신건지? ^^

사람들을 행복하게 해줄수 있나요?
사람은 누구나 행복하기 위해서 태어나고,
인생의 반을 회사란 공간에서 보내는데,
사람들의 행복을 위해서 한번쯤 고민해봤을까...
말하는 투로봐서는 아닌것 같네요.
(솔직히 말하는 투가 좀 재수 없네요.
한마디로 말해 겸손하지 않네요.
그만한 인재를 원하시면 그만한 예를 갖추어야하지 않을지요? ^^)

아직 잘모르는 상태에서 실례될지도 모르겠지만
DBMS가 그 회사의 모든 직원들이
사회에서 이야기하는 보편적 성공을 했다고 할만큼
가치를 가지고 있을거라 생각이 들지는 않네요. ^^
그러기엔 파이가 좀 작지 않을까요?

최고의 기술에 마음을 빼앗긴건 아니신지요.
바보같이..

소타의 이미지
4416
points

개인적으로 보편적인

1
point

개인적으로 보편적인 성공은 필요없다고 생각합니다. 행복과 성공의 기준은 주관적인 거니까요.
DBMS 개발자들에게 DBMS의 개발과 완성은 행복과 성공의 키입니다. 남들이 성공이 아니라고 폄하한들 뭐합니까.. 자신의 목표고 지가 좋다는데

돈과 문화, 철학, 가치.. 모두를 대다수의 사람들이 인정할 만큼 가진 기업이 몇 안됩니다..
큐브리드의 3시간짜리 면접이 국내에서 보편적으로는 생소하지만 "필요한" 좋은 사람을 뽑고 싶어하는 노력이 폄하할 거리는 아니라고 생각합니다
큐브리드 개발자들은 행복하지 않고 기업문화나 철학, 가치가 거시기 하다로 들리는데 근거없는 말씀이면 자제 쫌;;
근데 말씀하시는걸 보니 큐브리드에서 일하셨던 분 같은 포스가 -_-;

소프트웨어 개발자로써 국내에서 기본급으로 연봉 5k, 10k는 쉬운 일은 아닙니다 -.-; 물론 생각보다는 많은 분들이 좋은 대우를 받고 계십니다
하지만 전체적으로 하향평준화는 가슴아픈 현실이죠;
IT계열이 아니더라도 연봉을 구체적으로 알 정도로 친분이 있고 1년에 12번 이상 개인적인 통화가 가능한 사람중에 연봉이 5k넘는 사람을 꼽아 보라고 하면 얼마나 될까요?
아마 두자릿수 넘기는 분이 많지 않을것 같네요 =)
두자릿수 넘기시는 분은 개인적으로 연락 좀;; 친하게 지내고 싶어요 ㅋㅋ

anfl의 이미지
2046
points

제말에서 3시간

-1
points

제말에서 3시간 면접에 대한 이야기는 하나도 없었는데,
제말이 3시간 면접에 대한 불만으로 보였다면 정말 큰오해를 하셨네요.
저는 면접은 적어도 8시간 이상은 해야된다고 생각하는 사람이니깐요. :)

행복의 가치는 주관적입니다.
어떤 사람은 정시 퇴근에 가족과 화목한 시간을 가지며 삶의 질을 중요할수도 있고,
어떤 사람은 세상에서 최고의 DBMS를 만드는게 행복일수도 있지요.

최고의 DBMS를 만들는것 만으로도 행복에 겨운 사람들이 있습니다.
순수한 엔지니어의 혈통을 가진 사람들은 그렇죠.
최고의 DBMS를 만들었을때 내가 만든 DBMS를 사람들이 많이 써준다면
순수한 혈통의 엔지니어에게 그보다 더 큰 행복이 있을까요?

저에게는 원글이 이렇게 보이는군요.

"우리는 순수한 혈통의 엔지니어를 원하고 있다."
"우리가 돈을 줄께. 능력만 좋으면 5000~1억"

"다음으로 우리는 DBMS를 만들고 있어."
"오라클하고 맞장한번 떠볼려고 하는데 일단 돈은 5000~1억이야. 능력만 좋으면...
하지만 우리가 왜 오라클하고 맞장뜨서 이길수 있을지는 몰라."
"우리의 미래? 글쎄 몰라... NHN하고 같이 하는데 나중에 오라클하고 맞장뜨서 이기면 너의 미래?
글쎄... 몰라. 왜 우리회사가 너의 열정을 다 바쳐도 좋을지 글쎄 모르겠네.
하지만 일단 능력만 좋으면 당장 돈은 5000~1억이야. 5000~1억이면 많지 않어?"
(글쎄 내가보기엔 푼돈인데.)

순수한 혈통의 엔지니어가 받아들이기에는
뭔가 주객이 전도된듯한 느낌이 드는건 저만의 느낌일까요? ^^
물론 저는 순수한 혈통의 엔지니어는 아니네요. ㅎㅎㅎ

PS.
"큐브리드 개발자들은 행복하지 않고 기업문화나 철학, 가치가 거시기 하다로 들리는데 근거없는 말씀이면 자제 쫌;;"

그렇게 들렸다면 아니라고 말하겠습니다. 왜냐하면 기업문화는 약간(아주조금)들었고,
철학, 가치에 대한 이야기는 하나도 못들었기 때문에 거시기 하다 어쩌다를 이야기 할수 없으니깐요.
일단 이야기하는 내용으로 봐서는 기업 문화는
틀에 억매이지 않고 능력 본위를 지향하고 있는 듯하여 좋아보이는군요.
하지만 경쟁의 문화일지 상생의 문화일지는 가늠하기 힘드네요.
제가 꼬집고 싶은것은 기업 문화, 철학, 가치를 다 떠나서 연봉에 촞점을 맞추었고,
그만한 사람을 모시고자하는데 삼고초려는 못할망정
돈으로 그만한 사람을 사려고한데 있습니다.

사람을 사람으로 보지 않고 resource로 보려고한 전형적인 관리자의 느낌을 받았네요.
진정한 리더의 글이 아니라는 느낌이 들었습니다. ㅎㅎ

김정균의 이미지
9736
points

기업 문화, 철학,

7
points

기업 문화, 철학, 가치를 떠나서.. 일단은 연봉이 가장 base 이라고 생각을 했나 보죠. 아무리 기업문화, 철학, 가치가 좋아도 연봉이 안받쳐 준다면.. 관심을 가지지 않을테니까요. :-)

굳이 딴지를 걸 필요도.. 이상하게 생각할 필요도 없을 듯 싶습니다. 관심이 있다면 면접시에 물어봐서 파악을 하여 아니다 싶으면 안가면 그만이니까요.

익명사용자의 이미지

뻔한 얘기지만 기업은 이윤추구 집단이죠

6
points

이건 옳고 그름의 문제가 아니라 그냥 정의에 입각한 바가 그렇습니다. 사람을 단지 사람으로만 봐주길 원하면 기업을 가지 말고 NGO나 종교단체에 들어가셔야죠. 물론 극단적으로 살벌하게 가는 기업은 곤란합니다만 큐브리드는 그런 수준(최소한 이 타래의 내용만으로는)은 아닌 것 같은데 뭐가 그리 불만이신지 모르겠습니다. 솔직히 이런 식으로 비야낭거리며 쓰신 내용보단 큐브리드 쪽 얘기가 신뢰가 가는데요. 자본주의 사회에서 영업하는 기업이 실력자를 돈으로 대우하는게 대체 뭐가 문제죠? 전 기업이 철학이니 사회공헌이니 이런건 윗분도 쓰셨지만 부차적인 문제일뿐더러 오히려 그런걸 들먹일 때부터가 더 의심이 갑니다. 고용법 안어기며 사원들 잘 대우하고 상거래법 잘지키며 돈잘벌어 세금낼 때 포탈 안하고 잘내면 그게 사회공헌이지 미술관이니 그런건 세우는건 하려거든 오른손 모르게 굴듯 하면된다고 봅니다. 연말에 불우이웃 돕는다며 돈발라놓고 이름거는거랑 뭐가 다른지 원...

정확하게 따지며 쓰시면 뭐라 안하겠는데 써놓은게 죄다 '느낌'뿐이잖습니까. 패러디 팬픽션도 그렇게는 안만듭니다. 대학에게는 돈잘버는 방법을 가르치길 원하고 기업에게는 철학하기를 원하는 참 희한한 세상입니다.

1. 고객의 요구사항에

1
point

1. 고객의 요구사항에 대하여 개발, QA, 기술지원팀의 입장이 첨예하게 대립할 때가 있습니다. 이럴 때 어떤 프로세스를 통하여, 어떤 기준으로 문제를 해결하겠습니까?
2. 큐브리드 고객이 배너광고 응용 개발을 위해 DBMS SQL에 무작위추출 (random sampling) 질의 기능이 있으면 좋겠다고 합니다. 어떻게 제품 명세를 만들겠습니까?

---------

위와 같은 문제들에 대해서 실제적으로 어떤 식의 절차를 통하여 개발 일정을 짜는지 정말 궁금합니다.

제가 생각할 때는...

위와 같은 문제들에 대해서는
1. 정말 필요한 기능인가 ? ( 그 회사만을 위한 기능인지, 모든 고객이 사용할 만한 기능인지.. )
2. 해당 고객을 위해서 다른 것(개발 일정 등)을 다 제쳐두고 그 요구를 충족시켜줘야 하는 고객인가 ?

가 먼저 선행되서 판단해야 되겠죠.

1, 2 번 둘 다 해당된다고 가정하면 최대한 빨리 고객의 욕구를 충족시키기 위해서는

# SQL 문의 기술지원으로 해당 요구를 충족 가능한가 ?
가능하다면, 급한 불은 끄고 개발팀과 일정 조율을 거쳐 정식으로 릴리스 하면 될 것이고.
불가능하다면, 개발팀의 일정과 고객이 요구한 기간을 고려하여 최대한 절충안을 마련해야겠죠. ( 이런 성의없는 >.< )
- 아무리 그 고객이 최우선이라 하더라도, 무리하게 모든 일정을 해당 고객에게만 맞춘다면 당장은 인정받는 PM 이 되겠지만... DBMS 의 핵심인 개발자는 이런 사건이 반복될수록 지쳐 떨어져 나가겠지요..

두번째.
random sampling 질의 기능이 반드시 필요한가 싶군요 ;;;
배너 광고들의 정보가 담긴 table 을 '광고'라고 가정을 하고, 해당 테이블에서 primary key 값을 id 라고 하면
select id * from 광고; 와 같은 쿼리문으로 id 값을 추출 후 배열에 저장하고 랜덤하게 뽑아내면 되겠죠.
만약 해당 table 에 값이 무식하게 많이 있다면... select count(id) from 광고; 와 같은 쿼리문으로 총계(N)를 뽑아낸 뒤
1-N 사이의 랜덤 값을 추출(X)하여 X 번째 해당하는 id 값을 추출하는... 음...
이런 기능을 DBMS 에서 지원하나요 ?.. 요구하는게 이건가 보군요 ;;;;

익명사용자의 이미지

개발팀 1번 문제는

2
points

개발팀 1번 문제는 automata의 accepted states를 판별하는 문제군요. winning move 말고도 보드가 꽉 차는 경우도 고려해야겠죠. board cell의 자료값은 빈 자리는 -1, 채워진 자리는 놓여진 순서(바둑의 기보를 생각하면 됩니다)를 그대로 사용하면 정보 손실이 없이 활용할 수 있을 것 같습니다. 빈자리는 sign bit 체크하고, 어느 편 돌인지는 lsb 체크해서 even, odd 판별하면 되겠죠. winning move 판별은 마지막 돌 기준으로 행,열, 필요할 경우 대각선으로 sign 체크하면서 lsb를 ~xor 해나가면 간단할 것 같구요.

2번 문제는 동적인 환경에 동적으로 대처할 수 있는 지를 묻는 것 같은데, esrevinu님이 간단 명료하게 풀어 놓으셨네요.

다른팀 문제는 경험이 없어서 판단을 못하겠지만, 개발팀 문제만 봐서는 대단한 문제 해결 능력을 요구하는게 아니라 문제 파악 능력하고 해결 과정에 논리적인 사고를 유지할 수 있는 지 확인하겠다는 느낌입니다.

익명사용자의 이미지

양 선수의 말을 홀수

0
points

양 선수의 말을 홀수 짝수로 구분하여 놓여진 순서 정보를 잃지 않겠다니 정말 멋진 생각입니다.

익명사용자의 이미지

O(1)을 언급하신걸

0
points

O(1)을 언급하신걸 봐선 위에 적은게 원하시는 답이 아닌 모양이네요. 긁적~

winning state만 판별하려면 보드가 실제 어떻게 놓여져 있는지 모든 정보를 알 필요도 없고

- 놓는 자리의 해당 줄이 단색알로만 구성되어 있는 지
- 그 알이 지금 놓는 알과 같은 색인 지
- 이번 돌을 놓음으로써 해당 줄이 모두 채워지는 지

이 3가지만 알 수 있으면 되겠군요.

새 돌 놓을 때 마다, 가로줄들, 세로줄들, 대각선 두개까지해서 2n+2 크기의 배열에 해당 줄들의 위 3가지 상태를 배열의 해당되는 위치에 다음과 같이 기록합니다.

- 한쪽 돌은 음수, 다른 색 돌은 양수로 기록합니다.
- 만일 기존의 값과 다른 sign의 돌을 놓게 되면 ~0으로 기록하고 이후에 이 줄은 확인할 필요가 없겠죠.
- ~0이 아닌 경우는 절대값 하나 증가시킵니다. (해당 줄에 놓여진 돌의 갯수)

이 배열의 기록과 참조는 돌 놓을 때 마다 해당 가로,세로하고 필요할 경우 대각선까지 적게는 2번, 많게는 4번이니 O(1)이 되겠군요.

그런데 int **board 라고 써 놓으신걸 보니 이것도 아닌가 본데, 다른 힌트가 또 있나요?;;

익명사용자의 이미지

에구 이런 첫줄에 답

0
points

에구 이런 첫줄에 답 적어놓고 삽질했네요. 그냥 DFA 만들고 states 잘 sort해서 accepted states 한쪽으로 밀어놓고 비교문으로 판별하면 간단한 것을.. ㄷㄷㄷ 역시 혼자 공부하니 이런 헛점이 있네요;

필승의 수인지 판별하는 거나 마지막 수인지 판별하는 거나 accepted states만 바뀌지 다를게 없군요.

역시 써먹어야 자기 지식이 되나봐요.

같은 공고에 대한 다른 사이트에 추가 정보 있습니다...

0
points

같은 채용공고를 okjsp에 올렸고, 또 어떤 개발자는 이를 delmadang에 cross-post하셨군요. 너무 댓글이 많아 일일이 답변하지 못함을 송구스럽게 생각하고, 면접문제에 대한 다른 분들의 풀이와 큐브리드 회사의 개발자 문화에 대한 일부 답변 등도 찾을 수 있으니 참조하시길 바랍니다. 이번 채용공고는 좀 색다르게 하다보니 회사 일반적인 내용에 대해서는 언급하지 않았습니다. 궁금하신 점이 있으시면 언제든지 pckim at cubrid.com으로 이메일 보내셔도 좋고, 이곳에 게시하시면 답변하여 드리겠습니다. 그 동안 관심 가져주셔서 정말 감사드립니다. -- 김평철

http://www.okjsp.pe.kr/seq/95256 http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?db=dmdtalk3&mode=list... (52471번)

익명 사용자의 이미지

-_-;;

-1
points

1번 O(1)을 할거면 그냥 -_-패턴 매칭 하면 되지 않나요?
-,|,\,/ 네가지 N by N 배열 (말이 N by N이지 array[N*N]이겠죠..)
을 겜 시작할때 만들고 그걸
4가지 패턴을 계속 AND 하면 되지 않나요?
그냥 -_-지나가는길에 궁금해서 질문드립니다..

익명사용자의 이미지

ttt 간단하게

0
points

ttt 간단하게 생각하면 될것 같은데요? 보드(array), 컬럼, 로우가 입력인 것 같은데, 컬럼 로우가 마지막 둔 포인트라면, 컬럼쪽, 로우쪽이 모두 자기 쪽인지 확인하고, 만일 컬럼=로우라면 대각선 방향 추가 확인 하면 될겁니다. 그다지 어려운 문제는 아니네요. 어려운 문제 원하시면

http://www.itasoftware.com/careers/jlisting.html?jid=9

혹은

http://www.itasoftware.com/careers/jlisting.html?jid=10

그 정도 문제 내는 회사라면 확실히 보수나 대우는 좋을 가능성이 큽니다.

우리나라에서라면 덜 어려운(?) 문제 내더라도 대우 좋을까요?

익명사용자의 이미지

메모리가 넉넉하다면

0
points

메모리가 넉넉하다면 성공했을때의 보드모양을 미리 정의해 놓고
게임중인 보드와 AND하여 성공했을때의 보드모양이 나오는지 판단하겠다는 생각 멋집니다.
완성이 되었는지 판단시에는 for문이 전혀 필요없게 되겠군요. 1포인트 드렸습니다.

근데 보드의 크기가 가변이니 성공했을때의 보드모양을 미리 만드는 과정에서 for문이 필요하겠군요.

시지프스의 이미지
2304
points

패턴 매칭을

0
points

패턴 매칭을 하더라도 for문은 필요할 듯 싶습니다. 원소를 하나씩 비교해봐야 하잖아요...

익명사용자의 이미지

그렇네요.

0
points

그렇네요. 배열자체를 통째 AND해보는 것은 안되니... 하나씩...

lovian의 이미지
1122
points

갑자기 딴 생각이

-1
points

갑자기 딴 생각이 드네요.
2번 스트림 문제에서
N이 지나치게 커진다면, 첫 1000번까지의 데이터는 덮어쓰여질 확률이 높아지면서 데이터 편중현상은 피할 수 없어질거 같네요.
특히 랜덤 함수의 테이블이 골고루 분포된 랜덤이라면 더 심할 것 같기도 하구요.

즉, 그 랜덤테이블의 분표주기 가령 M번에 한바퀴를 돈다고 생각하면,
M < N 인 상황에서
0 ~ (N-M) 까지의 데이터는 살아날 확률이 낮은거죠.

이런 생각해봤습니다.
:)
-----------------
한글을 사랑합니다.

아무래도 글 제목이

2
points

아무래도 글 제목이 좀 공격적으로 받아들여 질 수 있습니다.

실력 있으면 연봉 5천도 준다지만 객관적 기준 없이는 마치 "맛 없으면 100% 환불"이라는 식당 광고같은 느낌을 지울 수가 없네요.

대뜸, 이거 풀만한 인간이 있기는 하냐는 식의 글보다는, (회사 사이트 링크가 있긴 하지만) 좀더 회사의 비전과 객관적인 현황을 소개한다면, (이를테면 실제 어떤 정도의 실력과 실적을 평가 받아 5000받는 엔지니어가 실제로 몇 %는 된다 등) 더욱 설득력 있는 글이 되겠죠.

구체적인 개선안 감사드립니다.

1
point

제목에 대하여 구체적인 개선안 감사드리고, 바로 수정하였습니다. 질문 나온 몇 가지에 대하여 답하여 드리겠습니다.

- 회사비전: 국산 DBMS 성공. 저희는 이것이 국내 개발자 문화 향상에 직결된다고 믿고 있습니다. 그 때문에 큐브리드를 무료화하였고, ITrack 등 패키지 SW개발 프로세스를 오픈하는 등 노력하고 있습니다.
- 인력관리: 개발자는 소모품이 아닙니다. 큐브리드는 MS방식의 성능목표/경력목표 관리 시스템을 운영하고 있고, 팀장의 목표는 팀원 경력목표를 성공할 수 있도록 도와주는 것입니다. 매년 성능평가를 통하여 다음단계 성장을 위한 업무조정, 교육, 자기계발 등 구체적은 목표를 설정하여 추진합니다.
- 근무환경: 직장은 누구나에게 있어서 삶의 중요한 일부이지만 전부는 아닙니다. 직원들 삶의 목표의 다양성을 고려하여 Anytime/anywhere 근무환경을 구축하였고, 주5일근무, 자율출퇴근, 재택근무제를 실시하고 있고, 잘 활용되고 있습니다.
- 연봉수준: 직원들의 구체적인 연봉을 밝히는 것은 회사기밀 누설로 저도 회사에 남아있기 힘들 것이기 때문에 어렵습니다. ^^ jobkorea의 중소기업 R&D 분야 평균을 benchmark하여 상위로 유지하고 있습니다.

아, 면접비...

1
point

당연하기 때문에, 답할 가치를 느끼지 못했었는데...면접비를 지급하지 않는 회사가 다수 있나 보군요... 큐브리드는 정식면접에 대하여 면접비를 지급합니다.

익명사용자의 이미지

그런데 '성능평가',

1
point

그런데 '성능평가', '성능목표' 등에 나오는 '성능'은 원래는 기계나 설비등에 대해 사용하는 것이라 왠지 부자연스럽습니다. 아마 'performance'를 그렇게 한글로 사용하신 것 같은데, 업적, 성과, 성적, 작업, 효율 등이 더 적절치 않을까 합니다.

분야가 DB만 있는 듯 해서 아쉽네요. 좋은 인력 구하세요!

puaxx의 이미지
3800
points

..

-2
points

요새 큐브리드가 좀 뜨나 보군요.(' ')a

익명사용자의 이미지

많은 분들이 간과하시는 게

0
points

네, 같은 실력으로 오라클 들어가면 더 대우를 잘 받을 수도 있겠죠.

하지만 같은 실력으로 오라클 들어가면 DB 개발 못합니다. (오라클 본사 개발진으로 채용될 수 있는 사람은 빼고 생각합시다. 그런 사람이면 IBM, 구글, MS, 오라클 중에 골라 가면 되니까.) 물론 더 큰 회사에서 더 다양한 분야를 배우고 더 정립된 개발 프로세스를 경험할 수는 있겠습니다만, DB 개발은 못할 겁니다.

한국 오라클 지사에서 DB 개발에 관련해서 얼마나 독자적인 프로젝트를 수행할 수 있을 것 같습니까? 5년 다녀도 서버 소스 코드 보기 힘들 거라는 데 한표 던집니다.

* 물론 DB를 개발하는 경험이 꼭 긍정적인 기억으로 남을 거라는 보장은 없습니다.

(저는 양쪽 회사와 아무 관계 없음을 밝힙니다.)

익명사용자의 이미지

굉장히 부정적인

11
points

굉장히 부정적인 댓글들에 놀랐습니다.

위에 제시한 조건이 만족스러우면 면접을 보면 될것이고 조건이 해볼만 하나 다소 불만스러운면이 있다면 면접통과후 협상을해보면 되는것 아닌가요?

그냥 이런 회사도 있나보다 하고 넘어가면 될 일 같은데, 못잡아먹어서 안달이신분들도 계신듯 해서 안타깝습니다.

시지프스의 이미지
2304
points

개발팀 1번문제..

3
points

댓글들을 읽어보니 어떤 분은 정말 이겼는지 아닌지 판별하는 문제라고 생각하고 풀고 계시고, 어떤 분은 그것이 필승의 수인지 아닌지 판별하는 문제라고 생각하고 풀고 계시네요.(예: 게임 트리를 언급하신 분?) 사실 저도 후자처럼 생각한 사람 중 하나입니다. 출제하신 분의 의도가 무엇인지 궁금합니다.

전자의 문제로 생각하고 이렇게 풀면 어떨까요?
N*N의 문제라면 int col[N], row[N], diagonal[2];를 만들어둡니다.
흑(??)이 a행 b열에 두면 col[a-1]++; row[b-1]++, if (a==b) diagonal[0]++; if ((a+b)==(N+1)) diagonal[1]++;를 합니다.
백(??)이 a행 b열에 두면 col[a-1]--; row[b-1]--, if (a==b) diagonal[0]--; if ((a+b)==(N+1)) diagonal[1]--;를 합니다.
무엇인가가 N이 되면 흑이 승리, 무엇인가가 -N이 되면 백이 승리하는 겁니다. 이러면 루프문 안돌려도 되겠군요.
(방금 전에 증가시키거나 감소시킨 부분만 확인하면 되니까요.)

p.s. 흑은 O, 백은 X라고 생각하시면 됩니다.

익명사용자의 이미지

인덱스의 a-1이나

0
points

인덱스의 a-1이나 b-1은 a나 b를 써야하는걸 오타한거 같고
해당배열은 static으로 함수가 처음 호출될때 만들어 놓으면 될테고...

어느쪽이 먼저 하나라도 꽉 채우는지만을 생각하면 된다는 아이디어가 좋습니다.

시지프스의 이미지
2304
points

인덱스는...

0
points

함수가 전달받는 row와 column은 1행 1열부터라고 생각한 겁니다. 함수를 어떻게 호출하는지 알 수 없으므로 중요한 문제는 아닐 것 같네요.

추가적으로 아무것도 없는 보드에서 시작해서, 매번 수를 놓을 때마다 더도 말고 덜도 말고 한 번씩 함수를 호출한다는 것이 보장되어야 올바르게 작동하겠네요. 문제에는 그런 조건이 없으니 이것도 요구 사항을 맞추는 데는 실패한 셈인가요? ㅎㅎ

그리고 전역변수를 쓰지 않는 이상 N을 전달받을 방법도 없네요...

익명사용자의 이미지

배열을 int col[N]라고

0
points

배열을 int col[N]라고 만들었지 int col[N+1]이라고 만들지 않았는데요. ^^
의도한 바라니 의외이군요.

익명사용자의 이미지

함수파라미터로

0
points

함수파라미터로 1~N까지 받는다고 가정했다는 말이로군요. 순간 착각했습니다. ^^

cronex의 이미지
4891
points

함수의 원형이

0
points

함수의 원형이 정해지지 않았으니 이렇게 풀어도 되긴 하겠군요.(문제에 나온건 어디까지나 예 이니...)

그런데 어짜피 col[N]과 row[N] diagonal[2]를 루프를 돌아야 하는거 아닌가? 했는데
다시 생각해보니 지금 바뀐 부분만 검사하면 되는 군요.

즉 col[a-1]++; row[b-1]++, if (a==b) diagonal[0]++; if ((a+b)==(N+1)) diagonal[1]++;
부분에선 col[a-1] 이랑 row[b-1] diagonal[0], diagonal[1] 만 N이나 -N하고만 검사해보면 되겠습니다.

흑(O)은 +1, 백(X)은 -1 이 되겠군요.

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

개발팀 1번문제

0
points

보드의 사이즈가 N*N 일때 행과 열 대각선이 같은무늬의 돌로 채워지는걸 판별하는 간단한 알고리즘을 고민해 봤습니다.

보드의 cell 은 -N 으로 초기화 하고 흰돌 검은돌을 0 , 1 로 표현하면

같은 돌로 채워진것인지 판별하는 알고리즘

마지막돌이 놓여진 행,열 또는 대각선의 합 == N*(마지막으로 놓은돌) 일경우 마지막돌을 놓은 사람이 이김

마지막 놓여진 돌이 대각선에 위치한것인지 판별방법
마지막돌의 x,y죄표가 같거나 (백슬래쉬방향 대각선) x+y == (N+1) (슬래쉬방향 대각선) 일경우 대각선에 위치한 돌임

익명사용자의 이미지

연본 5천이라 ㅋ

0
points

엄마친구아들은 연봉 1억에 모셔가는데 ㅋ

우스개 소리입니다.
개발자 1번문제는
좌우 , 상하가 자신과 같은 지를 검사 후 같으면 해당 방향으로 계속 같은 색이 있는지를 검사
대각선은 x,y 좌표가 y=x, or y= -x+(n-1) 만족하는지를 체크 후 해당 방향으로 계속 같은 색이 있는지를 검사
왠지 R트리 같은 늬앙스가 ㅋㅋ

개발자 2번 문제는 동적할당을 이용해야 겠군요
동적할당으로 1000개가 될때가지 돌다가 1000개가 넘으면 rand 함수를 이용해서
rand() % n 이렇게 하면 바꿀 위치를 찾을수 있겠습니다 1000이 넘으면 못들어 가는거죠 ㅎㅎ
결과적으로 모두가 평등해 진다는 확률적으로...

결국 당신의 rand는 충분히 rand한가의 문제로 쿨럭-_-;

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.