씽크윈텍(주) 채용연계형 장기현장실습
[장기현장실습] 씽크윈텍(주) 채용연계형 장기현장실습
기간 : 2021. 07. 01 ~ 2021. 12. 31
업무 : SW R&D, 납품, 유지보수
성과 : SW 대기업 납품 및 안정화, 우수 현장실습생 선발, 우수 현장실습 수상
SW 개발
소프트웨어 개발 및 지속적인 편의 기능 추가, 성능 향상을 위한 연구 진행
부품 조립 및 검수
프로그램을 이식할 하드웨어 조립 및 불량 검수 후 납품
성능 테스트
SW 기능 테스트 및 에이징 테스트(장기 가동 내구성 검증) 진행. 메모리 프로파일링을 통한 누수 점검 및 기능 정상 작동 점검
외근
SW 납품 후 유지보수 및 안정화를 위한 외근
업무 상세
● How+ Result
- 연구개발팀 사원으로 새로운 공장 라인(알파, 베타)에 투입될 프로그램 중 하나를 개발
- 대기업에 개발한 프로그램 납품 및 유지 보수(소프트웨어)
- 프로그램 가동에 필요한 기자재 설치 및 유지 보수(하드웨어)
- 3개 생산 라인(알파 2, 베타 1) 유지 보수 및 안정화
● 역할(연구개발팀 사원)
- 영상처리 기술을 활용하여 불량품을 인식하는 프로그램(미들웨어) 개발 및 납품
- 색상 검사, 불량 검사, 라벨 검사 등 3종류 검사 유형을 지원하며 검사 순서와 검사 여부 설정 가능
- 대기업에 납품 후 프로그램 유지 보수
- 기능 추가 및 지속적인 개선(각종 편의적 기능 추가 및 요청 사항 구현)
- 기업(클라이언트) 외근 : 기자재 준비 및 설치, 프로그램 준비 및 설치, 테스트 가동, 유지 보수, 전장 설계 등
- 각 부서 간, 타 협력 업체 간 소통 및 협업
● 역량
1) C#, C++, Android 간 소켓 통신(실시간 영상 통신 및 커맨드 송수신)
- 기존 생산 라인에 구축된 시스템이 C++이고 카메라 모듈이 Android를 사용하기 때문에 삼자 통신이 필요했음. 개발한 프로그램(C#)에서 영상을 실시간으로 전송받아 영상처리를 하기 위해서 서버-클라이언트를 적절하게 나누어 소켓 통신을 통해 커맨드와 이미지 송수신 시스템을 구축함
2) 침식, 팽창, 이진, Adaptive Threshold 및 blob 등 영상처리 기능 전반 구현(C# OpenCV)
3) ROI 기능 구현
- 카메라 시야각 전체가 검사 범위가 아니기 때문에 검사하는 제품의 특정 범위만을 지정할 수 있도록 ROI 기능이 필요했음
4) Calibration 구현(광각 렌즈 왜곡 보정)
- 생산 라인에서 카메라의 위치가 적절하게 높지 못해 시야각 안에 제품을 전부 담을 수 없음. 이를 해결하기 위해 광각 렌즈를 부착하여 시야각을 넓혔는데 왜곡이 심하게 생기는 단점이 있어 왜곡 보정 기능이 필요해짐
5) 메모리 관리(에이징 테스트 포함)
- 생산 라인에서 양산 체재에 대응할 수 있도록 장기간 연속 운용이 가능한 프로그램을 개발해야 했음. 잘못된 조작이나 기타 상황에 따른 방어 처리를 포함하여 메모리 누수 등의 문제가 발생하지 않도록 검사하고 메모리 사용량을 개선함(프로토타입에 비해 약 3배 개선)
6) 프로토콜에 따른 기능 분기
7) ini 외부 저장 구현 및 활용
- 생산 라인에서 상황에 따라 가변적으로 설정을 바꾸어야 하는 경우가 많았기 때문에 ini를 통해 설정값을 제어할 수 있도록 구현함
8) 텍스트 로그 및 이미지(증거, 분석용) 기록
- 특정 제품의 검사 결과가 문제가 있었을 경우 이를 확인하기 위한 증거가 필요함. 영상처리를 통한 검사이기 때문에 단순 텍스트 로그뿐만이 아닌 이미지도 기록할 수 있도록 구현
9) 유기적인 프로그램 연동 구현 및 테스트
10) 단위, 시퀀스, 에이징 테스트 등을 통한 QA(예외 처리 및 방어)
- 생산 라인에서 발생할 수 있는 오류를 최대한 사전에 대처할 수 있도록 테스트를 거침. 의도하지 않은 동작에 어떤 에러가 발생하는지, 연결이 되지 않은 상태에서의 조작, 장시간 운용 후 기능의 처리 시간에 변동이 있는지 등을 검사하며 개선함
11) 파일 입출력(영상처리 이미지 기록, ini 입출력, 파일 주기적 삭제, 일자별 분류 등)
- 기록만 해서는 용량이 감당되지 않으므로 주기별로 파일과 폴더를 삭제하고 일자별로 폴더를 생성하여 관리할 수 있도록 편의적인 기능을 고려함. 삼성에서 바란 것은 사람의 수동 조작을 최소화한 자동화 공정이었으므로 최대한 사람이 관리하지 않아도 장기간 운용이 가능하도록 기능을 고려하여 구현함
12) 레지스트리 제어
- 검사 존에서 동작하는 프로그램은 다수인데 해당 프로그램들이 모두 공통으로 다루어야 하는 데이터(ex. 제품 정보)가 있음. 해당 정보들을 소켓 통신으로 매번 주고받기에는 비효율적이며 검사 하나당 제한 시간이 있으므로 보다 시간을 절약하고자 레지스트리 제어 기능을 추가함. 레지스트리에 제품 정보를 쓰면 해당 정보가 필요한 모든 프로그램이 접근하여 읽어오는 방식으로 구현
13) 프로그램 유지 보수
- 상시 생산 라인에서 대기하며 발생하는 에러 상황을 대처하고 기록하여 수정함
14) 전장 설계
15) 고객사 및 협력 업체 간 소통
16) 설계, 설치, CS팀 등 타 부서 간 협업
Subscribe to An Sung-Hyun's Portfolio
Get the latest posts delivered right to your inbox