Rianshin

💻 맥미니 속 나만의 AI 코딩 비서! OpenJarvis로 로컬 소스코드 생성하기 본문

Develop

💻 맥미니 속 나만의 AI 코딩 비서! OpenJarvis로 로컬 소스코드 생성하기

RianShin 2026. 3. 25. 16:35
728x90
반응형
SMALL

지난 포스팅에서는 애플 실리콘 맥미니에 스탠퍼드의 로컬 AI 프레임워크인 **OpenJarvis(오픈자비스)**를 설치하는 방법을 알아보았습니다.

설치를 마쳤다면 이제 본격적으로 써먹어볼 차례겠죠? 개발자에게 AI의 가장 큰 쓸모는 단연 **'코드 생성(Code Generation)'**입니다. 하지만 회사 코드를 외부 클라우드 기반 AI(ChatGPT, Claude 등)에 그대로 복사해서 붙여넣기에는 보안 유출 걱정이 앞서는 것이 사실입니다.

오늘은 100% 내 맥미니에서 오프라인으로 돌아가는 OpenJarvis를 활용해, 보안 걱정 없이 안전하고 빠르게 소스코드를 생성하는 방법과 실전 활용 예시를 자세히 알아보겠습니다. 🚀


🛡️ 왜 '로컬 AI'로 코딩해야 할까?

OpenJarvis를 활용한 로컬 코드 생성은 다음과 같은 강력한 장점이 있습니다.

  1. 완벽한 보안 (Privacy First): 작성 중인 소스코드나 회사의 데이터베이스 스키마를 외부 서버로 전송하지 않습니다. 모든 추론은 내 기기 내부에서만 이루어집니다.
  2. 무제한 무료 사용: API 호출 비용이나 월 구독료 걱정 없이, 수백 번이고 코드를 리팩토링하고 질문할 수 있습니다.
  3. 오프라인 동작: 인터넷이 끊긴 비행기 안이나 보안이 철저한 폐쇄망 환경에서도 나만의 AI 비서와 페어 프로그래밍이 가능합니다.

🚀 실전! OpenJarvis 소스코드 생성 예시

OpenJarvis는 터미널 기반의 대화형 인터페이스를 제공하여 즉각적인 코드 스니펫 생성이 가능합니다. 실무에서 자주 쓰이는 스택들을 예시로, OpenJarvis에게 어떻게 질문하고 어떤 코드를 받을 수 있는지 살펴보겠습니다.

1. 백엔드: Java & Spring Boot REST API 생성

새로운 기능을 개발할 때 반복적인 보일러플레이트 코드를 작성하는 것은 꽤나 번거로운 일입니다. 이럴 때 OpenJarvis에게 뼈대 생성을 맡겨보세요.

💻 내 질문 (터미널 입력):

uv run jarvis ask "Java Spring Boot를 사용해서 사용자(User) 정보를 조회하고 생성하는 간단한 REST API Controller 코드를 작성해줘. JPA를 사용한다고 가정해."

🤖 OpenJarvis의 답변 (예시):

Java
@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);
    }
}

💡 팁: 프롬프트에 @RequiredArgsConstructorResponseEntity 같은 구체적인 선호 스타일을 명시하면 훨씬 실무에 가까운 코드를 뽑아줍니다.

2. 프론트엔드/모바일: React Native (Expo) UI 컴포넌트 만들기

모바일 앱 화면을 구성할 때 UI 레이아웃을 잡는 과정도 AI의 도움을 받으면 순식간입니다.

💻 내 질문 (터미널 입력):

uv run jarvis ask "React Native와 Expo를 사용해서 모바일 앱의 로그인 화면 컴포넌트를 만들어줘. 이메일과 비밀번호 입력창이 있고, 아래에 로그인 버튼이 있어야 해. 스타일은 StyleSheet를 사용해서 깔끔하게 구성해줘."

🤖 OpenJarvis의 답변 (예시):

JavaScript
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의 답변 (예시):

SQL
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 인젝션 등)이나 성능 개선 포인트가 있는지 리뷰해 줘"라고 요청하여 셀프 코드 리뷰를 진행할 수 있습니다.
728x90
반응형
LIST
Comments