생소한 개념을 익숙한 도메인으로 도식으로 그리게 하기

인공지능 길들이기

by 안영회 습작

ID와 패스워드 기억하는 것이 너무 싫은 저는 회사의 시스템에 모두 패스워드 없는 로그인을 적용했습니다. 하지만, 코딩 에이전트 덕분에 가능해진 아내를 위한 바이브 코딩 과정에서 제가 이를 직접 적용하는 일이 생겼습니다.


아무리 클로드 코드가 코드를 짜 주더라도 책임은 사람이

사실 코딩은 제가 하는 것이 아니라 클로드 코드가 하는 것이죠. 그래도 무슨 일이 벌어지고 있는지 따라가야 합니다. 책임은 제가 지니까요!


몇 년 전 테슬라의 자율 주행을 욕하는 사람들이 계속 말하던 내용과 같습니다. 운전은 테슬라가 했는데, 책임은 운전자가 진다고 억울해하는 사람이라면, 바이브 코딩은 고려하지 않아야 합니다.


아무튼, 그래서 클로드 코드 화면에서 눈에 띈 RP라는 단어가 뭔지 알아보기로 했습니다. 최근에 제 요구로 passkey를 적용한 후에 동료가 쓴 글을 봤습니다. 해당 내용은 없네요. 그래서, 클로드에게 물었습니다.


내가 편안한 도메인의 도식으로 표현해 주는 인공지능

단어 뜻 정도로 마음에 차지 않았습니다. 그래서, 다시 클로드에게 이렇게 요구했습니다.

비슷한 수준의 관련 개념을 뽑아서 클래스도를 그려 주세요.

제 취향이나 경험이 드러난 요구였습니다. 깔끔한 그림이 등장했습니다.

하지만, 한눈에 들어오지 않아서 다시 이렇게 요구했습니다.

plantuml 스타일로 그림을 변경할 수 있나요?


인간의 가장 탁월한 역량은 바로 유연성

그런데, 클로드 웹에 내장된 에이전트에서 오류가 났습니다.

여기서 꼭 그림을 볼 이유는 없습니다. 그래서 이렇게 요구했죠.

그리다가 오류가 났는데, 그렇다면 제가 plantuml 편집기에 넣을 수 있는 텍스트 형태로 출력해 주세요

그렇게 만난 결과를 PlantUML 편집기에 붙입니다. 그런데 버전 문제인지 또 오류가 납니다.


어쩔 때는 지적 활동을 인공지능에게 맡기고 따지기만

텍스트를 살펴보며 한 땀 한 땀 고칩니다. 기계적으로 수정한 것이라 원 저자(?)인 클로드에게 의도한 것이 맞는지 묻습니다. 인공지능이 종종 앞뒤가 맞지 않는 말을 한다는 점을 고려해서 적절히 질문을 던집니다.

그렇게 나온 결과를 모아서 다시 PlantUML 편집기에서 수정을 했습니다.[1]

나중에 클로드를 열었더니 앞서 깨졌었던 UML 클래스도가 다음과 같이 제대로 나왔습니다.


주석

[1] PlantUML 편집기에 입력한 마지막 텍스트는 다음과 같습니다.

@startuml

skinparam classAttributeIconSize 0

skinparam classFontStyle bold

skinparam roundcorner 8


class RelyingParty {

+rpId : String

+name : String

--

+issueChallenge() : Challenge

+verifyAssertion(assertion) : Boolean

}


class User {

+id : Bytes

+displayName : String

+username : String

}


class Credential {

+credentialId : Bytes

+rpId : String

+signCount : Number

--

+verify(signature) : Boolean

}


class KeyPair {

+publicKey : Bytes

-privateKey : Bytes

--

+sign(data) : Bytes

}


class Challenge {

+value : Bytes

+ttl : Number

--

+isExpired() : Boolean

}


class Authenticator {

+type : String

+aaguid : String

--

+generateKeyPair() : KeyPair

+sign(challenge) : Bytes

}


class Passkey {

+discoverable : Boolean

+synced : Boolean

+platform : String

}


class RegistrationCeremony {

+attestation : Object

+clientDataJSON : Bytes

--

+execute() : Credential

}


class AuthenticationCeremony {

+assertion : Object

+signature : Bytes

--

+execute() : Boolean

}


RelyingParty "1" --> "many" Challenge : 발급

RelyingParty "1" --> "1" RegistrationCeremony : 시작

RelyingParty "1" --> "1" AuthenticationCeremony : 시작

User "1" o-- "many" Credential : 보유


Authenticator --> KeyPair : 생성

Credential *-- KeyPair : 포함

Passkey --|> Credential

Challenge --> RegistrationCeremony : 사용

Passkey --> AuthenticationCeremony : 사용


@enduml



지난 인공지능 길들이기 연재

(34회 이후 링크만 표시합니다.)

34. 인력을 유지하면서 AI를 이용해 생산량을 늘리자

35. 인공지능은 사회 시스템을 바꿀 것이다

36. 인공지능 시대의 교육은 어때야 하는가?

37. 인공지능은 언어로 만든 추상적 구조물을 변하게 하는가?

38. AI가 위협하는 정규 교육 후에 진행되는 견습 시스템

39. 인공지능에 대한 풀이가 강력한 신화의 힘을 깨닫게 하다

40. 사라져 버린 신화의 자리에 채워 넣을 무언가가 필요한가

41. 세상이 바뀌면 내가 쓰던 말도 바꿔야 할 필요가 있다

42. 스포츠와 예술을 모두 콘텐츠로 담아 버린 웹 기술

43. 팬덤 비즈니스는 화장품뿐 아니라 바둑에서도 필요한가?

44. 인공지능을 주도하는 이들은 마치 신대륙 탐험가 같다

45. 제대로 묻고 따져 보지 않았던 대한민국의 각성

46. 인공지능 서비스가 만드는 커다란 파도를 서핑처럼 즐기기

47. 책임은 아티스트가 아니라 프로듀서가 진다

48. AI와 함께 해도 번역 과정에서 사고가 깊어질까?

49. 클릭 몇 번으로 그냥 음악 만드는 것도 가능한 시대

작가의 이전글내 일상을 차릴 알고리듬 일부를 정의하다