hyongok2 / roadmap

학습의 모든 흔적을 2023년 5월 13일부터 이곳에 남기고자 함.
2 stars 0 forks source link

주요 기술을 활용한 프로젝트 실행 계획 수립 #18

Open hyongok2 opened 8 months ago

hyongok2 commented 8 months ago
  1. 프로그래밍 언어

    • C#
    • Python
    • 각 언어의 필수 Library 활용 방법 숙지
  2. 좋은 디자인

    • C# Convention
    • Python Convention
    • Design Pattern
    • Clean Code
  3. Database 활용

    • SQL
    • NoSQL : MongoDB
  4. 통신 / Interface 활용

    • gRPC
    • Message Broker(카프카/RabbitMQ/H101)
    • WCF
    • IPC (Named Pipe / Shared memory / Socket / Message Queue)
    • REST API / Graph QL
    • C# - Python Interface
    • Mass Transit 활용
  5. UI 설계

    • WPF
    • WInform
  6. 핵심 기술

    • Machine Learning
    • Computer Vision
  7. 코드 관리

    • Git / Mercury / SVN

위의 기술을 가지고 Project를 구상해 보자!! 프로젝트를 수행하면서 학습을 하도록 하자. 그래야 기억에 남고, 나의 것이 될 수 있다.

모든 것을 다 잘 할수는 없다. 난 설비 SW 엔지니어로써 필요한 기술을 습득하는데, 주력해 보자!

hyongok2 commented 8 months ago

반도체/디스플레이 설비 분야에서 SW 엔지니어로 성장하고자 한다면 다음과 같은 프로젝트 주제가 유용할 수 있습니다. 이러한 프로젝트들은 기존 지식과 C# 능력을 활용하며, Python 및 Machine Learning을 통해 역량을 더욱 향상시킬 수 있습니다:

데이터 수집 및 분석 도구 개발: 설비에서 생성되는 데이터를 수집하고 분석하는 도구를 개발하여 성능 모니터링 및 예측을 향상시킬 수 있습니다. Python을 사용하여 데이터 처리 및 분석을 수행하고, C#로 사용자 친화적인 시각화 도구를 개발하세요.

자동화 및 제어 시스템 개발: 설비 제어 및 자동화 시스템을 향상시켜 생산 공정을 최적화하세요. C#을 사용하여 사용자 인터페이스 및 제어 로직을 개발하고, Python 및 Machine Learning을 통해 실시간 상태 모니터링 및 결함 감지를 구현하세요.

고장 진단 및 예방 프로젝트: Machine Learning을 활용하여 설비 고장을 예측하고 진단하는 모델을 개발하세요. 이를 통해 유지보수 일정을 최적화하고 생산 중단을 줄일 수 있습니다.

데이터베이스 및 분석 플랫폼 구축: 설비 데이터를 효과적으로 저장하고 검색할 수 있는 데이터베이스 시스템을 개발하고, 분석을 위한 통계 및 머신 러닝 모델을 통합하세요. MongoDB와 SQL을 활용하여 데이터베이스를 설계하고 관리하세요.

시뮬레이션 및 모델링 프로젝트: 설비 작동 시뮬레이션 모델을 개발하여 생산 공정을 최적화하고 문제 해결에 도움을 주는 시스템을 구축하세요. Python을 사용하여 모델링 및 시뮬레이션을 수행하세요.

이러한 프로젝트들은 설비 엔지니어링 분야에서 SW 역량을 강화하고, 기계 학습과 데이터 분석 능력을 향상시키는 데 도움이 될 것입니다. 또한, 실제 설비 및 생산 공정과 밀접하게 관련되어 있으므로 직무 경험을 향상시키는 데도 도움이 될 것입니다.

hyongok2 commented 8 months ago

어떤 것을 만들 수 있을까.. 고민해 보자. 설비에서 실제로 활용될 수 있다면 좋을 것 같다. 내 스스로 솔루션을 개발해서 판매할 수 도 있을지 모른다. 프로젝트는 여러가지가 될 수 있다. 각각의 프로젝트는 수행에 필요한 기술들과 학습이 필요한 기술을 잘 매칭해 보자. 프로젝트가 우선이고, 그것을 위한 학습이 그 다음이다.

프로젝트는 수행하면서, Issue 가 생성될 것이고, 관리해 나가면 될 것 같다. 프로젝트와 학습의 비중은 7:3 정도로 하자. 프로젝트가 우선이다. 프로젝트를 하면서 배우는 부분은 프로젝트 비중에 포함한다. 학습은 프로젝트와 무관하게 학습하는 부분이다. 예를 들면..? python 언어 동영상 강의 수강 등..

hyongok2 commented 8 months ago

좋은 코드를 찾아 보자. 깃허브에서.. C#과 파이썬 프로젝트를..

