진공에 대해 알려주마.

코딩 본문

비정기 피엠

코딩

하이백 2022. 12. 9. 14:37

이제 초등학교에서도 코딩을 배운다고 한다. 코딩이 목적이 아니라 수단이 된 것이다. 요즘은 누구나 쉽게 코딩에 접할 수 있고 목적을 구현하는데  별 어려움이 없어졌다.

학교 다니던 중에 Windows NT를 접하게 되었다. 애플2 호환 PC의 BASIC을 시작으로 콘솔 base의 UNIX 시스템만 사용했던 나에게 Windows NT는 신세계였다. NT를 PC에 설치해 보고자 내 PC의 HDD를 업그레이드하고 친구의 RAM을 빌려 윈도우 NT를 설치하고자 하였으나 결국 실패하였다.

한 번에 설치될 리 없었고 여러번 시도해 보았지만 성공하지 못했다. 오류가 발생하면 원인 찾지 못하고 헤매다 다시 설치해 보아도 결과는 비슷했다. 하드웨어의 성능도 딸리고 경험도 부족하고 특히 설치 중 발생하는 메시지의 정확한 의미를 몰라 해석하는데 어려움이 있었다.

나중에 업계에 입문한 후에는 하루에 수십 번을 설치하기도 하였다. 그때의 트라우마인지 OS 설치 중 조금만 이상이 보여도 format을 진행 후 처음부터 다시 설치하여 에러 없이 완전한 경우에만 출하를 진행하였다. 서드파티(Third party) 하드웨어 잇슈로 많은 고생을 하였고 블루스크린(Blue Screen Of Death) 없이 한 번에 설치되는 경우는 없었다. 조금이라도 찜찜하다 싶으면 다시 설치하고 이미지 카피는 불안하여 사용치 않고 일일이 손으로 설치하였다.

 


 

이제는 고성능 PC가 보급되고 윈도우가 모두 자동으로 설치해 준다. OS가 들어있는 USB를 PC에 꽂고 전원만 켜면 알아서 설치해 준다. 이제는 사용만 하면 된다.

그 옛날 IBM이 꿈꾸던 Hardware 세상이 꿈과는 반대로 software가 지배하는 세상이 되었다. 이제 코딩만 잘하면 되는 세상이 되었다.

Peek, poke로 시작해서 기계어 공부하고 어셈블리어도 배우고 대학에서 UNIX Base의 FORTRAN( int n이 여기서 왔음 ), COBOL도 배우고 UNIX C를 조금씩 배웠으며 이후 C, C++, C#을 접하였다. 그리고 중간에 turbo-pascal로 한참 배운 때가 있었는데 차후 C#을 공부할 때 많은 도움이 되었다. 그리고 당시 말로만 듣던 인공지능 언어 등등, 많은 언어를 공부했지만 입문만 하고...

많이 보았던 기계어/어셈블리어 (이미지출처 en.wikipedia.org)

 

1990년대 후반께 이 업계에 입문하여 처음으로 접한 설비가 반도체용 식각 설비였다. 그것도 국내 최초 양산 설비라는...

이 설비는 MS-DOS를 기반으로 하여 ANSI-C를 이용하여 scheduling을 하고 공정 챔버는 UNIX Base의 C를 연결하여 설비 제어를 하였다. 이때 가장 큰 문제가 이종 OS 간의 통신 문제였다. EtherNet으로 연결하였으나 한번 연결이 끊기면 재 접속에 상당한 애를 먹었다. 지금이야 코딩 몇 줄로 설비 간 통신이 자유로우나 당시는 너무 어려운 일이었다. 

요즘 설비 제어는 C++ 이 대세를 이룬다. 아직도 Visual Studio 6.0을 사용하는 설비가 많다. 최근에는 C#도 많이 사용되며 다양한 언어가 시도되고 있다. 설비 제어는 C++로 하고 화면은 C#으로 하여 각각의 언어의 강점을 최대한 활용하여 사용한다. 

 


 

