Untuk Tidak 'Dimakan' oleh Kode yang Dibuat AI, Kita Harus Memulai dengan Mengisolasi Arsitektur
TuBrief 편집팀
2026년 7월 7일
0
Computing/Software원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
Kecepatan AI generatif dalam menghasilkan kode sangatlah menakutkan. Namun, masalah sebenarnya yang dihadapi oleh para senior engineer dan lead teknis adalah hal lain. Masalahnya adalah beban kognitif yang meledak saat harus memverifikasi dan mengintegrasikan kode yang dibuat mesin dalam hitungan detik ke dalam sistem yang sudah ada. Laporan DORA 2025 dari Google Cloud menyebutkan bahwa penerapan AI memang meningkatkan frekuensi deployment, tetapi juga meningkatkan ketidakstabilan sistem. Artinya, manusia harus begadang untuk menambal lubang yang muncul akibat kecerobohan dalam menyalin dan menempel (copy-paste) kode secara membabi buta. Cara manual di mana manusia membaca dan melakukan debug kode satu per satu tidak akan mampu mengimbangi kecepatan ini. Kita harus membangun lingkungan arsitektur yang sejak awal tidak memercayai logika yang dibuat AI, serta mengotomatisasi verifikasi agar kode tidak berubah menjadi sampah.
Kode yang disarankan oleh AI tidak memahami konteks bisnis. Meski terlihat baik-baik saja, kode tersebut sering kali melanggar aturan halus di dalam domain perusahaan. Oleh karena itu, logika yang dibuat AI harus diperlakukan seperti sistem eksternal yang bisa rusak kapan saja. Itulah sebabnya kita harus menanamkan Anti-Corruption Layer (lapisan anti-korupsi) sejak tahap desain, guna mendefinisikan antarmuka abstraksi yang jelas agar polutan tidak masuk ke area domain yang ada.
Memisahkan arsitektur perangkat lunak saja tidak cukup. Selalu ada risiko kode AI mengimpor pustaka berbahaya atau mengacak-acak sistem file lokal. Kasus Stripe saat merancang sistem agen otonom Minions sangat layak direnungkan; mereka menjalankan proses kompilasi kode AI di dalam virtual machine independen yang terisolasi dari mesin host dan memblokir akses jaringan di tingkat protokol. Untuk melindungi lingkungan produksi, kita perlu menerapkan kontrol tingkat kernel di dalam pipeline CI/CD.
Kita harus membangun lingkungan eksekusi zero-trust yang mengurung kode yang tidak tepercaya agar tidak bisa keluar. Efek samping yang menguntungkan adalah berkurangnya waktu respons terhadap gangguan sistem.
Sangat berbahaya bagi pengembang untuk memeriksa ratusan baris kode buatan AI secara kasat mata. Saat otak lelah, bias otomatisasi akan muncul, membuat kita cenderung meloloskan kode yang terlihat "biasa saja" begitu saja. Cacat logika yang dibuat mesin tidak boleh ditangkap oleh manusia, melainkan oleh kode pengujian yang dapat dijalankan. Urutannya harus dibalik: sebelum memerintahkan AI menulis kode implementasi, perintahkan AI untuk membuat test case yang mendefinisikan spesifikasi kerja terlebih dahulu. Terapkan aturan wajib untuk mendefinisikan 5 kategori terlebih dahulu: alur normal, kondisi batas, penanganan pengecualian, input tidak normal, dan skenario pemulihan kegagalan.
Line coverage dari kode yang dibuat dengan mengetik perintah (prompt) secara manual tidaklah tinggi. Menurut data operasional agen DeepBlue, line coverage pengujian yang diperoleh oleh insinyur manusia saat berinteraksi dengan AI rata-rata hanya mencapai 32%. Sebaliknya, ketika analisis statis kode sumber dan build sandbox runtime digabungkan ke dalam agen pengujian otomatis, line coverage pengujian regresi rata-rata mencapai 81% tanpa campur tangan manusia. Struktur di mana mesin mengawasi mesin jauh lebih ketat.
Untuk logika yang sulit dibandingkan satu per satu, seperti hasil terjemahan bahasa alami atau objek JSON dinamis, gunakan teknik LLM-as-a-Judge. Pasang framework seperti AgentProctor ke dalam infrastruktur pengujian dan masukkan templat kriteria evaluasi ke dalam model penilai. Jika model penilai dapat menentukan dengan tingkat kuantitatif apakah kode yang dikembalikan melanggar batasan keamanan, dan membangun guardrail (pagar pembatas) yang memblokir build jika tidak memenuhi standar, maka penderitaan manusia dalam memeriksa kode mentah dapat dihilangkan.
Semakin banyak kode yang ditulis oleh mesin, semakin banyak utang kognitif yang menumpuk di dalam sistem. Terjadilah situasi aneh di mana kode berjalan, tetapi tidak ada seorang pun yang tahu mengapa kode tersebut berjalan seperti itu. Karena alat AI hanya fokus menyelesaikan masalah lokal di depan mata, hal ini akan memakan biaya besar saat melakukan refactoring seluruh sistem beberapa bulan kemudian. Untuk melestarikan niat desain yang tersembunyi di balik basis kode, terapkan proses Agent Decision Record sebagai standar tim. Ini adalah pekerjaan untuk mencatat mengapa struktur tertentu dipilih dan alternatif apa yang dibuang dalam format yang dapat dibaca oleh mesin.
Karena ingatan manusia tidak bisa diandalkan, proses meninggalkan jejak bahwa kode dibuat oleh AI harus ditanamkan ke dalam pipeline otomatisasi pada riwayat commit. Dengan menggunakan alat seperti pustaka ekstensi git-ai, Anda dapat mencatat catatan kontribusi agen ke jalur metadata independen refs/notes/ai tanpa mengotori isi pesan commit. Tahapan pembangunan pipeline Git sangat jelas:
pre-commit hooks di lingkungan pengembangan lokal dan repositori server CI.AI-Footprint: model=gpt-4o) dan informasi rekan penulis ke dalam metadata.Dengan menumpuk metadata seperti ini, Anda dapat menarik statistik rantai pasokan secara real-time mengenai model AI versi mana yang secara intensif memproduksi cacat atau kerentanan keamanan tertentu di kemudian hari. Ini adalah pengaman untuk mencegah situasi neraka di mana Anda harus memeriksa puluhan ribu baris kode tanpa adanya dokumen serah terima.
Jika kode yang dibuat secara acak mulai menumpuk di antrean pull request, peninjauan kode manual akan lumpuh. Untuk menjaga produktivitas, proses peninjauan harus dibagi menjadi dua: gerbang umpan balik deterministik yang berpusat pada mesin dan penilaian dampak struktural yang berpusat pada manusia. Gerbang jaminan kualitas 3 tahap yang beroperasi segera setelah kode diunggah ke lingkungan CI adalah alternatifnya.
Pertama, sediakan gerbang linting super cepat yang menentukan validitas struktur sintaksis dan kecocokan type hint dalam waktu kurang dari 5 detik. Jika tersaring di sini, segera ditolak. Kedua, lakukan pengujian dampak selektif yang hanya menjalankan pengujian unit di sekitar area dampak dari file yang dimodifikasi, sekitar 2%. Ketiga, jika pengujian gagal, jalankan loop otomatisasi koreksi mandiri di mana stack error dikirim kembali ke agen sebagai konteks agar agen dapat memperbaiki sendiri hingga maksimal 2 kali.
Hanya potongan kode bersih yang berhasil melewati loop koreksi mandiri ini yang akan muncul di layar pengembang senior manusia. Peninjau manusia tidak perlu lagi membuang waktu mencari kesalahan ketik atau menunjukkan konvensi. Waktu insinyur senior harus digunakan hanya untuk kontrol makro: memeriksa apakah batas domain rusak karena kopling langsung antar komponen, memastikan back-pressure diterapkan untuk melindungi lapisan persistensi bawah saat lalu lintas melonjak, dan menganalisis struktur sistem serta ekonomi infrastruktur seperti overhead kinerja SQL N+1. Ini adalah satu-satunya cara untuk melindungi sistem produksi di tengah derasnya arus kode yang datang.