안녕하세요 토목 엔지니어 돌중입니다
이번 영상에서는 얼마 전에 했었던 광주대표도서관 붕괴 사고의 급여물을
AI를 통해서 모델링하고 해석하는 방법을 간단하게 소개해 드리고자 합니다
제가 이 구조물을 완벽하게 해석하는 건 아니고요
AI를 통해서 하는 방법 정도만 되는지 테스트를 해 본 거고요
우선 우리가 이런 구조물을 해석하려면
요즘에는 구조해석 프로그램이 필요한데
요즘에 우리나라에서 가장 많이 쓰는 구조해석 프로그램은
M으로 시작하는 모 프로그램이죠
이거는 상용 소프트웨어이기 때문에
제가 이번에 테스트 해보려는 것은
오픈소스 구조해석 프로그램으로 해석을 해 보는데
오픈소스란 얘기는 코드란 얘기죠 코드
그런데 요즘에 AI가 뭘 제일 잘하죠
LLM이 제일 잘하는 게 바로 코딩입니다
LLM 회사 중에 상당수 회사가 코딩 능력을 끌어 올리기 위해서 노력을 하고 있습니다.
LLM 에 구조 해석을 시키는데
LLM 이 코딩을 통해서 구조 해석 모델링을 만들면 가장 완벽한 것이 되겠죠.
물론 구조 해석 프로그램을 사용하는 방법은 GUI 방법이 있습니다.
MO 프로그램은 GUI 방식입니다.
하지만 옛날에는 윈도우가 나오기 전에
도스 시절부터 계속 있었던 방법은 뭐냐면
텍스트로 인풋을 하는 게 있죠
텍스트 인풋을 보면
예를 들어서 절점이다
그럼 node 1번에 x좌표는 0
node 2번에 x좌표는 10, y좌표는 0
이런 식으로 텍스트로 우리가 직접 인풋을 했었어요
그런데 시대가 변하면서 윈도우 시대가 되면서
GUI, 그래피컬하게 마우스를 가지고 작업을 하는 패턴으로 바뀐 거죠.
그런데 이 GUI 시대가 거의 한 30년 정도 됐죠.
그런데 LLM이 나오면서 제가 보기에는 다시 텍스트의 시대가 왔다.
왜냐하면 LLM이 GUI를 컨트롤하기에는 너무 자원이 많이 필요해요.
그러다 보니까 이 텍스트를 컨트롤하는 게 훨씬 자원이 적게 필요하고
속도도 빠르고 이해하기가 쉽죠
그러다 보니까 텍트 인풋 시대가 다시 오고 있다
라는 얘기입니다
물론 그래서 이 m 모식이라는 회사에서도
mct라는 포맷을 지원합니다
이런 식으로 되어 있어요
그래서 이거를
lllm한테 입력 매뉴얼 같은 거를 주고
아마 어떻게 어떻게 만들어줘 하면 잘 만들 겁니다
아무튼 요건 텍스트 인풋이고요
제가 오늘 테스트 해볼 건 바로
오픈소스 구조해석 프로그램입니다
오픈소스 구조해석 프로그램을 써서
코딩을 통해서 구조해석을 한다.
이거를 구현해 드리도록 하겠습니다.
그래서 내가 테스트 어떻게 해보려면
일단 GitHub에 들어가서
오픈소스 구조해석 프로그램을 찾아봐야겠죠.
오픈소스 구조해석 프로그램을 찾은 다음에
Copilot이라는 건 MS에서 제공하는 LLM 서비스잖아요.
GitHub도 MS에서 가지고 있는 겁니다.
그래서 두 개가 아주 궁합이 잘 맞는 거죠.
그래서 Copilot이라는
바이브 코딩 에이전트를 통해서
제가 github에서 찾은 오픈소스 구조에서 프로그램을 코딩으로 코딩을 해서 해석을 해라
이런 구조문을 모델링하고 해석을 해라
이거를 말로 시켜서 구문을 해 보려고 하는 겁니다
자 일단은 구조에서 프로그램을 찾아봐야겠죠
github.com 여기에 들어오면 이렇게 서치를 할 수가 있거든요
structural analysis로 찾아보면 2.9k 2900개의 result가 있다는 거예요
엄청 많죠
그런데 자세히 읽어보면 우리가 알고 있는 구조에서 프로그램도 있고
그렇지 않은 것도 있습니다
아무튼 여기 보면 저는 이걸 선택했거든요
이게 별 좋아요가 429개고
업데이트가 11일 전에 업데이트가 된 거죠
이 업데이트 날짜를 보면 얼마나 활발하게 활동을 하고 있나
오픈소스니까 기여자들이 있겠죠
기여자들이 얼마나 활발하게 활동하고 있나 이걸 볼 수가 있고
이 별을 보면 얼마나 인기가 있나 이런 걸 알 수가 있는데
아무튼 이 프로그램은 2D Structural Analysis in Python이라는 얘기죠
프로그래밍이 어느 중에 하나죠 파이썬
자 그래서 여기 들어가 보면 이렇게 돼 있습니다
GitHub라는 서비스는 내가 만든 코드를
뭐 이렇게 이 공간에다 올려놓을 수 있는 서비스거든요
뭐 버전 관리도 해주고 뭐 여러 가지 장점이 있는 서비스죠
아무튼 이 사람이겠죠
rich46
아무튼 이 사람이 여기다가 이렇게 자기가 구조해서 프로그램을
만들어서 올린 겁니다
그래서 여기 들어가 보면
ana struct to d frame and truss
install 방법이 나오고
install은 pip install 이렇게 하면 된다
그 다음에 중요한 게 여기 있죠
documentation 이게 이제 매뉴얼 같은 거죠
그 다음에 이런 기능들이 있다 라고 소개를 하고 있어요
truss beam moment lines bmd
그 다음에 actual force diagram
spare force displacement
hinged support fixed support
이런 기능들이 있다 라고 소개를 하고 있는 겁니다
그래서 예제 코드는 이런 코드를 입력하면
이런 해석 결과를 볼 수가 있다
플러스죠
플러스에 지점이 4군데가 있고
아마도 하중 표시인 것 같죠 하중
변이
그 다음에 얘는 뭘까요
모멘트도
그 다음에 이런 예제를 돌리면
이렇게 라멘
한쪽은 fix
한쪽은 회전이 풀려 있는
아, 스핑이 있는
이런 라멘의 하중
수평력이 아마 있는 것 같고
분포가 중인 것 같죠
이런 해석 예제를 보여주고 있죠
아무튼 내가 파이썬을 할 줄 알면
내 컴퓨터에 설치해서
이런 코딩으로
노드번호와 부재연결
지점조건 하중
단면개수 이런걸 입력하고 해석을 할 수 있다는 얘기에요
이거는 지금 아까 얘기한 mct나
이런 데이터파일 포맷이 아니라
그냥 코딩이에요
여기 보면은
모델을 이렇게 정의합니다
모델을 정의하고 여기다가
element grid를 더하고
support spring을 더하고
더한다는게 추가한다는 얘기죠
cross element를 추가하고
뭐 이런 식으로
함수들을 다 실행시키면
모델이 구성되는 거죠
show structure
solve 해석하는 거겠죠
그 다음에 show displacement
show bending moment
뭐 이런 식으로
함수들을 호출해서
내가 원하는 설정이나 해석을 할 수가 있는 거죠
그래서 이거를
매뉴얼을 보면
이렇게 돼 있습니다
인덱스 모듈 인덱스
서치 페이지 이렇게 하고
쭉 있어요
쭉 있는데
목차를 보면
설치방법
그 다음에 getting start
아주 간단한 예제 같은 게 있겠죠
그 다음에 elements 가 있고
support, road, floating, calculation
이렇게 쭉 있어요
음악 구조를 하시는 분들이라
학부 과정에서 요즘에는 해석 프로그램도 배우니까
그런 분들 대충 이게 어떤 내용인지 아실 거예요
이점플까지 이렇게 있는데
자 제가 지금 해보려는 거는
내가 이걸로 다 공부해서
하나하나 모델링을 하는게 아니라
물론 아까 여기 나와 있는 것처럼
코딩을 할 줄 알면은 복잡하지 않습니다
그냥 뭐 노드 설정하고
엘레멘트 만드는 거기 때문에 복잡하지 않아요
그런데 이거를 내가 할 것인가
아니면 AI한테 시킬 건가
이걸 고민하는 거죠
그래서 AI한테 시켜 보려고 시도를 해 본 겁니다
그런데 이거를 이런 식으로
제미나이에 들어가 가지고
또는 채취pt에 들어가 가지고
여기다가 이제 매뉴얼 페이지를 알려 주고
이렇게 물어볼 수도 있겠죠
여기서 아마 코드를 줄거에요
그렇게 코드를 주면 또 그거를 파일로 저장하고
그걸 또 실행을 시키고
어찌됐건 실행시키는 방법을 내가 알아야 되는 거잖아요
파이썬을 내가 아예 모른다
그러면 그것도 한참 공부해서 그렇게 해야 되는데
저는 지금 내 컴퓨터에 설치하고
이런 거를 아예 하지 않고
애한테 시키는 방법을 한번 테스트 해 본 겁니다
자 어떻게 했냐면요
일단은 github에 자기 계정이 있어야 겠죠 자기 계정이 있고 거기다가 레포지터이라는 게 있습니다 저장공간을 하나 만들었어요 그래서 anastrupt-trust라는 저장공간을 하나 만들었습니다
지금은 파일이 많지만
만들면 새로 만들기 하면 되거든요
내 계정에 들어와서 repositor에 들어간 다음에
anastrupt-trust라는 저장공간 repositor를 하나 만들고
그 다음에 뭐를 선택하냐면
오른쪽 위에 Copilot 입니다
Copilot 을 선택합니다
그리고 New Chat 을 누르면 채팅을 시작하는거에요
여기 이 Copilot 은 지금 인공지능 서비스에요
LLM 도움을 받아갖고 코딩을 도와주는
일종의 Agent 서비스죠
여기 들어와서 제가 어떻게 했냐면
요 주소를 복사해서 여기다 줍니다
이렇게 주소를 주고
부조해석 파이썬 프레임워크 다큐먼치야
이 문서 분석해 이렇게 시킵니다
물론 여기다가 이걸 바탕으로
뭐뭐뭐를 해 라고 하는 방법도 있지만
우리가 인공지능하고 대화할 때는
너무 처음부터 완전히 디테일한 것들까지 다 주는 것보다
차근차근 하는 게 좋습니다
그래서 저는 어떻게 했냐면
자 이거 분석해 봐
얘가 분석을 했는지도 우리가 확인을 해야 되는 거잖아요
그래서 자 얘가 이렇게 자기가 분석을 한 겁니다
설치는 이런 방법으로 하고
기본 사용법은 이렇다 그래 갖고
대충 여기가 파악한 게 보이죠
개체 생성을 이렇게 하고
support 추가, element 추가, false 추가, 집중하중 추가
이런 식으로 분석을 한 것을 확인을 해야죠
그래서 예제 코드도 있고 제약 및 가정도 파악을 했어요
그래서 얘가 벌써 활용 예제 코드를 하나
아까 그건 아닌 것 같네요
그게 단순하게 생겼는데 0,0에서 3,0
그냥 이렇게 생긴 단경감 본가 봅니다
아무튼 document에 있는 예제인지 모르겠지만
얘가 간단하게 알려졌어요
그래서 저는 파악만 하라고 했으니까
코딩을 시킨게 아니죠
이런 프레임워크네요
라고 설명을 해 준거죠
제가 여기다가
얘가 어느정도 파악을 했으니까
일을 시켜야겠다
그래갖고
트러스 모델링 할거야
미리 알려주고요
트러스 부재는 모델 모델트가 전달되는 걸로 모델링 할 것
우리가 학교에서 배운 트러스는
이렇게 모델트가 전달되지 않는
그런 걸로 배우죠
실제로 이거는
현대에는 이런 트러스는 거의 없다고 봐야 돼요
왜냐하면
트러스는 예전에 이상적인 트러스였거든요
핀으로 연결된 용접이나 볼팅 이런게 발달하지 않았을 때
이렇게 핀으로 끼워 놓는거죠
피어너로 끼워 놓아서 이런 식으로 된 시대에까지는
이렇게 이상적인 모멘트가 없는 그런 트러스가 있었지만
현대에는 볼팅 기술도 발달하고
용접 기술 발달하기 때문에 모멘트가 다 전달되는 거죠
그래서 모멘트가 전달되는 걸로 모델링이 달라 그랬다
이게 왜 이렇게 지시됐냐면
트러스를 모델링을 하라고 하면
이상적인 트러스
모멘트가 전달되지 않는 트러스로 모델링을 할까봐
제가 일부러 그렇게 한 겁니다
전체 길이는 48m고
격전 간격은 6m
배의 개수는 8개야
이번에 붕괴된 대표 도서관이
6m 간격으로 8개가 있었거든요
8개가 있었기 때문에
그것을 얘한테 알려준 거죠
높이는 12m야
이 높이가 12m 였고요
모든 격점에서 상연제와 하연제를 연결하는 수직제가 있다
이거 알려준 거죠
트러스가 어떻게 생긴 건지 LLM이 이해를 해야 되는 거죠.
대충 알고 있습니다.
사제 설명하기가 쉽지가 않아요.
사제는 중앙 하연제에서 바로 앞 하연제 격점으로 연결한다.
중앙 하연제에서 제가 중앙 하연제 랄죠.
여기서 바로 앞 상연제 격점으로 연결한다.
이걸 설명한 거죠.
중앙에서 시점까지 같은 방식으로 사제를 생성해.
이렇게 하라는 얘기잖아요.
사제들 우측으로는 대칭으로 생성해다.
우측으로는 대칭으로 생산하니까
6일 기준으로 대칭이니까
이렇게 준단 얘기죠
지점 조건은 하현재 시점 힌지고
하현재 종점은 롤러야
힌지고 롤러야
광주도서관은 이거 아니겠죠
여기는 연속된 거였으니까
옆에 기둥도 있었고
저희는 정확하게 광주도서관 모델링을 하려는게 아니라
예제를 들은 겁니다
모든 부재는 800x800
두께 20mm 강제로 된 각관으로 모델링 해줘
이렇게 생겼고 이게 800이고 두께가 20mm다
이런 식으로 알려준 거죠
그랬더니 어떻게 했어요?
내가 요청하신 트러스 모델링 작업에 대한 PR이 생성되었습니다
PR 세부 정보를 확인하고 추가 의견이나 요청사항을 말씀해 주세요
이게 뭐냐면 내가 어떤 프로젝트를 만들어요
최종 성과물을 만들기 위해서 작업을 시작하잖아요
그러면 여러 단계를 거쳐서 작업하겠죠
그래서 처음 이 단계를 만들었다는 얘기에요
pr이라는 게 이제 full request라고 해갖고
내가 어떤 작업한 거를
최종본에다가 반영하는 단위라고 생각하면 됩니다
하나의 작업 단위라고 생각하시면 되죠 간단하게
그래서 물어본 거죠
할 거니 말 거니
그래서 자기가
truss modeling
및 anastruct 코드 작성
그래서 이 돌종이라는 밑에
요렇게 돌종이
이런 full request 제목으로
작업 단위로 작업을 시작할 걸 물어본 거예요
그래서 내가 시작해
여기 떴거든요
할거냐 말거냐 이렇게 예스 노 이렇게 나온거죠
예스를 눌렀고요
그래서 얘가 공명복창한거죠
돌종이 accept
액션을 accept 했다
그래가지고 작업을 시작합니다
근데 제가 이때 깜빡 잊고서
레포지트리
작업공간을 안 만들고 시작했어요
그랬더니 얘가 요청하신 작업을 진행하려면
git hub 저장소
그러니까 레포지트리죠
git hub 저장소를 레포지트리 라고 부릅니다
레포지트리의 이름과 소유자를 명확하게 알려주세요
그래가지고 제가
이 사이에서 이렇게 레포지트를 만들었어요
아까 레포지트 안에 내용을 보여드렸잖아요
그래서 레포지트 이름을
anastruct-trust라고 만들었다
이 저장소에다가 아까 지시한
trust를 해석하는 코드를 만들기 시작한 거죠
여기에다가 모델링을 할까요? 라고 해서 yes를 눌렀습니다
그래서 코파일로 코딩 에이전트가 요청한 작업을 진행하기 시작했습니다
그리고 요 밑에 이렇게 진행 상황을 보여주는 교역이 생깁니다.
그래서 요걸 눌러 보면은
단순히 채팅해서 그냥 한번 대답하고 이런게 아니라
자기 스스로 계획을 짜고 코드를 수정도 하고
심지어 실행까지 해 보거든요.
자 보면은
48m Truss Structure Modeling with Ana Structure
넘버원이죠.
첫 버전이라는 얘기죠.
이 Copilot Coding Agent 가 작업한 내용들이 여기 다 목록에 있습니다.
그래서 얘가 뭘 했는지 보면은
github mcp 서버를 시작했고요
playwright mcp 서버를 또 시작했고
그 다음에 bash라고 해가지고
얘가 어떤 명령을 내린 거죠
이거 눌러보면 다 내용을 볼 수가 있습니다
이런 작업들을 스스로 자기가 계획을 짜고 한 거예요
bash 명령을 보면은
파이썬 파일이 있는지 체크를 한 거 같아요
레포지트리 안에 파이썬 파일이 있는지 체크를 하고
그 다음에 readme 파일을 읽어보고
그 레포지트리에 어떤 파일들이 있는지 확인한 거죠
그러니까 얘가 지금 가상의 공간을 만들어서
그러니까 뭐 기드허브 서버죠.
기드허브 서버에서 이런 명령들을 통해서
돌종 사용자의 anastruct under-trust 안에 있는 파일들을
지금 뭐가 있나 살펴본 겁니다.
사람이 작업하듯이 지금 하나하나 앞에부터 하나씩 작업을 하고 있는 거예요.
파악을 합니다. 그리고 history, git history를 보고요.
저 명령을 내리면 명령 결과가 나오겠죠.
그걸 또 검토해요.
그런 작업들을 내리면 스스로가 한 겁니다.
자 그래서 Rechirement Analysis 이렇게 6가지 정도의
제가 아까 내린 명령을 간단하게 요약을 했죠
아까 제가 줄줄이 썼는데
얘는 스스로 번호를 매겨서 6가지로 남았어요
그래 가지고 이게 중요한데
Proverse Update
내가 이 일을 어떻게 처리할 것인가
뭘 해야 되나 그래 가지고 이렇게 Breakdown을 한 거예요
그래 가지고 체크박스가 있습니다
스스로 이걸 하나하나 체크를 해가면서 할 거라고 계획을 세운 겁니다
몇 개죠? 하나 둘 셋 넷 다섯 여섯 일곱 여덟
8개로 지금 스텝을 나누어서 계획을 세웠습니다.
그 다음에 trussmodelling.py를 만듭니다. 이게 딩을 시작한거죠 앞부분은 주석이요 나 이런 일을 할거야
이런 트러스를 모델링 할거야
라고 하고 실제 코딩은 이렇게 한거죠
얘가 아까 준 매뉴얼을 바탕으로
자기가 스스로 LLM이 가지고 있는
트러스에 대한 지식
구조해석에 대한 지식
이런 것들을 끌어 모아서
아까 그 매뉴얼을 파악한 다음에
이런 코딩을 한겁니다
하연제 부재 설정 나오고
상연제 부재 설정 나오고 수직제 생성 사제 생성 좌측 사제 우측 사제 중앙에서 우측으로 대칭 이런 식으로
지점 조건 설정하고 부재 속성 설정하고 여기 보면 각관 단면 특성 계산하죠.
이 인어 폭 안쪽 폭이 얼마다 계산한 거고
단면적 계산합니다. 단면 2차 모멘트 계산하죠.
자 모멘트가 전달되는 트러스 형상으로 모델링 하라고 했기 때문에 i값도 구해야 됩니다.
i값도 바깥쪽 i값에서 안쪽 i값을 빼서 구했죠
이 아이를 설정하고요
속성 적용하고
모델이 생성됐습니다 이렇게 나왔습니다
제가 해석하라는 말을 안했고
모델을 생성하라고 했잖아요 아까
그래서 모델 생성까지만 일단 한 겁니다
제가 해석까지 시키지 않았기 때문에
모델 생성까지 한 것 같아요
그래서 얘가 지금
아나스트럭트가 인스톨 되어있는지
그러니까 GitHub 서버
자기가 지금 일하고 있는 공간입니다
제 컴퓨터가 아니라
거기서 체크를 합니다 체크를 해봤더니
no module name 이렇게 되어 있죠
그래서 인스톨합니다 자기 스스로
anaestruct 라이브러리를 인스톨합니다
자 그 다음에 실행을 시켜 봅니다
파이썬3하고 아까 만든 trussmodel.py를 실행을 시켜보죠
그랬더니 총 부재수가 33개다 이렇게 했는데
여기에 에러가 났어요
에러가 났더니 자기가 스스로
아마 여기에 그림을 보여주는 여기서 에러가 난 것 같은데
자기 스스로 그래서 방법을 찾아 본 것 같아요
그래서 edit 아까 만든 trussmodel.py를 편집을 합니다.
빨간 거는 삭제된 거고
초록색이 추가된 거거든요.
빨간색으로 있던 내용을 초록색으로 수정한 겁니다.
고조물 시각화에
ss.showstructure를 try를 넣어가지고
에러가 나면 이렇게 하고
그냥 에러가 없으면 이렇게 해라 이렇게 수정을 한 거 같고요.
다시 한번 돌려봅니다. 테스트를 해 봅니다.
verify the struth structure details
일일이 찍어보는 것 같아요
지금 보면 노드 위치나 일일이 찍어보고
LLM이 스스로 그 노드 위치를 확인해 보는 거죠
코딩으로 절점을 만들었기 때문에
절점 하나하나가 잘 만들어졌는지
판단을 해 보고 있어요
교재 개수가 총 33개가 맞다
카운트 해 보고 있는 거죠
자 그 다음에 얘가 스크립트를 하나 더 만들었습니다
파이썬 스크립트를 하나 더 만들었는데
visualizeTruth
이거는 시각화 모듈을 따로 만들었어요
그러니까 시각화라는 게
해석하고 나면 bmdsft 확인하잖아요
afdd, Axial Force Diagram 이런 식으로
이런 걸 시각화하는 것을 따로 만들었어요
아까 해석 따로, 비주얼라이징 따로
맥플로우 라이브가 그래프 그리는 기능인데
아까 시각화 스크립트에서 맥플로우 라이브를 써야 되나 봅니다
그래서 이걸 자기 스스로 인스톨 했고요
그래서 한번 해 봅니다
Visualization Script를 실행시켜 본 거죠
그래서 trussstructure.png가 만들어졌네요
요번에 잘 만들어졌네요
자 그래서 자기가 그 파일이 만들어졌는지 확인합니다
자 그 다음에 viewtruststructure.png
이거를 자기가 만든 파일을 자기가 확인하는 과정인가요?
그건 명확하지가 않은데
자기가 확인해 볼 수도 있습니다
얘는 행공지능이 이제 그림도 보고 판단할 수가 있잖아요
그래서 이 만들어진 파일 자기가 열어서
lm 스스로 잘 만들어졌는지 확인해 볼 수 있는 거죠
스스로 perfect 제대로 모델링 됐다
자기가 i can see 자기가 봤단 얘기죠
그래서 이렇게 잘 만들어졌다 이렇게 한거죠
그래서 최종적으로 내가 이렇게 코드를 다 만들었으니까
그거에 대한 요약을 readme 파일을 만들었는데
trussmodel.py visualizedtrust.py
trussstructure.png 이렇게 만들었다고 readme 파일까지 만들어준거죠
그 다음에 사용방법은 이렇다
install하고 돌려라 이런거 다 친절하게 readme 파일을 만들어줬고요
자 그 다음에 아까 해석을 안하고 모델만 만들었잖아요
얘가 스스로 example analysis python을 또 만듭니다.
프로그램을 만들었으면 테스트를 해야 빨리잖아요.
스스로 그래서 얘가 이 스크립트는 생성된 트러스 모델에
하중을 적용하고 구조해석을 수행하는 예제라고 하네요.
하중을 마이너스 100kN, 10톤이죠.
10톤을 상현재 노드에 적용한 거예요.
그 다음에 구조해석 실행을 시키고
최대 변이를 찾고
최대 충력 찾고
그 다음에 결과 시각화를 합니다.
변이도 그리고 충력도 그리고 휜모멘트 도 그리고
발력도 그리고
자 그래서 이거를 실행시키죠
bash로
그랬더니 이렇게 output이 나왔고요
그런데 에러가 났어요
node.roll
node object has no attribute role 이라는
attribute가 없다
얘가 매뉴얼을 익히긴 했는데
완벽하게 익히지 못한 것 같아요
그래서 편집을 합니다
let me fix the example analysis script to handle the node
Attribute correctly 수정을 하겠다
아까 어디서 에러가 났냐면
else if node.roll 이렇게 되어 있잖아요
이게 롤러 지점인가 보네요
그래서 수정을 했다고 했고 다시 돌립니다
다시 돌렸더니 끝에 보면 에러가 없죠
그래서 또 확인해 봅니다
이제 비주얼라이제이션이 제대로 됐는지
명령을 png 파일 다 보여줘
자기가 스스로 리스트 하는 거예요
그랬더니 하나 둘 셋 넷 다섯 개의
png 파일이 있는 걸 확인합니다
readme 파일을 수정해 주고요
계획 세웠던 거
그거를 하나하나씩 체크박스를 다 체크하고 끝내는 것 같아요
check recent commit
commit이라는 거는
github에 올리기 전에
한묶음으로 만든다고 생각하시면 되거든요
그 다음에 directory structure 보여주고
remove cache 파일
임시 파일 만들었던 거 지우고
그 다음에 리뷰를 합니다
얘가 한 일을 리뷰를 하는 것 같아요.
전체적으로 리뷰를 하고
LLM이 스스로 일을 하는 거지만
리뷰 단계를 한번 거치는 거예요.
사람도 마찬가지죠.
프로그램 다 만들어 놓고
다시 한번 볼까? 그러면서
앞에서 한번 쭉 읽어보는 거죠.
그래가지고 리뷰를 했더니
두 개의 리뷰 코멘트가 나왔다.
이런 내용, 이런 내용.
라인 109에서 111까지,
라인 42에서 48까지 이렇게
두 개의 파일, 모델 파일하고
Example Analysis 파일에서
이거를 수정했으면 좋겠다고
코멘트가 나온 거죠.
그래서 아까 105에서 115까지 내용 확인하고요
그 다음에 바로 수정합니다 수정했고요
그 다음에 example analysis 파일도
35에서 58까지 내용 확인하고 수정합니다
그래서 다시 돌려봅니다 테스트 하는 거죠
cross model 돌리고 그 다음에 또 테스트
example analysis 돌리고
그래서 progress 진행 상황을 다시 체크하고요
자 그 다음에 run code ql 이라고 있는데
security를 체크해 주는 기능인가 봐요
코드큐엘 security 돌렸더니
경고사항이 없다
사람이 하면 이런 거 다 따로따로 해야 되는데
얘가 스스로 다 알아서 해 주는 거죠
그리고 나서 implement 구현 report를 만들었습니다
이렇게 다 만들었습니다
프로그램을 만들었는데
프로그램이 이런 기능이 있습니다
이런 개념으로 만들어졌습니다
보고 하는 겁니다
사람으로 말하자면
프로그램을 해 놓고 다큐멘테이션 해야 되잖아요
그걸 얘가 스스로 한 거죠 자세하게
그리고 또 implementation report까지 포함해서
progress update를 했고요
final verification of all requirements
다시 한번 코드를 검토를 하나 봅니다
그 다음에 check git status
이렇게 해서 작업을 끝냈고
작업한 것도 서머리를 쭉 보여줍니다
자 이렇게 작업 단계를 좀 디테일하게 봤는데요
얘가 어떻게 일을 하나 이런 것들을 한번 살펴봤는데 첫번째 시도에서 O오버뷰는 이렇고요 파일 changed
어떤 파일들이 수정됐나
이걸 이렇게 눌러보면
각 파일이 수정된 내용을
이렇게 볼 수가 있거든요
이 안에 12개의 파일이 있는데
내용들을 쭉 볼 수가 있고요
그런데 여기 보시죠
아까
Tross Actual Force PNG가 만들어졌는데
어? 사정이 잘못 만들어졌어요
그쵸?
제가 중앙 하연제에서 그 바로 앞 상연제 격점에 연결시켜라
그 다음에 이쪽 것도 그런 방식으로 다 해라 했더니
하연제 중앙점은 안 바꾸고
요거를 상연제만 바꿔가면서 이렇게 한 거예요
그 다음에 이쪽도 대칭으로 하라 했더니
또 이렇게 하고 잘못 이해한 거죠
그러니까 이게 엔지니어링을 말로 하기가 어려운 게
이런 걸 설명하기가 말로 설명하려면 생각보다 복잡해요
그러니까 얘가 이런 모델링 경험이 많다면
사제라고 하는 거는 바로 옆 격점으로 가지
이걸 건너뛰면서 가진 않는다
한 곳에 모이진 않는다
이런 거를 이해하고 있겠죠
근데 그런 게 좀 부족하다 보니까 이렇게 한 거죠
아무튼 해석은 잘 돼서
충력도 나왔고요
모멘트도 그다음에 처짐
한 군데 사제들이 다 붙어 있다 보니까
여기가 처짐이 덜 생겼어요
이렇게 쭉 이런 형상이 나왔죠
아무튼 저런 그림 파일들도 지금 만들어졌고
visualization 한거죠.
이거 발력이죠. 발력도 그 다음에
얘는 모델링을 보여준 거예요.
truststructure.png 이렇게
부재 번호, 노드 번호
이런 것들을 보여주고 있는 것 같죠.
이게 내 컴퓨터에서 이루어진 게 아니라
git hub 서버에서 이 작업을 한 겁니다.
여기서 그러면 LLM의 역할은 뭐냐
코딩 능력이죠.
LLM의 코딩 능력과
그 다음에 아까 여기서는 bash라고 하죠.
이 서버에서 명령을 시행시키는 능력
그 다음에 편집
그런 능력들이
LLM에 다 있는 건 아니고요
여기다가 에이전트
에이전트와 한 거죠
LLM과 어떤 기능을 결합해서 에이전트를 만든 거니까
이 기능이라는 게
배시를 돌리고
그 다음에 편집을 하고
편집도 할 줄 알아야지 수정을 할 거예요
LLM은 중간에서 이런 툴이
진진 상황을 주면 거기에 대한
내놓는 거죠
코딩 결과도 내놓고 배시 명령으로 내놓고
편집한 결과도 주고 이런 식으로 하는 거겠죠
자 그래서 이게 이제 1차 시도에 잘 안 된 거잖아요
아무튼 저는 손 하나밖에 건드리지 않고
매뉴얼을 한 줄도 읽어보지 않았어요
그냥 사이트 url만 주고
얘한테 모델링을 만들려고 했는데
좀 잘 안 만들어졌잖아요
그래서 아무튼 1차 시도로 이걸 본 거고요
그래서 제가 사재 배치가 틀렸어
사재는 하현재 중앙 격점에서
바로 전 상현제로 연결되고
그 각도대로
이거 설명하기 쉽지 않잖아요
그 각도대로 이전 하현제 격점
이전 하현제 격점에서
그 이전 상현제 격점으로
설명하기 쉽지 않죠
연결되는 규칙이야
중앙 기준으로 오른쪽 사제들은
중앙을 기준으로 대칭이야
중앙이라는 말을 두고 인하셨네요
아무튼 이렇게 설명을 해줬습니다
그래서 얘가 마찬가지로
또 실행할 거냐 물어보고
승인을 해줬고요
자기가 시작합니다
그러면 이게 이메일로 와요
작업이 다 끝나면 이메일로 옵니다.
그래서 이런 거는 몇 분 안 걸렸지만
실제로 복잡한 걸 시키면 몇 시간도 일한다.
그런 게 지금 몇 시간씩 일할 수 있는 능력.
그것도 지금 컨텍스트 길이부터 시작해서
맥락을 유지하면서 장시간 일하는 능력.
그것도 지금 LLM의 능력인 거죠.
그래서 두 번째 걸 보면
이렇게 너무 트러블 돼 있죠.
두 번째 걸 보면
이거는 쭉 아까 한번 자세히 봤으니까
만들어진 것만 보겠습니다.
이렇게 보면은 수정을 했죠.
아까 그 사제 배치 그게 틀렸으니까.
그런데 보니까 여긴 그림이 없어요.
여긴 빨간 거로 된 거는 이 그림을 지웠다는 얘기거든요.
지웠잖아요. 이렇게 마이너스는 지워진 거거든요.
그러니까 해석을 안 했어요.
요번에는 모델만 수정하고 해석을 안 했더라고요.
그래서 해석을 수행하고 해석 결과 그림들도 보여줘 이렇게 지시를 했습니다.
그래서 결과가 나왔고요.
결과를 봤더니 이게 안 바뀌었어요.
운날 거 그대로라는 얘기죠.
어? 이거 왜 안 바뀌었지? 그래서 봤더니
원인이 뭐였냐면, 이게 버전관리에 대해서 좀 알아야 되는데
제가 처음에 1차 시도 때 이렇게 생긴게 만들어졌잖아요
그래서 2차 시도 때 이거 수정해줘 시켰잖아요
3차 시도 때 해석을 안 했길래 해석을 해 라고 했는데
문제는 1차 시도 때 만들어진 게 잘못된 게 있는데
이게 메인입니다 메인이었는데
이 수정한 거를 메인에다가 반영을 안 하고
왜냐면 이 분산 버전관리라고 하거든요
얘네들은 각자 존재합니다.
수정한 내용이 각자 존재해요.
이걸 여기다 합쳐야지 반영되는 건데
제가 여기다가 합치지 않고 얘를 바로 또 했어요.
그러니까 얘는 이 수정은 처음에 시도한 거
이걸 기준으로 수정했겠죠.
이 3번도 이걸 기준으로 수정한 거예요. 잘못한 거죠.
어떻게 했어야 되냐면
이걸 수정했으면 이걸 반영을 해갖고 새로운 걸 만들어야 되는 거예요.
최종 버전을 다시 만들어 놓고
이걸 시켰으면 해석을 시켰으면
최종 버전을 가지고 얘가 해석을 했겠죠
근데 저는 그냥 수정했겠지 하고
바로 해석을 시켰는데
이거 결국은 어떻게 했냐
수정은 요걸로 하고 해석도 요걸로 한 거죠
자 요런 것 때문에 안 된 거예요
그래서 왜 안 됐을까 봤더니
그런 순서를 잘못해서
그래서 다시
이전에 사제 배치를 바꾼 후
풀 리퀘스트를 merge 하지 않은 상태에서
merge라는 게 이제 그걸 합치는 겁니다
시각화해서 이제 다시 merge 했으니 다시 시각화해져
그래갖고 최종적으로 나온 게 이제 요겁니다
그래서 이것도 결과만 보겠습니다
박빛 모델로 해석을 수행한거죠
그래서 이렇게 나왔습니다
자 보면은 끝에 있는 사재가 충력이 제일 큽니다
끝에 있는 사재가 충력이 제일 크다는게
붕괴됐을 때 여기가 떨어져 나가 있었거든요
물론 이거는 지금 단경관이기 때문에 조금 다를 수 있어요
실제 광주도서관 건물은 연속화 되어 있기 때문에
이쪽에도 이렇게 있었잖아요
기둥도 이렇게 있었고 이렇게 되어 있었기 때문에
이 고동하고는 좀 다릅니다
근데 저희가 확인을 해 보기 위해서
내가 제대로 잘 돌아가는지 확인하기 위해서
가장 단순한
단순
롯소린 해석을 해본거죠
아무튼 요 경향은 바뀌진 않을 것 같아요
여기 지금 어차피
여기서 발력이 올라가면
발력의 수직력이 여기로 갈 수 밖에 없거든요
쪽 사재
제일 끝 쪽 사재가 가장 큰 힘을 받는데
그 부분은 지금 떨어져 나갔었죠 실제
하고 현장에서도
자 그래서 뭐 모멘트도도 있고요
처짐도도 있고
발력도 그 다음에 전단력도
뭐 이런 것들이 다 잘 나왔습니다
자 그래서 이번 영상에서는
구조해석 오픈소스 프로그램을
GitHub에서 찾아서
그거를 내 컴퓨터에 설치를 한 것도 아니고요
GitHub에다가 공간을 하나 만들고
Hording Agent Copilot을 써서
오픈소스 구조해석 프로그램에 매뉴얼을 숙지시키고
그 다음에 모델링을 하고
해석을 하는 과정을
단 몇 번의 프롬프트로 먼저 구현을 해 봤습니다
근데 제가 요걸 해 보면서 느낀 거는
결국은 요 매뉴얼 있죠
매뉴얼이 엄청 중요하다
LLM이 이 매뉴얼을 이해하고
다음 작업들을 할 수가 있고
작업들을 하는 과정에서 LLM의 사전 지식이죠
얘들이 인터넷에 있는 엄청난 문서들을
몇 쪽에 문서를 다 학습을 했기 때문에
어딘가에는 얘가 구조해석이라는 지식을 가지고 있다는 얘기죠
플러스가 뭔지 롤러가 뭔지 힌지가 뭔지
이런 걸 갖고 있다는 얘기죠
그러다 보니까 이런 코딩을 할 때도
사전 지식을 통해서 일을 잘 할 수가 있는 거고
결국은 이런 코딩 뿐만 아니라
다른 작업들도 매뉴얼만 잘 만들어보면
이런 코딩 에이전트
저는 이 코딩 에이전트라고 하지만
실제로 코딩만 하는 게 아니라
문서 작성도 하는 거죠
그림도 마찬가지일 것 같고요
보면도 될 수 있고
그런 것들을 에이전트를 잘 만들어서 쓰면
코딩 뿐만 아니라 다른 것들 다
할 수 있을 것 같다는 생각을 해봤습니다
영상이 도움이 되셨다면
구독, 좋아요, 댓글 부탁드리겠습니다
지금까지 코딩하는 토목 엔지니어 돌종이었습니다
감사합니다