취업정보 DONGEUI INSTITUTE OF TECHNOLOGY

취업후기

취업정보취업후기

[동문소식] 일본 오사카 (주)JTEC -어떤 일을 어떻게할 것인가?

전유조 2007-03-08 00:00 1,562

오랜만입니다. 환절기인데 건강에는 별고 없으신지요?<br />
<br />
요즘 소식 전하는게 너무 뜸했던거 같습니다.<br />
<br />
저번주 까지는 JTEC교토영업소에 출퇴근 하면서 정말 피곤하게 하루하루를 보냈습니다. 아침 6시에 일어나서 아침 먹고 7시에 회사 출발. 지하철타고 우메다라는 번화가 역까지 갔다가 다시 거기서 한큐라는 열차로 환승해서 교토 시죠역(京部四條驛)까지... 편도로만 2시간... 왕복 4시간이나 걸리는 무시무시(?)하고도 피곤한 하루하보냈습니다.<br />
<br />
다행히 지금은 오사카 니시지마미나미가타(西島南方)에 있는 영업소에 출퇴근 하게 되서 40분 정도 밖에 안걸립니다. 너무 행복합니다.<br />
<br />
C 언어 커리큘럼이란 걸 저번주 까지는 하고 있었는데, 채홍이랑 저는 현재 상급에 사원명보 관리프로그램이란걸 작성하고 있습니다.<br />
<br />
단순히 프로그램만 만들면 이틀만에도 완성 가능하겠지만... 서류 작성하는게 너무 힘듭니다. 더구나 한국어도 아닌 일어라서 그런지 작업이 더디게 진행됩니다.<br />
<br />
지금은 한국의 제이텍엔지니어스로 부터 데이터베이스 작업(?)이 있어서 그일을 하고 있습니다. 말이 데이터베이스 작업이지.. 단지 이력서를 보고 엑셀에 입력하는 단순 노가다라는 작업입니다.<br />
<br />
정규화도 안해서 소프트계열, 메카닉 계열, 전기전자계열의 엔지니어들을 분류도 안하고 한곳에 단순히 입력시키는데, 이걸 나중에 어떻게 데이터베이스로 활용할런지.. 도무지 이해가 안가지만 하라는데 해야지요. --;;<br />
<br />
하루 일과를 간략히 기술하자면 <br />
<br />
09:00 ~ 11:50 오전근무<br />
11:50 ~ 13:00 점심시간 및 휴식<br />
13:00 ~ 17:00 오후 근무<br />
17:00 ~ 17:50 일보작성 및 업무정리<br />
<br />
이렇게 나뉩니다. 일보란건 그날 회사에서 무엇을 했는가에 대해서 기술하여 매일 보고하는 걸 말합니다. 일일보고서 줄인말입니다. --<br />
<br />
2월 28일날은 JTEC 입사 내정자 간담회가 있었습니다. 그날 앞으로의 일정에 대해서 자세히 들었습니다. 먼저 3월 27일 즉 이달 말일부터 도쿄에서 신입사원 연수가 있습니다. 이때 연수는 일본 전국에서 신입사원들이 다 모입니다. 물론 계열마다 분류되서 연수를 합니다만, 입사식 이라던지 이런건 적기를 생략하고, 폴리테크라는 연수전문회사에서 연수를 받게 됩니다.<br />
<br />
저희 담당인사께서 하시는 말씀이.. 폴리테크의 연수는 힘들기로 정평이 나있어서 연수도중에 버티지 못하고 중도하차하는 사람들이 많이 나온다고 걱정해주시더군요. 솔직히 그얘기를 들었을때, 웃음이 나왔습니다만; 저희들 중에 그런연수에 비할바 못되는 고생 안한 사람이 어딨습니까. 군대도 다들 무사히 제대했는데. 일본어 공부할때도 정말 힘들게 했는데, 골문 앞에서 포기할 사람은 없다고 봅니다.<br />
<br />
이 연수가 한달이고 이 기간 동안 숙소는 치바현에 있는 숙소를 이용하며 비용은 회사측 부담입니다. 일인 일실이며 점심은 연수센터 내의 식당을 이용하게 됩니다. 참 연수 참가하기 위한 지하철비라던지 신칸센비 전부 회사쪽에서 지불해줍니다. 신칸센 표를 보내준다고 하시더군요. 간담회 가지던 그날 교통비 청구서를 작성해서 제출했습니다. <br />
<br />
그리고 한달 연수가 종료된 후에는 저희 소프트계열 엔지니어들은 다시 나고야로 가서 1달간 연수를 받게 됩니다. 이때 파견이 결정되면 파견처로 출근하러 다시 이사해야합니다. 나고야에 있는 기간동안 숙소는 레오파레스라고 해서 전국적으로 유명한 아파트 업계던가.. 여튼 2인 1실로 하루 900엔씩 내고 생활하게 됩니다. 900엔으로는 턱없이 부족할 금액인데 회사에서 많이 부담해주는 듯 합니다. 그러니 하루 900엔이 가능하지요.<br />
<br />
이상으로 지금까지의 생활 현황에 대해서 적어봤습니다. 적고 보니 기네요. 앞으로는 자주 연락 드리겠습니다. 그럼 환절기 감기 조심하시고 건강하십시요.<br />
<br />
------<br />
<br />
일본 (주)JTEC에서의 전공 연수에 관하여...<br />
<br />
긴 내용이지만 현재 하고 있는 연수에 관한 내용입니다. 자세한 내용과 자료는 사외비라서(--;;)..<br />
<br />
C언어 커리큘럼이란 프린트물을 받아서 안에 기재된 과제를 푸는 것입니다만, 하, 중, 상급의 세단계로 나누어져 있습니다.<br />
<br />
하중급은 간략히 적고 제일 어렵다고 생각되는 상급 부분에 대해 앞으로 올 후배들과 지금 같이 있는 동생들에게 도움이 될거라고 생각하고 자세히 적어 보겠습니다.<br />
<br />
하급과 중급은 씨언어에서 제공하는 함수들 중에서 리눅스 운영체제에서는 에러로 인해 사용하지 못하는 itoa인지 atoi 함수인지 헷갈립니다만 그럴 경우에 대비해서 자신이 직접 함수를 만드는 것부터 해서 각종 문자열 함수(strlen, strcpy 등등)까지 직접구현하는 과제 진수변환 최대공약수 최소공배수와 자료구조의 리스트 구현 스택과 큐 구현 각종탐색 및 정렬법에 대해서 C언어로 구현해야하는 과제가 있습니다. 그리고 단순 선형리스트의 구현의 경우 선형리스트의 자료를 머지소트하는 과제가 있는데 보통 머지소트를 할경우 따로 임시 저장공간을 확보하여 구현합니다만, 여기 수록된 과제에서는 따로 저장공간을 확보하지 않고 리스트의 메모리 주소를 포인터를 이용하여 스왑핑해서 합병정렬하는 방식을 요구합니다. 분할정복이라고도 하는것 같은데 용어가 확실한지는 모르겠네요. <br />
<br />
위의 과제들을 풀어 나가기 위해서는 기본적인 반복문 제어문의 활용은 물론이며 각종 데이터타입들에 대한 정확한 이해와 포인터의 이해 배열의 활용 메모리의 동적할당(malloc) 구조체의 활용 타입캐스팅 재귀함수와 재귀호출 등등 C언어에 대해서 자세히 공부를 해야 합니다. <br />
<br />
무엇보다도 가장 중요한 것은 알고리즘입니다. 알고리즘만 잘 만들어 낼수 있다면, 프로그램 언어는 중요치가 않습니다. 맡은 프로젝트가 vb라면 바이블 책한권 사서 vb의 특징과 문법만 공부하시고 업무중에 모르겠으면 책보면서 구현해도 충분합니다. 알고리즘을 모르면 아무리 C에대해서 알고 있어도 프로그램을 만들수가 없습니다. <br />
<br />
어디에 뭘써야 될지 여기서는 어떻게 데이터를 처리해서 어떻게 진행할 것인가 등등 이런게 안되는데 프로그램 언어 지식에 대해서 달달외우고 있다한들 무슨 소용이겠습니까? 알고리즘을 탄탄히 공부하는게 어떤 프로젝트든 어떤 언어를 사용하든지 만들어 낼수 있다고 생각합니다. <br />
<br />
그리고 이제까지 간략하게 사용하던 변수명(int a, int b)이라던지 함수명등은 사용하지 말고 일정한 규칙을 지켜서 알아보기 쉽게 명명하여 사용하는 습관을 들여야 합니다. 예를 들자면 int형의 size란 변수를 선언할 경우는 int nSize;라고 선언한다던지 사원이름을 선언할 경우는 char sEmp_Name[20];라고 선언한다던지 함수명은 처음은 대문자로 작성한다 등의 프로그램 작성 규칙에 대한 이야기 입니다. 여기서 nSize에 n은 number를 뜻하며 s는 string을 뜻하는걸 눈치 빠른 사람은 아셨겠죠? <br />
<br />
그리고 함수를 사용하는 이유에 대해서 알고 있는 사람도 있을테고 모르는 사람도 있을테지만 함수를 사용하는 이유는 모쥴화를 시켜서 프로그램의 유지보수와 재사용성을 높이고 프로그램의 크기를 줄이기 위함입니다. 모쥴화는 기능별로 묶어서 공통된 함수들을 묶어주고(예를들면 sound.cpp에는 사운드 제어 함수들만 기재하는 겁니다.) 한번이상 반복되는 코드라면 함수로 만들어서 호출하는게 프로그램의 덩치도 줄일수 있고 보기에도 편합니다. 여기까지 간략하게 설명을 마치고, 지금 현재 진행하고 있는 과제에 대해서 적어 보겠습니다.<br />
<br />
상급 과제 - 사원명보 프로그램의 작성.<br />
<br />
1. 필요 지식<br />
- 데이터구조의 연결리스트(단순 연결 리스트가 아닌 이중연결리스트)<br />
- 구조체에 대한 지식<br />
- 포인터에 대한 완벽한 이해<br />
- 함수에 대한 이해 및 모쥴화에 대한 지식<br />
- 파일 핸들링(저수준이든 고수준 파일핸들링이든 상관은 없습니다. 요즘은 컴퓨터가 워낙이 빨라서..)<br />
- 정보처리 이론의 시스템개발 방식에서 폭포수 모델에 대한 이해<br />
- 물론 반복문과 제어문은 자유자재로 다룰줄 아셔야 합니다.<br />
<br />
2. 사양서(구현해야 할 기능들에 대한 요구서)<br />
- 사원등록 메뉴항목으로 사원번호, 사원명, 연령, 성별을 입력하고 완료후 이중연결리스트에 추가<br />
- 사원번호검색 메뉴항목으로 사원번호를 입력하여 이중연결리스트에서 해당 사원 정보를 표시<br />
- 사원일람표시 메뉴항목으로 현재리스트에 저장된 모든 사원정보를 표시<br />
- 사원삭제 메뉴항목으로 사원번호를 입력하여 해당 정보를 표시 및 확인후 리스트에서 삭제<br />
- 종료 메뉴항목으로 리스트에 데이터를 파일로 저장<br />
- 프로그램 기동시 데이터파일로 부터 사원정보를 읽어와서 리스트에 추가함<br />
<br />
프로그램 실력이 있는 사람이라면 별거 아니네 이정도는 이틀이면 충분히 만들고 남겠다라고 생각하는 사람들도 있을지 모르겠지만, 문제는 이게 아닙니다. 작성물이라는 어마어마한 복병이 숨어 있습니다.<br />
<br />
3. 작성물<br />
- 작성스케쥴<br />
- 프로그램소스코드<br />
- 기능설계서, 함수사양서, 파일사양서<br />
- 단체시험항목<br />
- 종합시험항목<br />
<br />
4. 진행방식<br />
1) 전체스케쥴을 작성한다(기본설계, 상세설계, 코딩, 시험으로 대분류해서 스케쥴링)<br />
2) 스케쥴링후 기본설계에 해당하는 기능설계서를 작성하는데 기능사양서에는 프로그램 개요, 실현할 기능 화면흐름도 처리흐름도를 기술한다.<br />
3) 기본설계후 기본설계서를 토대로 상세설계에는 함수사양서, 파일사양서를 작성한다.<br />
4) 3)까지 작업후 3)까지의 자료를 토대로 코딩을 한다.<br />
5) 4)까지의 작업이 끝났으면 서류를 토대로 단체시험항목과 종합시험항목을 작성하고 그를 토대로 단체시험항목부터 종합시험항목까지 테스트한다.<br />
<br />
이제부터 가장 힘들었던 3번 작성물.. 그중에서도 서류작성에 대한 설명을 하겠습니다.<br />
<br />
1. 스케쥴표 작성<br />
기본설계 -> 상세설계 -> 코딩 -> 테스트까지의 절차를 언제까지 진행할껀지 스케쥴표를 작성해야합니다. 각단계별로 자세한 일정과 목표를 달성했는가 안했는가를 기록해야합니다.<br />
<br />
2. 기본설계 - 사양서 작성<br />
1번의 스케쥴표 작성이 완료되면 그에따라서 기본설계서를 먼저 작성합니다.<br />
<br />
일종의 기능 설명서 입니다. 기본설계에는 기본사양서라고 해서 프로그램의 기능과 구현할 기능들에 대한 설명과 그에대한 화면처리도, 처리흐름도 - 알고리즘이라고 보시면 됩니다. - 가 있습니다.<br />
<br />
기본사양서에는 프로그램에 메뉴에 대한 간략한 설명과 대략적인 흐름을 간략히 기술 합니다. 화면처리도는 말그대로 메인메뉴에서 각 해당 항목메뉴에 대한 화면 전이를 흐름도로 그립니다. 처리흐름도는 말그대로 각 기능들에 대한 흐름도 즉 알고리즘을 그립니다. 기본설계에서 하는 처리흐름도의 경우는 프로젝트가 크면 클수록 알고리즘을 한곳에 작성하기엔 무리이기 때문에 보통 간략하게 메뉴처리, 입력처리 등으로 기술하고 상세설계에서 여기 기술한 항목들에 세부 알고리즘을 작성합니다.<br />
<br />
3. 상세설계 - 사양서 작성<br />
2번의 기본설계가 끝나면 스케쥴대로 2번을 모티브로한 상세설계서를 작성합니다.<br />
<br />
함수구조도 - 모쥴화 시킬 함수들에 대한 간략한 설명과 프로토타입을 기술합니다.<br />
<br />
헤더파일사양서 - 모쥴화 시킨 함수들에 대한 프로토타입 기술 및 전역변수 매크로등을 기술합니다. 물론 구조체라던지 공용체 전부 기술 합니다. 전역포인터변수라던지 하나라도 빠트려서는 안됩니다.<br />
<br />
함수사양서 - 모쥴화 시킨 각 함수들에 대한 설명과 기능을 기재하며 각 함수들에 대한 상세한 알고리즘을 작성합니다. 예를들어 int SizeCheck(NODE *ptr, int nMax, int nMin, int nMeans)라는 함수가 있다면 이경우 이함수는 다음과 같이 기술한다고 보면됩니다.<br />
<br />
1) 함수기능의 설명<br />
이함수는 입력받은 각 사원정보에 대한 자리수를 체크하여 입력받은 값이 허용범위내에 있는 경우 1을 리턴하고 그렇지 않은 경우 0을 리턴하는 함수이다.<br />
2) 지역변수 기술<br />
3) 리턴타입(일본에서는 모도리치라고 함)의 기술<br />
4) 각 인수의 기술<br />
5) 예외처리 및 다른 함수를 호출하는가 재귀함수인가 등 상세한 설명을 기술합니다.<br />
<br />
각 함수들의 처리 흐름도 작성 - 한장에 알고리즘 다 못그립니다. 그래서 각 함수별로 알고리즘을 따로 작성합니다.<br />
<br />
파일사양서 - 데이터를 저장할 데이터화일의 설계서와 모쥴화 시킬 소스화일들과 그안에 기재될 함수목록을 기술한 사양서입니다. 데이터 파일의 경우는 데이터 타입과 사이즈 화일명과 경로명까지 자세히 기술합니다.<br />
<br />
4. 코딩(구현)<br />
위의 3번까지 서류 작성이 완료됐다면 이제 부터는 3번을 토대로 코딩을 합니다. 단, 주의할 점은 실제로 자신이 설계한 설계도에 문제가 있어서 코딩을 수정할 경우 반듯이 코딩만 수정하는 것이 아니라 해당 서류도 변경 부분을 찾아서 수정하고, 변경날짜와 내용 변경자의 이름을 기입해야 합니다. 그리고 변경이력서라는 다른 서류가 있는데 여기에도 순서대로 변경사항을 자세히 기술해야 합니다.<br />
<br />
5. 테스트<br />
위의 4번까지 진행이 완료 됐다면 테스트를 진행합니다. 테스트 역시 두단계로 나뉘며 3. 상세설계에서 작성했던 함수사양서와 2. 기본설계에서 작성한 기능사양서를 토대로 단체시험항목과 종합시험항목 두가지로 먼저 서류를 작성후 그에 따라 하나씩 테스트를 진행해 나갑니다.<br />
<br />
단체시험 - 함수사양서를 토대로 진행하며 각 함수들이 설계한 대로 오류 없이 제대로 동작하는가를 시험합니다. 오류가 있어서서 수정 및 코드추가 할 경우는 역시나 변경이력서에 기술 및 해당서류에 반듯이 기술해야 합니다.<br />
<br />
종합시험 - 단체시험이 모두 완료 되었다면 기능사양서를 토대로 설계한 기능대로 프로그램이 제대로 동작하는가 예외처리에는 문제가 없는가 등 종합테스트가 됩니다.<br />
<br />
※ 서류 작성시 유의점<br />
각 양식마다 작성일 작성자 소속 변경일 변경자는 반듯이 기술해야 합니다. 스케쥴의 경우는 변경이 있을 경우 수정을 추가로 해야 합니다.<br />
<br />
위의 단계별로 작성해야만 하는 과제가 연수생을 위한 C언어 커리큘럼의 상급 문제입니다.<br />
<br />
현재 제가 하고 있는 단계는 코딩까지는 구현다했고 이제 시험항목 서류 작성후 시험을 해나가는것만 남았습니다. 코딩전까지 서류 작성하는데만 7일 걸렸습니다. 일본어로 서류 작성한다는게 만만치 않게 힘들고 일본어 엑셀이라서 그런지 눈에 익지 않아서 작성하는데 시간이 더 오래 걸렸습니다.<br />
<br />
그리고 예외 처리라던지 본인이 생각해서 사양서에 요구하는 이외의 기능을 실현해도 된다고 하길래 더블링크드리스트의 검색시간이 오래 걸린다는 단점을 보완하기 위해서 따로 주키인 사원번호와 해당 노드의 포인터 주소로 구성된 index 구조체를 만들어서 실현하기로 했습니다. 1000개까지의 데이터니까 굳이 binary search tree까지는 필요 없고 이정도 데이터면 배열로도 충분히 가능하다고 생각해서 인덱스를 동적배열을 활용해서 실현해봤습니다. 검색방법은 이분검색법을 사용하고, 정렬은 퀵소트를 이용했습니다. <br />
<br />
파일저장시에도 저장공간의 낭비를 막기 위해서 노드구조체의 데이터도 동적할당으로 저장하는 방식으로 구현했습니다. 자리수 오버체크라던지 숫자 문자 체크라던지 입력허용범위(숫자만 가능 문자만 가능)등의 여러가지 예외처리도 생각해서 실전처럼 구현했더니 작성한 서류양도 장난이 아니게 방대해 졌습니다. <br />
<br />
코딩만 하면 정말 금방인데.. 서류가 너무 많더군요. 일본은 이런 곳입니다. 한국은 &#039;빨리빨리&#039;라고 생각하지만 일본은 이렇게 원칙을 중시합니다. 이런 서류를 작성하는데도 7일이나 걸렸는데 현장에 나가면 더 많은 서류를 작성해야 합니다. 그때는, 시간싸움입니다. 프로그램 납기기한 못마추면 본인의 능력평가도가 저하됩니다. 고로 돈 많이 못 받습니다. 느리다고 일 안주니까요. 서류작성을 원활히 하기 위해서는 책상위 공부. 말하는 것도 중요하지만 이런 쓰기 능력에 대해서 많은 시간 공부도 해야합니다.<br />
<br />
상급문제는 솔직히 이과제만 완성하면 남은 하나의 과제는 간단한 문자코드를 변형(예를들어 파일에 저장되있는 한글코드를 불러와서 유니코드 아스키코드로 변환시켜서 각각 파일로 저장)하는 소스 작성만 남아 있기에 그다지 어렵지는 않습니다만, 다만 문제가 일본어 문자코드를 변형하는 것이라서 일본어 문자코드에 대한 설명을 봐야한다는 것이 어렵습니다. 물론 일본어로 된 설명입니다. <br />
<br />
일본에서 일하고 싶고 일본에서 성공하고 싶다면 일본어 열심히 해야 되는것 맞습니다. 하지만 전공공부도 전혀안된 상태에서는 취업이 안되니 두가지 병행해서 밸런스 있게 능력을 갖추지 않는다면 취업은 무리라고 생각합니다.<br />
<br />
그리고 전문용어에 대해서도 틈틈이 관심을 가지고 습득해야 할 겁니다. 회의중에 남들은 다 아는데 저만 모르면.. 쪽팔리는 일이죠. 저는 쪽팔리기 싫어서라도 웹에서 자주 검색해서 공부하고 있습니다. 위의 내용도 용어에 대해서 생소하시면 이해가 불가능 할겁니다. 그럴경우는 네이버지식인 형님을 이용해 주세요. 우리에겐.. 언제나 강력한 네이버지식인 형님이 계십니다. --;;<br />
<br />
그리고 꼭 명심하셔야 할 것 한가지! 일본은 무엇을 하던지 스케쥴을 중시합니다. 오늘 같은 경우도 스케쥴에 대해서 보고하지 않고 저희끼리 진행하다가 지적 받았습니다. 왜 스케쥴을 보고하지 않느냐.. 이런게 일본입니다. <br />
<br />
이상으로 길지만 꼭 읽어보시고 앞으로 도움이 되길 바라는 입장에서 지금까지 비록 연수이고 들은 이야기들이라서 미흡할지도 모르지만 나름대로 정리해서 적어봤습니다. <br />
<br />
성공합시다 --!!