코딩은 이제 초등학생도 하는 세상이 되었다.  코딩은 누구나 하지만 어떻게 하는지는 사람마다 다르다. 또한 설비마다 제각각이다. 개발자의 스타일을 그대로 코드에 묻어나다 보니 남의 코드를 수정하느니 내가 다시 만들지라는 말도 어렵지 않게 한다. 

반도체 설비는 해외에서 시작된 영역이라 그들의 스타일을 많이 따르게 되었다. 그래서 스케줄러를 중시하고 공학을 기반으로 계층구조를 만들고 어쩌고 저쩌고 하였다. 공학을 기반으로 설비를 제어를 하였다.

반면 디스플레이가 근본은 일본 디스플레이 산업이지만 국내에 들여와 우리 분위기로 바뀌면서 자생한듯한 환경을 가지고 있다. 특히 PLC를 기반으로 성장하여 나름 특유의 코딩 스타일이 있다. 처음 검사기(AOI)를 접하고 프로그램을 수정할 때 이 구조를 파악하는데 많은 어려움이 있었다. 특히 검사기의 경우 한대의 설비에서 발전한 듯한 코딩 스타일을 가지고 있다. 한대의 설비만 이해하면 나머지 설비는 거의 유사한 형태를 가진다. 그 베이스는 PLC인 듯하다.

 


 

반도체/디스플레이 현장은 완전 자동화 무인 시스템으로 운영된다. 자동 운전중 문제가 발생하여 운전이 불가능한 상태가 되면 알람(ALARM)을 발생시켜 유지 보수를 위한 관리자가 출동하게 된다. 여기에 알람이 얼마 만에(시간) 발생하는지 동일 알람인지 그리고 알람이 발생 후 얼마 만에(시간) 클리어 되었는지를 관리하게 된다. 이렇게 관리된 시간표로 관리자를 불러 지연된 시간을 따져 묻게 되는데 ...

위에서도 이야기 하였지만 반도체 생산 설비는 주로 해외에서 들여온 것으로 상당히 체계적이고 시스템화 되있다. 개발 인프라도 상당히 잘되어 있고 생각보다 많이 사람이 개발에 참여하고 있었다. 반도체 입문 초기 국내에 개발 인프라가 없다 보니 해외(주로 미국 반도체 설비 원조)에서 그 구조를 가져오다 보니 다양한 환경을 접할 수 있었다. 또한 개발환경이 진화할수록 더 좋은 환경이 제공되었다. 

설비마다 코딩 스타일이 다르다. 코딩 스타일이 다른다기 보다는 설비 메이커마다 Software 부서가 있어 여기서 모든 제어 프로그램의 구조와 화면등을 구성한다고 한다. 그렇기 때문에 설비마다 특징이 다르고 장단점을 가진다.

AMT는 윈도우 시대가 한참인 때에도 MS-DOS를 사용하여 설비를 제어하였다. 업계는 코딩의 개념보다는 안정성을 기반으로 한 제어를 하는 것을 우선시하게 된다. 

 


 

이야기가  산으로 갔다. 처음에 이야기했듯 코딩은 이제 수단이 되었다. 자기의 실무를 완성하기 위하여 각종 언어를 이용하여 코딩을 하고 이의 결과를 다시 실무에 사용하게 되었다. 전처럼 한 개의 언어를 귀신같이 사용한다는 것은 별 의미가 없어진 듯하다. 

필요한 기능을 위하여 거기에 특화된 언어를 사용하면 된다. 결국 내 업무를 가장 잘 이해하는 사람은 바로 나. 내가 필요한 기능을 내가 코딩하여 사용하면 된다.

가장 중요한 것은 무엇을 해야 하는가 이다. 무엇을 어떻게 해야 할지 알아야 코딩이 필요한 것이다. 자신의 업무를 완벽하게 이해하고 어떻게 해야 하는지 알면 코딩은 훨씬 자연스러워질 것이다.

 

'비정기 피엠' 카테고리의 다른 글

드라이버  (0) 2023.07.25
CTC, TMC, PMC 그리고 ...  (0) 2023.05.24
필요할땐 안보이는 그거.  (0) 2022.10.10
C, C++ Operator "=+"  (0) 2022.04.20
RS-232 to TTL  (0) 2022.02.09
Comments