llm-evaluation
Implement comprehensive evaluation strategies for LLM applications using automated metrics, human feedback, and benchmarking. Use when testing LLM performance, measuring AI application quality, or establishing evaluation frameworks.
language-support
Multi-language development support
Full skill instructions
버전: 1.0.0
검증 환경: Ubuntu 24.04 LTS (Claude Code)
최종 수정: 2025-01-XX
대상 언어: C#, Swift, Ruby, PHP, R, Perl
Claude Code의 Linux 환경에서 부분 지원 언어를 완전 지원 수준으로 전환하는 종합 가이드입니다.
| 언어 | 버전 | 설치 방법 | 소요 시간 | 난이도 |
|---|---|---|---|---|
| C# | .NET 8.0 | apt | ~2분 | 🟢 쉬움 |
| Swift | 5.10 | 수동 | ~8분 | 🟠 어려움 |
| Ruby | 3.3 | RVM/apt | ~5분 | 🟡 중간 |
| PHP | 8.3 | apt | ~1분 | 🟢 쉬움 |
| R | 4.4 | apt+저장소 | ~3분 | 🟡 중간 |
| Perl | 5.38 | 기본 포함 | 0분 | 🟢 쉬움 |
이 스킬을 사용해야 하는 경우:
# .NET 8.0 SDK 설치 (공식 Microsoft 저장소)
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0
# 확인
dotnet --version # 출력: 8.0.xxx
# 콘솔 앱
dotnet new console -n MyConsoleApp
cd MyConsoleApp
dotnet run
# ASP.NET Core 웹 API
dotnet new webapi -n MyWebApi
cd MyWebApi
dotnet run # http://localhost:5000
// Program.cs
using System;
using System.Linq;
Console.WriteLine("Hello from C# on Linux!");
// LINQ 예제
var numbers = new[] { 1, 2, 3, 4, 5 };
var squares = numbers.Select(n => n * n);
Console.WriteLine($"Squares: {string.Join(", ", squares)}");
# GPG 키 추가
sudo apt install gnupg ca-certificates
sudo gpg --homedir /tmp --no-default-keyring \
--keyring /usr/share/keyrings/mono-official-archive-keyring.gpg \
--keyserver hkp://keyserver.ubuntu.com:80 \
--recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
# Mono 저장소 추가
echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | \
sudo tee /etc/apt/sources.list.d/mono-official-stable.list
# 설치
sudo apt update
sudo apt install mono-complete
# 확인
mono --version
# 실행
mono MyApp.exe
sudo apt-get install \
binutils \
git \
gnupg2 \
libc6-dev \
libcurl4-openssl-dev \
libedit2 \
libgcc-11-dev \
libpython3-dev \
libsqlite3-0 \
libstdc++-11-dev \
libxml2-dev \
libz3-dev \
pkg-config \
tzdata \
unzip \
zlib1g-dev
# 다운로드 (Ubuntu 24.04 전용)
cd /tmp
wget https://download.swift.org/swift-5.10-release/ubuntu2404/swift-5.10-RELEASE/swift-5.10-RELEASE-ubuntu24.04.tar.gz
# 압축 해제
tar xzf swift-5.10-RELEASE-ubuntu24.04.tar.gz -C /home/claude/
# PATH 설정
export PATH="/home/claude/swift-5.10-RELEASE-ubuntu24.04/usr/bin:$PATH"
# .bashrc에 영구 저장
echo 'export PATH="/home/claude/swift-5.10-RELEASE-ubuntu24.04/usr/bin:$PATH"' >> ~/.bashrc
# 확인
swift --version
# 실행 가능한 앱
mkdir MySwiftApp
cd MySwiftApp
swift package init --type executable
# 빌드 & 실행
swift build
swift run
// swift-tools-version: 5.10
import PackageDescription
let package = Package(
name: "MySwiftApp",
platforms: [
.macOS(.v13),
.linux
],
dependencies: [
.package(url: "https://github.com/apple/swift-nio.git", from: "2.65.0")
],
targets: [
.executableTarget(
name: "MySwiftApp",
dependencies: [
.product(name: "NIO", package: "swift-nio")
]
)
]
)
// Sources/MySwiftApp/main.swift
import Foundation
print("Hello from Swift on Linux!")
// 배열 처리
let numbers = [1, 2, 3, 4, 5]
let squares = numbers.map { $0 * $0 }
print("Squares: \(squares)")
// 비동기 예제
Task {
try await Task.sleep(nanoseconds: 1_000_000_000)
print("1 second passed")
}
// 메인 스레드 유지
RunLoop.main.run(until: Date(timeIntervalSinceNow: 2))
# RVM 설치
curl -sSL https://get.rvm.io | bash -s stable
# RVM 활성화
source ~/.rvm/scripts/rvm
# Ruby 3.3.0 설치
rvm install 3.3.0
rvm use 3.3.0 --default
# 확인
ruby --version # ruby 3.3.0
gem --version # 3.5.x
sudo apt-get install ruby-full
ruby --version # ruby 3.2.x (Ubuntu 24 기본)
gem install bundler
# Rails 설치
gem install rails
# 프로젝트 생성
rails new myapp --database=sqlite3
cd myapp
# 의존성 설치
bundle install
# 서버 실행
rails server # http://localhost:3000
# hello.rb
puts "Hello from Ruby on Linux!"
# 배열 처리
numbers = [1, 2, 3, 4, 5]
squares = numbers.map { |n| n * n }
puts "Squares: #{squares.inspect}"
# 클래스 예제
class Greeter
def initialize(name)
@name = name
end
def greet
"Hello, #{@name}!"
end
end
greeter = Greeter.new("Claude")
puts greeter.greet
# 실행: ruby hello.rb
# Gemfile
source 'https://rubygems.org'
gem 'sinatra', '~> 3.1'
gem 'rack', '~> 3.0'
gem 'puma', '~> 6.4'
# 설치: bundle install
# PHP 8.3 설치 (Ubuntu 24 기본)
sudo apt-get install php8.3 php8.3-cli php8.3-common php8.3-mbstring php8.3-xml php8.3-curl
# 확인
php --version # PHP 8.3.x
# Composer 설치
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm composer-setup.php
# 확인
composer --version
# Laravel 설치
composer create-project laravel/laravel myapp
cd myapp
# 개발 서버 실행
php artisan serve # http://localhost:8000
<?php
// hello.php
echo "Hello from PHP on Linux!\n";
// 배열 처리
$numbers = [1, 2, 3, 4, 5];
$squares = array_map(fn($n) => $n * $n, $numbers);
echo "Squares: " . implode(", ", $squares) . "\n";
// 클래스 예제
class Greeter {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function greet() {
return "Hello, {$this->name}!";
}
}
$greeter = new Greeter("Claude");
echo $greeter->greet() . "\n";
// 실행: php hello.php
# public 디렉토리 서빙
php -S localhost:8000 -t public/
# 단순 스크립트 서빙
php -S localhost:8000
{
"require": {
"php": "^8.3",
"symfony/http-foundation": "^6.4",
"guzzlehttp/guzzle": "^7.8"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
# 의존성 설치
sudo apt update -qq
sudo apt install --no-install-recommends software-properties-common dirmngr
# CRAN 저장소 추가
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
# R 설치
sudo apt install r-base r-base-dev
# 확인
R --version # R version 4.4.0
# R 실행
R
# R 콘솔에서
install.packages("tidyverse")
install.packages("ggplot2")
install.packages("dplyr")
install.packages("readr")
# 종료: q()
# hello.R
print("Hello from R on Linux!")
# 벡터 처리
numbers <- c(1, 2, 3, 4, 5)
squares <- numbers ^ 2
print(paste("Squares:", paste(squares, collapse=", ")))
# 데이터프레임 예제
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
score = c(85, 92, 88)
)
print(df)
# tidyverse 사용
library(dplyr)
result <- df %>%
filter(age > 28) %>%
select(name, score)
print(result)
# 실행: Rscript hello.R
# plot.R
library(ggplot2)
# 샘플 데이터
data <- data.frame(
x = 1:10,
y = (1:10)^2
)
# 그래프 생성 및 저장
p <- ggplot(data, aes(x=x, y=y)) +
geom_line(color="blue", size=1) +
geom_point(color="red", size=3) +
labs(title="Square Numbers", x="Number", y="Square")
ggsave("plot.png", plot=p, width=8, height=6)
print("Plot saved to plot.png")
# 실행: Rscript plot.R
perl --version # perl 5.38.2
# cpanminus 설치 (모듈 관리자)
sudo apt-get install cpanminus
# 모듈 설치 예시
cpanm Mojolicious
cpanm DBI
cpanm LWP::UserAgent
#!/usr/bin/env perl
use strict;
use warnings;
use v5.38;
say "Hello from Perl on Linux!";
# 배열 처리
my @numbers = (1, 2, 3, 4, 5);
my @squares = map { $_ * $_ } @numbers;
say "Squares: " . join(", ", @squares);
# 해시 예제
my %person = (
name => "Alice",
age => 30,
city => "Seoul"
);
say "Name: $person{name}, Age: $person{age}";
# 실행: perl hello.pl
# 또는: chmod +x hello.pl && ./hello.pl
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/' => sub {
my $c = shift;
$c->render(text => 'Hello from Perl web app!');
};
app->start;
# 실행: perl myapp.pl daemon
# 접속: http://localhost:3000
모든 언어를 한 번에 테스트:
#!/bin/bash
# test_all_languages.sh
echo "=== Testing C# ==="
dotnet --version && echo "✅ C# OK" || echo "❌ C# Failed"
echo "=== Testing Swift ==="
swift --version && echo "✅ Swift OK" || echo "❌ Swift Failed"
echo "=== Testing Ruby ==="
ruby --version && echo "✅ Ruby OK" || echo "❌ Ruby Failed"
echo "=== Testing PHP ==="
php --version && echo "✅ PHP OK" || echo "❌ PHP Failed"
echo "=== Testing R ==="
R --version && echo "✅ R OK" || echo "❌ R Failed"
echo "=== Testing Perl ==="
perl --version && echo "✅ Perl OK" || echo "❌ Perl Failed"
# 실행: chmod +x test_all_languages.sh && ./test_all_languages.sh
# 1. 프로젝트 생성
dotnet new webapi -n MyApi
cd MyApi
# 2. 실행
dotnet run
# 3. 테스트 (다른 터미널)
curl http://localhost:5000/weatherforecast
# 4. 릴리즈 빌드
dotnet publish -c Release -o ./publish
# 1. Vapor 설치
git clone https://github.com/vapor/template.git my-vapor-app
cd my-vapor-app
# 2. 빌드
swift build
# 3. 실행
swift run
# 4. 테스트
curl http://localhost:8080
# 1. Rails 앱 생성
rails new blog
cd blog
# 2. 스캐폴드 생성
rails generate scaffold Post title:string body:text
# 3. 마이그레이션
rails db:migrate
# 4. 서버 실행
rails server
# 5. 테스트
curl http://localhost:3000/posts
원인: PATH 설정 누락
해결:
# 현재 세션 임시 설정
export PATH="/설치/경로/bin:$PATH"
# 영구 설정
echo 'export PATH="/설치/경로/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 확인
which [command]
원인: 저장소 업데이트 필요
해결:
# 저장소 업데이트
sudo apt-get update
# 캐시 정리
sudo apt-get clean
sudo apt-get autoclean
# 재시도
sudo apt-get install [package]
원인: 여러 버전 동시 설치
해결:
# 설치된 모든 버전 확인
which -a [command]
# 버전 관리 도구 사용 (Ruby 예시)
rvm use 3.3.0
# 또는 특정 경로 우선순위
export PATH="/원하는/버전/경로:$PATH"
원인: Claude Code는 제한된 sudo 권한
해결:
# sudo 없이 가능한 대안 찾기
# 예: RVM으로 Ruby 설치 (sudo 불필요)
curl -sSL https://get.rvm.io | bash
# 사용자 디렉토리에 설치
./configure --prefix=$HOME/local
make && make install
원인: 일부 URL 접근 제한
해결:
# 허용된 공식 URL 사용
# Swift: https://download.swift.org (허용)
# Ruby: https://get.rvm.io (허용)
# 기타: 공식 apt 저장소 사용
# 누락된 패키지 설치
sudo apt-get install libpython3-dev
# Swift 재설치
rm -rf ~/swift-5.10-*
# (위 설치 과정 반복)
# 네이티브 확장 컴파일 도구 설치
sudo apt-get install build-essential
# 재시도
gem install [gem-name]
# 한국 미러 사용
composer config -g repos.packagist composer https://packagist.kr
# 병렬 다운로드 활성화
composer global require hirak/prestissimo
# 컴파일 도구 설치
sudo apt-get install build-essential gfortran
# R 재시작 후 재시도
R
> install.packages("tidyverse")
보안
성능
유지보수
위험
비효율
호환성
# AOT(Ahead-of-Time) 컴파일
dotnet publish -c Release -r linux-x64 --self-contained
# 트리밍 (사용하지 않는 코드 제거)
dotnet publish -c Release -p:PublishTrimmed=true
# 릴리즈 빌드 (최적화 레벨 -O)
swift build -c release
# 크기 최적화
swift build -c release -Xswiftc -O -Xswiftc -wmo
# MJIT 활성화 (Ruby 3.x)
ruby --jit script.rb
# 메모리 프로파일링
ruby --jit-verbose=1 script.rb
# OPcache 활성화
php -d opcache.enable_cli=1 script.php
# JIT 활성화 (PHP 8.0+)
php -d opcache.jit=tracing -d opcache.jit_buffer_size=100M script.php
# 벡터화 사용 (10-100배 빠름)
result <- sapply(1:1000000, function(x) x * 2) # 느림
result <- (1:1000000) * 2 # 빠름
# 병렬 처리
library(parallel)
cl <- makeCluster(detectCores())
result <- parSapply(cl, 1:1000000, function(x) x * 2)
stopCluster(cl)
이 스킬을 사용하면 Claude Code에서 "부분 지원" 언어를 실질적으로 "완전 지원" 수준으로 사용할 수 있습니다!
Happy Coding! 🚀
Implement comprehensive evaluation strategies for LLM applications using automated metrics, human feedback, and benchmarking. Use when testing LLM performance, measuring AI application quality, or establishing evaluation frameworks.
Use when completing tasks, implementing major features, or before merging to verify work meets requirements - dispatches superpowers:code-reviewer subagent to review implementation against plan or requirements before proceeding
Access USPTO APIs for patent/trademark searches, examination history (PEDS), assignments, citations, office actions, TSDR, for IP analysis and prior art searches.
Write scientific manuscripts. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), abstracts, for research papers and journal submissions.
Direct REST API access to KEGG (academic use only). Pathway analysis, gene-pathway mapping, metabolic pathways, drug interactions, ID conversion. For Python workflows with multiple databases, prefer bioservices. Use this for direct HTTP/REST work or KEGG-specific control.
Execute database migrations across ORMs and platforms with zero-downtime strategies, data transformation, and rollback procedures. Use when migrating databases, changing schemas, performing data transformations, or implementing zero-downtime deployment strategies.
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident ...
Analyze meeting transcripts to extract action items, decisions, key points, and generate summaries
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable ...
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias ...
Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries. Use when debugging slow queries, designing database schemas, or optimizing application performance.
Diffusion-based molecular docking. Predict protein-ligand binding poses from PDB/SMILES, confidence scores, virtual screening, for structure-based drug design. Not for affinity prediction.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience