자리이동 연습
AI를 활용하여 자리이동을 하는 경우.
- 데이터 다루기 --> 최종 목적, 활용 가능한 형태 만들기
- 데이터 처리: 문제 해결을 의미하기도 함, ambigious
데이터 취득하기 - 데이터를 사용할 수 있는 형태로 만들기
빅데이터 처리 프로세스에서는 이것을 인형 눈붙이기과정이라고 한다.
원하는 형태로 만들기
- LLM에서 데이터 처리?
텍스트로 만들어라.
조금 더 나가면, 컴퓨터가 처리하는 자료형을 염두에 두라.
데이터 처리라고도 하는데, 처리를 통해서, 문제를 해결하므로, 데이터 처리라고도 볼 수 있다. 그러나, 이제 부터는 엄밀하게 구분하자.
알고리즘을 적용한다.
- 머신러닝 : 데이터를 보고 처리할 수 있는 방법을 생각해서 만들어 준다.
에를 들어, 자리 이동의 경우, 이동이 많은 경우는 그룹으로 나눈다. 세부 조건을 준다(처리지침) 그리고, 어떤 알고리즘(방법)을 쓸 것인지 알려준다.
- 딥러닝 : 조건과 데이터만 주고 스스로 선택해서 작업하게 한다. 자리 이동에서는 스스로 자료형을 만들어서 처리하는 방법을 선택하였다. (신기...)
머신/딥러닝 구분? 무의미 하다. 답을 얻기 위한 것이지 방법에 대한 적합성을 따지는 것이 문제가 아니기 때문이다.
데이터 처리 기업, 인형 눈붙이기 노가다 작업을 AI스럽게 한다. 예를 들어, 우버... 차량 배치... 노가다이다. AI를 통해 스무스하게 처리한다.
알고리즘을 가지고 해결하는 방식
약간의 데이터 다루는 부분 포함
Gemini, copilot의 경우? 아직은 애다.... 시키면 시키는 대로만 한다. 약간 기계식, 오픈AI와 Claude의 경우, 왜? 이런 질문을 하지 하고, 숨어 있는 의도를 파악한다. explicit / implicit
두 개의 파트로 구성된다. 1. 데이터를 원하는 자료형으로 만드는 것, 자료형 선정 2. 알고리즘 적용하기, 문제 풀기
그림 추가 - 자리를 이동한다.
implicit 조건은 무엇인가?
- 짧은 시간에 - 이동 최소화 - 충돌나지 말아야 한다. 먼저 자리 이동해야 하는 사람을 찾지 못한다.
테이블1
[
{ "자리번호": 1, "이름": "임일형" },
{ "자리번호": 2, "이름": "손응석" },
{ "자리번호": 3, "이름": "정지윤" },
{ "자리번호": 4, "이름": "최형석" },
{ "자리번호": 5, "이름": "김영범" },
{ "자리번호": 6, "이름": "공석" },
{ "자리번호": 7, "이름": "박아련" },
{ "자리번호": 8, "이름": "마진" },
{ "자리번호": 9, "이름": "유지원" },
{ "자리번호": 10, "이름": "윤광훈" },
{ "자리번호": 11, "이름": "공석" },
{ "자리번호": 12, "이름": "김보미" },
{ "자리번호": 13, "이름": "윤민호" },
{ "자리번호": 14, "이름": "이지환" },
{ "자리번호": 15, "이름": "정우철" },
{ "자리번호": 16, "이름": "공석" },
{ "자리번호": 17, "이름": "공석" },
{ "자리번호": 18, "이름": "송민철" },
{ "자리번호": 19, "이름": "김민채" },
{ "자리번호": 20, "이름": "권기민" }
]
다음은 테이블2이다.
테이블2
[
{ "자리번호": 1, "이름": "임일형" },
{ "자리번호": 2, "이름": "공석" },
{ "자리번호": 3, "이름": "정우철" },
{ "자리번호": 4, "이름": "유지원" },
{ "자리번호": 5, "이름": "윤광훈" },
{ "자리번호": 6, "이름": "공석" },
{ "자리번호": 7, "이름": "김보미" },
{ "자리번호": 8, "이름": "김민채" },
{ "자리번호": 9, "이름": "윤민호" },
{ "자리번호": 10, "이름": "이지환" },
{ "자리번호": 11, "이름": "공석" },
{ "자리번호": 12, "이름": "박아현" },
{ "자리번호": 13, "이름": "송민철" },
{ "자리번호": 14, "이름": "권기민" },
{ "자리번호": 15, "이름": "최형석" },
{ "자리번호": 16, "이름": "공석" },
{ "자리번호": 17, "이름": "손용석" },
{ "자리번호": 18, "이름": "정지윤" },
{ "자리번호": 19, "이름": "마진" },
{ "자리번호": 20, "이름": "김영범" }
]
결론: 자료는 텍스트로 완성
- 처리 방법에서 생각할 문제 2가지
- 통으로 처리하기 - 말이 길어진다. 자꾸 수정한다. 대화한다, +/- add 작업을 계속한다. (결론, 한번에 다하려면 길다.)
- 잘라서 처리하기 - subroutine이다.
- 잘라서 처리하기
잘라서 처리하는 방법은 조금 컴퓨터 루틴에 대한 이해가 필요하다. 마치 PAD
main{
call #자리확인
call #자리이동
call #검사조건
call #결론
}
--------------------------------------
자리 이동을 계획한다.
#자리확인
테이블 1과 같은 자료형을 만들고, "이동테이블"이라고 이름 붙인다.
#자리이동
테이블1에서 자리번호에 해당하는 사람을 하나씩 이동테이블에 기록한다.
최종 이동은 테이블2로 이동하는 것이다.
#검사조건
테이블2를 로 이동테이블을 하나씩 채워넣을 때, 테이블1을 참조하여, 자리가 비어있지 않으면, 이동할 수 없다. 최종적으로 이동테이블이 테이블2와 같을 때, 완료된 것이다. 연쇄이동 방식을 사용한다.
각 개인이 이동 수가 가장 적은 것이 결론이다. 연쇄이동 방식으로 1사람만 시작하는 것이 아닌 여러사람이 시작하는 경우도 제시한다.
#결론
최종 이동테이블을 표시하고, 순번, 자리번호, 이름, 이동횟수 순으로 표로 만든다.
이동회수가 가장 적게 선택한 이유와 다른 추천 방법을 나타낸다.
- GPTs 사용
클로드의 Project와 동일하다
특징
- subroutine으로 최소 기능적인 것만 기록한다.
- 다른 GPTs(project)를 호출 가능하다.
- 결과를 받아서 처리할 수 있다.
- 참고 프로그램이 형식
PAD의 flow를 생각할 것.
PAD의 flow와 같은 GPTs / Project이다.
제미나이
- OCR에러 있음, 특히 긴 것, 신기한 것 제미나이와 copilot OCR동일한 오류 발생 : 같은 엔진?
- 시키는 것만 한다 - 매우 explicit 하다
- 답답하다
Copilot
- 시키는 것 이외, 자신들 MS상품을 광고한다.
- AI 답변 보다는 Search를 통한 답변이 AI 답변과 유사한 것에 더 가중치를 주고 답한다. (책임 회피)
- MS 솔루션에 관련된 것은 알려진 것은 정확하지만, 의외로 유연성이 떨어져서 claude의 답이 더 창의적일 때도 있다.
ChatGPT
- 버전이 많고 특징이 달라서, 모두 확인 해봐야하는 번거로움
- 멀티모달로 데이터를 데이터로 인식하는 부분을 강조하는 듯
- 모든 AI회사들의 바로미터
Claude
- chatGPT와 같은 뿌리
- 활용에 초점을 더 두고 있음 (chatGPT는 데이터로 인식하는데 중점인데 반해 claude는 실제 활용에 초점을 둠)
- Virtual Machine 기술, MCP(미친 프로토콜)등 획기적 접근 발표
- 문제 해결의 기준을 수학적, 컴퓨터 프로그래밍 적인 방법으로 항상 접근 - 그래서 프로그래밍에서 claude를 AI 생성 프로그램 참조로 사용: cursor