hyongok2 commented 8 months ago
  1. 간단한 Python project를 실행 파일로 만든다.
  2. Python과 C# 인터페이스를 하는 방법을 고민하고 구현해 본다. gRPC로 구현해 보자.
  3. 그리고 나면, 간단한 머신러닝 기능을 구현하고..
  4. UI는 WPF로 구현하여 기능을 활용해 보자.
  5. 일단 간단한 기본 기능만 동작하는 프로그램을 만들어 보자.

    • C# UI 프로그램으로 수기로 입력한 숫자를 파이썬 서버로 전송해서 머신 러닝 결과를 통해 숫자를 인식해서 결정하고 리턴해 주는 프로그램을 만들어 보자.
    • 2023-11-28 기본 기능 완료 -> 프로그램 완성도를 올리고, UI도 꾸며 보자. 그리고 ML 알고리즘도 다양하게 사용해서
    • 어떤 경우에 높은 확률로 문제를 해결하는지도 Test 해 보도록 하자.
hyongok2 commented 5 months ago

장비 SW 엔지니어에게 필요한 역량은 어떤 것들이 있을까?

  1. 장비에 대한 이해와 경험
    • LG에서 장비에 대한 경험 : 포토 장비 관리 / 순간정전 등 활동
    • 탑에서 설비 개발 및 셋업 경험 : 디스펜서 / 검사 설비
    • 세메스에서 반도체 포토 설비에 대한 유지 관리 경험
    • 현장 경험 많음. 현장 관리 경험. 셋업 리더 경험.
    • 배선 작업 / 기구 작업 경험 많음.(불가피한 상황)
  2. SW에 대한 이해와 스킬
    • C#에 대한 높은 이해도 2018년 ~ 현재..
    • C++ 업무 경험(탑, 세메스)
    • Git등 SW 유지관리 경험 (세메스, Micube에서는 SVN / Git 관리 / 개인적으로 Github 저장소 관리)
    • us 단위의 Performance를 고려한 설계 및 개선(세메스에서는 Real Time 설계 경험, 엠아이큐브에서는 us 단위 동작 분석 개선)
    • SW 품질 관리에 대한 중요성 인식 : 가독성 / 확장성 -> 세메스/Micube를 거치며 품질 관리에 대한 중요성 인식 및 적극 개선 - Clean Code 이해도 높음 / refactoring 경험 많음 / 디자인 패턴에 대한 이해도 높음 / 좋은 아키텍쳐에 대한 관심 많음.
    • 윈도우 Base 시스템 설계 가능(신규 플랫폼 설계 가능)
    • 다양한 인터페이스(통신) 경험 - 소켓 / gRPC / WCF / IPC(shared memory) / Message Broker(H101 / rabbitMQ ) 등등등
    • DB 활용 가능(Micube Oracle DB 사용 / 개인적으로 MS SQL MySQL 및 MongoDB도 활용 유)
    • 개인적으로 학습하고 있는 부분 : Python / 머신러닝 딥러닝/ OpenCV / Architecture
  3. 일하는 방법에 대한 이해
    • 업무 정리 / 업무 계획 수립 / 업무 관리 능력 우수 - LG에서의 설비 관리 경험이 큰 도움이 됨.
    • 업무 소통 능력 우수 - 문제에 대한 이해가 빠르며 이를 통한 업무 소통 능력 우수함
    • 엑셀 활용 능력 우수 - LG에서 입사 후 꾸준히 학습한 덕에 어느 곳에서나 엑셀은 최상위권 실력을 갖추었음.
    • 문제 해결 능력 우수 (정리 분석 소통을 통한 효과적이며 빠른 문제 해결)
hyongok2 commented 5 months ago

C# 초보, 한단계 성장을 위한 학습 순서! (아래의 내용을 좀 더 교육 자료 수준으로 발전시켜 보자!!) (영상? / 블로그?)

C# 프로젝트 좋은 폴더 구조! C# Convention을 따르자! 가독성 좋은 프로그램을 만들자! Depth는 깊지 않게! early return. 함수 추출 등 기본적인 Clean code 기법을 따르자! 이름을 축약하지 말고 그 자체로 이해가 가능하도록 하자! Extension을 활용하면 좀 더 가독성을 높힐 수 있다. Linq를 잘쓰면 코드 읽기가 쉬워진다! 두가지만 잘써도 코드의 품질이 올라간다! List와 Dictionary 그리고 enum 성능 좋은 프로그램을 만들자! 모든 부분에서 완벽한 성능을 필요로 하지 않는다. 성능 개선이 필요한 부분에 대한 파악/판단/이해가 요구된다. 먼저 성능을 측정할 수 있어야 한다. Stopwatch class / Benchmark / Logging 성능 개선은 알고리즘 최적화, 비동기/다중쓰래드 처리, 적절한 자료구조의 활용 등의 방법을 이용할 수 있다. 더 나은 개발자가 되기 위해 객체 지향 프로그래밍을 배워보자. 인터페이스와 추상클래스를 이해하자! 디자인 패턴을 학습하자. Depency Injection 이해. 데이터베이스와 ORM을 활용해 보자. Git을 사용하자! 리팩토링은 꾸준히! Architure를 배워보자. Micro Service / Clean Architure..