작년 7월 이후 멈춰있던 Satellite Operator 개발 재개.
사실 작년부터 1년간 진행한 SI가 국자원 불타는 것으로 인해 불타버렸음(...정말 불탐)
회사 입장에서야 호재라지만, 당장 할 일이 없어져서 프리계약이었던 나로서는 좀 미묘(...)
이래저래 일을 쉬게 되어서 다시 개발 재개.
0. 1년만에 보니까 기억이 하나도 안 남
코드를 봐도 왜 이렇게 했더라? 일지를 봐도 뭔 소리지 싶은정도였음
짬짬이 개발을 진행한 것도 아니고 하루는 로딩하는데 다 쓴 것 같음.
가면 갈수록 기억력이 떨어진다더니 정말임.
게임 하던것도 세이브해놓으면 다시 로드했을 때 기억이 안 나는데 뭐 어쩔거.
암튼 개발을 너무 쉬었달까 기억이 안 나서 초반에 개고생하였음.
물론 지금도 이걸 개발하면서 이게 맞나 저게 맞나 왜 저렇게 했나 고민중임.
1. 문제는 역시 공통 프로세스 정의 쪽에 있었음.
Start -> Initialize -> Configuration -> Setup -> Work -> Program (process)
순으로 정의해 놓고 개발 중이었는데,
initialize 에서 Profile, Input, Setup 파일이 계속 꼬이는 문제가 발생. (물론 오래간만에 손을 대서 더 그런것 같기도 하고)
실제 전역 설정을 담당하는 Profile 부분은 독립적이어야 한다는 점을 간과했음
따라서 해당 부분을 Singleton으로 변경
그리고 과거에 미구현이었던 Input 및 Setup Generator 부분을 고려하여 다중입력 및 순차 실행, 다양한 위성에 대한 처리를 고려
Input의 구조를 잡다 보니 Input은 다시 Setup을 참조할 수 있도록 해야 함
(물론 없을 경우 Setup Generator가 동작해야 하지만 현재는 없으니)
그리고 다중 Input 및 다중 Setup의 경우처리 및 하위 호환성을 고려하였을 때, Input 이 없을 수도 있는 경우가 발생하고
여러 경우를 고민해 본 결과 Input/Setup이 각각 *[0~n] 개 있을 수 있다는 결론에 도달
이 부분을 적당히 퉁치고 넘어가고 나니 work부분에서 할 일이 없어지는걸(...)
각각의 프로세스 레벨은 Setup파일하고 Profile만 있으면 되거든(...)
2. AI 도구의 사용
작년에도 Copilot을 구독해 놓고는 있었는데, 실제 이게 뭐 의미가 있나 수준이었다면, 올해는 확실히 다르긴 하다.
사실 예전만큼 개발을 손으로 직접 할 필요가 없이 이런 저런 잡다한 부분은 AI한테 해줘 한마디면 다 해주긴 하드라
(...물론 조금 로직이 복잡해지면 할루시네이션이 생기긴 하드라)
마치 불평하지 않는 보조 개발자 하나 붙어있는 느낌?
물론 코드가 막 깔끔하거나 이쁘지는 않을 때도 있는데 그정도야 신입들 시켜도 매한가지인 문제니까
요새 들어서 느끼는 문제지만 잘 돌아가믄 큰 문제는 없는 거니까~
암튼 AI 발전이 생각보다 빨라서 놀랐다 정도. 그리고 생각보다 확실히 쓸만해짐.
표현력이 부족해서 더 좋은 감상은 쓸 수가 없네
3. 그 외 잡설
다시 0번과 연결되면서도 조금 근본적인 문제인데, 이걸 괜히 했나 싶긴 함.
실제 로직적인 부분이나 연산적인 부분을 수정하는 것이야 의미가 있지만 인터페이스(...)도 아니고,
그저 파일 입출력/설정 부분에서 개고생하는 느낌을 받아서(...)
에혀 모르겠다 하면서도 끝까지 일단 마무리는 지어보자 라는 느낌으로 하고는 있는데 확 의욕이 꺾인게 현실임
(물론 AI가 잘해주는 부분이 있지만 쓰면 쓸수록 조금 허탈하달까....)
얘가 작년에 내가 하던거 다 하는데 굳이 내가 이런거 만들어서 뭐하나 싶기도 한 수준임(...물론 시켜야 해주지만)
여튼 편해지려고 만든 물건이니 내가 좀 더 편해지면 좋겠는데, 사실 이걸 만든다고 팔 수 있는 물건도 아니고 애매하달까...
차라리 좀 독립적이고 새로운걸 만들어야 하나 고민중임. 고민고민