| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- window
- 오픈워터
- 다이빙
- 취미
- 공략
- docker
- PostgreSQL
- 엘든링
- 야생의숨결
- poe2
- Linux
- 어드벤스
- 뱀파이어서바이벌
- JS
- 안드로이드
- 게임
- 여행
- 씨홀스
- window11
- JavaScript
- 젤다의전설
- Front-end
- 개발툴
- ubuntu
- WebView
- window10
- guide
- 스쿠버다이빙
- 세부
- intellij
- Today
- Total
Rianshin
💻 맥미니 속 나만의 AI 코딩 비서! OpenJarvis로 로컬 소스코드 생성하기 본문
지난 포스팅에서는 애플 실리콘 맥미니에 스탠퍼드의 로컬 AI 프레임워크인 **OpenJarvis(오픈자비스)**를 설치하는 방법을 알아보았습니다.
설치를 마쳤다면 이제 본격적으로 써먹어볼 차례겠죠? 개발자에게 AI의 가장 큰 쓸모는 단연 **'코드 생성(Code Generation)'**입니다. 하지만 회사 코드를 외부 클라우드 기반 AI(ChatGPT, Claude 등)에 그대로 복사해서 붙여넣기에는 보안 유출 걱정이 앞서는 것이 사실입니다.
오늘은 100% 내 맥미니에서 오프라인으로 돌아가는 OpenJarvis를 활용해, 보안 걱정 없이 안전하고 빠르게 소스코드를 생성하는 방법과 실전 활용 예시를 자세히 알아보겠습니다. 🚀
🛡️ 왜 '로컬 AI'로 코딩해야 할까?
OpenJarvis를 활용한 로컬 코드 생성은 다음과 같은 강력한 장점이 있습니다.
- 완벽한 보안 (Privacy First): 작성 중인 소스코드나 회사의 데이터베이스 스키마를 외부 서버로 전송하지 않습니다. 모든 추론은 내 기기 내부에서만 이루어집니다.
- 무제한 무료 사용: API 호출 비용이나 월 구독료 걱정 없이, 수백 번이고 코드를 리팩토링하고 질문할 수 있습니다.
- 오프라인 동작: 인터넷이 끊긴 비행기 안이나 보안이 철저한 폐쇄망 환경에서도 나만의 AI 비서와 페어 프로그래밍이 가능합니다.
🚀 실전! OpenJarvis 소스코드 생성 예시
OpenJarvis는 터미널 기반의 대화형 인터페이스를 제공하여 즉각적인 코드 스니펫 생성이 가능합니다. 실무에서 자주 쓰이는 스택들을 예시로, OpenJarvis에게 어떻게 질문하고 어떤 코드를 받을 수 있는지 살펴보겠습니다.
1. 백엔드: Java & Spring Boot REST API 생성
새로운 기능을 개발할 때 반복적인 보일러플레이트 코드를 작성하는 것은 꽤나 번거로운 일입니다. 이럴 때 OpenJarvis에게 뼈대 생성을 맡겨보세요.
💻 내 질문 (터미널 입력):
uv run jarvis ask "Java Spring Boot를 사용해서 사용자(User) 정보를 조회하고 생성하는 간단한 REST API Controller 코드를 작성해줘. JPA를 사용한다고 가정해."
🤖 OpenJarvis의 답변 (예시):
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping("/{id}")
public ResponseEntity<UserDto> getUserById(@PathVariable Long id) {
UserDto user = userService.findById(id);
return ResponseEntity.ok(user);
}
@PostMapping
public ResponseEntity<UserDto> createUser(@RequestBody UserCreateRequest request) {
UserDto createdUser = userService.createUser(request);
return ResponseEntity.status(HttpStatus.CREATED).body(createdUser);
}
}
💡 팁: 프롬프트에 @RequiredArgsConstructor나 ResponseEntity 같은 구체적인 선호 스타일을 명시하면 훨씬 실무에 가까운 코드를 뽑아줍니다.
2. 프론트엔드/모바일: React Native (Expo) UI 컴포넌트 만들기
모바일 앱 화면을 구성할 때 UI 레이아웃을 잡는 과정도 AI의 도움을 받으면 순식간입니다.
💻 내 질문 (터미널 입력):
uv run jarvis ask "React Native와 Expo를 사용해서 모바일 앱의 로그인 화면 컴포넌트를 만들어줘. 이메일과 비밀번호 입력창이 있고, 아래에 로그인 버튼이 있어야 해. 스타일은 StyleSheet를 사용해서 깔끔하게 구성해줘."
🤖 OpenJarvis의 답변 (예시):
import React, { useState } from 'react';
import { View, TextInput, TouchableOpacity, Text, StyleSheet } from 'react-native';
export default function LoginScreen() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const handleLogin = () => {
console.log('Login attempt:', email);
// 로그인 로직 구현
};
return (
<View style={styles.container}>
<Text style={styles.title}>Welcome Back!</Text>
<TextInput
style={styles.input}
placeholder="Email"
value={email}
onChangeText={setEmail}
keyboardType="email-address"
autoCapitalize="none"
/>
<TextInput
style={styles.input}
placeholder="Password"
value={password}
onChangeText={setPassword}
secureTextEntry
/>
<TouchableOpacity style={styles.button} onPress={handleLogin}>
<Text style={styles.buttonText}>Login</Text>
</TouchableOpacity>
</View>
);
}
// ... (하단 StyleSheet 코드 생성됨)
3. 데이터베이스: 복잡한 SQL 쿼리 작성 (MariaDB / MySQL)
가끔 머릿속이 하얘지는 복잡한 JOIN 쿼리나 통계용 쿼리를 짤 때도 유용합니다. 테이블 구조만 알려주면 알아서 쿼리를 작성해 줍니다.
💻 내 질문 (터미널 입력):
uv run jarvis ask "MariaDB를 쓰고 있어. 'orders' 테이블과 'users' 테이블이 있는데, 최근 한 달 동안 3번 이상 주문한 VIP 고객의 이름과 총 주문 금액을 구하는 쿼리를 짜줘. 구매 금액(amount) 내림차순으로 정렬해."
🤖 OpenJarvis의 답변 (예시):
SELECT
u.name,
SUM(o.amount) AS total_amount,
COUNT(o.order_id) AS order_count
FROM users u
JOIN orders o ON u.user_id = o.user_id
WHERE o.order_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY u.user_id, u.name
HAVING COUNT(o.order_id) >= 3
ORDER BY total_amount DESC;
💡 코딩 성능을 200% 끌어올리는 프롬프팅 팁
단순히 "코드 짜줘"라고 하는 것보다, OpenJarvis에게 **현재 프로젝트의 맥락(Context)**을 함께 전달하면 훨씬 훌륭한 결과물이 나옵니다.
- 에러 해결하기: 발생한 에러 로그와 해당 부분의 코드를 함께 복사해서 붙여넣고 "이 에러의 원인과 해결 방법을 설명해 줘"라고 요청해 보세요.
- 주석 자동 생성: 완성된 함수 코드를 던져주고 "이 코드에 JavaDoc(또는 JSDoc) 표준에 맞춰서 상세한 주석을 달아줘"라고 요청하면 훌륭한 문서화 도구가 됩니다.
- 코드 리뷰: "이 코드에서 보안 취약점(예: SQL 인젝션 등)이나 성능 개선 포인트가 있는지 리뷰해 줘"라고 요청하여 셀프 코드 리뷰를 진행할 수 있습니다.
'Develop' 카테고리의 다른 글
| [iPTIME NAS4] 안녕, 나의 디지털 금고... iPTIME NAS4 수리 불가 판정을 받고 (feat. 단종의 슬픔) (3) | 2026.03.23 |
|---|---|
| 🍎 맥미니를 나만의 전용 AI 서버로! 스탠퍼드 'OpenJarvis' 완벽 설치 가이드 (0) | 2026.03.18 |
| 🖥️🚀 맥미니를 AI 개인 비서로: 몰트봇(Moltbot) 설치 및 운영 완벽 가이드 (0) | 2026.02.10 |
| [개발자 실험] 대용량 CSV 처리, 자바가 무조건 더 빠를까? (메모리 vs 속도 진실 게임) (0) | 2026.02.10 |
| [개발자 노트] 대용량 데이터 처리, 자바(Java) vs 파이썬(Python) 메모리 승자는? (0) | 2026.02.10 |