검색

2026년 3월 5일

사용기 - 윈도우에서 AI 코딩 사용하기

코딩 AI는 단순한 자동완성이 아니라 개발 작업 자체를 수행하는 에이전트이다. AI Agent 기반 개발에서 개발자의 역할이 코더 → 아키텍트로 변화하게 된다.

WSL 환경 설치하기 

윈도우에서 "PowerShell" 을  검색창에 입력하면 설치된 경우 PowerShell 터미널을 그렇지 않는 경우는  설치를 위한 Microsoft Store 로 이동한다. 설치를 완료하면 열기 버튼이 활성화 되는데 이를 클릭해도 "PoswerShell" 이 실행된다.


코딩 에이전트(Codex CLI 같은 것)나 레포 자동 빌드/테스트는 윈도우보다 리눅스 환경이 명령 실행/경로/권한 문제가 적어서 안정적이라고 한다. 이런 이유에서 코딩 에어전트 이용을 위해서는 “윈도우에선 WSL2(Windows Subsystem for Linux 2) 권장” 이 자주 언급된다.

 설치 여부는 " wsl -l -v" 명령을 PowerShell 에 입력하여 확인 할수 있다.

wsl --status

wsl -l -v


가장 쉬운 설치 방법은 "PowerShell" 을 관리자 계정으로 실행하고  "wsl --install" 명령으로 설치 할 수 있다.  특정 배포판 설치도 가능한데 설치 가능 배포한 목록은 "wsl --list --online" 명령으로 확인 가능하다. 이때 wsl 이 설치되어 있지 않았다면 자동 설치한다.


명령을 실행해보면 상당한 수의 배폰본은 지원하고 있음을 알 수 있다. 보통은 우분투를 가장 많이 사용한다고 하며 디폴터 설치 배포본 역시 우분투이다.


설치 전에 상태 확인이 필요한데 " wsl --status" 명령으로 확인 할 수 있다. 


WSL1(리눅스 명령을 윈도우가 번역하여 수행), WSL2 (가상화를 통한 리눅스 지원) 에 대한 활성화 작업이 필요하다. 지금 위의 환경에서는 모두 비활성화 상태이다.

활성화는 PowerShell 을 관리자 권한으로 실행하고 아래 명령을 입력하면 된다.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

또는 시작 메뉴에서 "Windows 기능 켜기/끄기 를 실행하고 아래 기능을 채크 한다음 윈도우를 재시작 한다.

  • 가상 머신 플랫폼(Virtual Machine Platform)
  • Linux용 Windows 하위 시스템(Windows Subsystem for Linux)

설치는 PowerShell 을 관리자 권한으로 실행하고  "wsl --install" , "wsl --install -d Ubuntu" 명령으로 할 수 있다. 


설치가 완료되면 계정 생성을 진행하게 된다.  계정생성이 완료되면 가장 먼저 시스템을 업데이트 한다.
sudo apt update
sudo apt upgrade -y


WSL 환경에서 개발 도구 설치하기 

다음 단계는 AI Agent 기반 개발 환경을 만들기 위한 개발 툴 체인을 설치하는 것이다.

1) 기본 시스템 도구
항목설치 목적설치 명령확인 명령
curlAPI 호출 및 다운로드sudo apt install -y curlcurl --version
wget파일 다운로드sudo apt install -y wgetwget --version
unzip / zip압축 파일 처리sudo apt install -y unzip zip
git소스 코드 버전 관리sudo apt install -y gitgit --version

2) 자바 개발 환경
항목설치 목적설치 명령확인 명령
OpenJDK 17자바 실행 환경sudo apt install -y openjdk-17-jdkjava -version
GradleJava 빌드 도구sudo apt install -y gradlegradle -v

3) AI 코딩 Agent
항목설치 목적설치 명령확인 명령
Codex CLIAI 코드 생성 및 수정npm install -g @openai/codexcodex --help
AiderAI 코드 수정 도구pip install aider-chataider --help

DE(VS Code)에서 Codex Agent를 설치한다면 WSL에 Codex CLI를 반드시 설치할 필요는 없지만 CLI 가 할 수 있는 작업이 더 많기 때문에 보통은 같이 사용한다. (npm 이 디폴트로 설치되어 있지 않아 sudo apt intall -y npm 명령으로 설치가 필요하다.)

추가로 Ubuntu 22.04 이후부터는 직접 시스템에서 사용하는 Python 을 변경하지 못하게 막고 있어 pipx 사용이 가장 안전한 방법이다. 
sudo apt update
sudo apt install -y pipx python3-venv
pipx ensurepath
터미널을 다시 실행하고 aider 을 설치한다. 
pipx install aider-chat
다음으로 자신의 환경에 필요한 빌드 도구를 설치한다.  Visual Studio Code는  https://code.visualstudio.com/ 에서 다운로드하여 설치 할 수 있다.


IED 도구 vscode 을 사용 중이라면 WSL 확장을 아래 명령으로 설치하고  PowerShell 에서 프로젝트 로 이동하고 code . 을 입력하여 VS 코드 리눅스 환경에서 실행할 수 있다.   
code --install-extension ms-vscode-remote.remote-wsl
VSCode 에서 Extenctions (Ctrl+Shift+X) 를 크릭하여 wsl 을 검색하여 설치할 수 도 있다.


VSCode 기반의 AI 코딩을 위해서 아래의 확장들은 거의 필수이다. (AI Agent 만 선택)

① Remote - WSL
② GitLens  , SVN (vscode-svn extension)
OpenAI Codex (선택)
GitHub Copilot (선택)
Docker
⑥ 기타 : Gradle for Java 

AI 코딩 시작하기

먼저 레파지토리에서 프로젝트를 가져온다. WSL 환경에 소스를 가져와야 하기 때문에 workspace 폴더를 생성하고 여기에서 다음 명령으로 소스를 가져온다. 
  1. GitLab 프로젝트 페이지 → Clone 버튼에서 URL을 복사
  2. git clone <HTTPS_URL>

이제 VS 코드를 실행하고 Ctrl + Shift + P 을 입력하여 명령 팔레트를 열고 WSL 을 입력하여 명령 목록에서 클릭하여 WSL환경에 연결한다.  


이제 폴더를 열면 된다. 보통은 "Do you trust the authors of this workspace?" 메시지가 나오는데 신뢰한다고 답을 하면 된다.

이제 좌측 아이콘에서 Codex 클릭하고 로그인 / 인증키 입력 한다. CLI와 IDE 확장은 동일한 로그인 정보를 공유하도록 설계되어 있어 터미널에서도 CLI 을 사용이 가능하다.

터미널에서 codex 을 실행하고 다음에 아래와 같은 간단한 명령으로 코드를 리뷰하게 할 수 있다.
"review this code focusing on security issues" 

파일 관리를 좀더 윈도우 처럼 하고 싶다면 explorer.exe . 명령으로 탐색기로 리눅스 파일시스템을 확인 할 수 있다.




2025년 5월 5일

2012 맥미니 "초기 설정값으로 재설정" 하기

2012 맥미니에 설치된 macOS 을  "초기 설정값으로 재설정" 하여 파일 공유 서버로 용도로 재활용하기로 했다. 가능한 리모트 방식으로 진행하였지만 마지막 작업은 모니터, 마우스 그리고 키보드를 직결하여 마무리 했다. 

macOS Catalina 다운로드 

앱스토어를 통한 다운로드는 불가능하기 떄문에 콘솔에서 10.15.7 버전을 다운로드 했다. 
  • macOS Catalina와 호환되는 컴퓨터 자료를 보면  Mac mini(2012년 후반 모델) 지원하는 macOS 임을 확인할 수 있다.
  • Catalina 는 22년 7월에 배포된 10.15.7 이 최신 버전이다. 같은 해 11월부터 공식 지원이 종료되어 더 이상 보안 업데이트나 기능 개선이 제공되지 않는다.

softwareupdate --fetch-full-installer --full-installer-version 10.15.7


다운로드가 완료되면 아래 명령으로 다운로드가 완료된 파일을 확인할 수 있다.

ls -l /Applications/Install\ macOS\ Catalina.app

또는

/Applications/Install\ macOS\ Catalina.app/Contents/Resources/startosinstall --usage


macOS Catalina 설치 

기존 데이터를 모두 삭제하고 설치하도록 아래 명령을 입력한다.

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/startosinstall \

  --eraseinstall \

  --agreetolicense \

  --nointeraction


설치가 진행되면 더이상 리모트로 접속이 허용되지 않고 직접 맥미니에 키보드와 마우스를 연결하여 진행을 해야한다. 




2025년 3월 17일

사용기 - 맥에서 도커 기반 SonarQube 활용하기

SonarQube는 코드에 대한 버그, 코드 스멜(Code Smell), 보안 취약점을 자동으로 찾아내고, 코드 품질을 향상시키는 데 도움을 주는 소스 코드 품질 및 보안 분석 도구이다.

버전에 따라 기능의 차이가 있는데 Community Edition (무료) 은  GitHub Private Repository 연동을 지원하지는 않지만 Git 에서 직접 코드를 가져와 분석할 수 있기 때문에 사용하는데 있어 큰 이슈는 없을 것 같다.

버전

특징

GitHub Private Repo 분석

Community Edition

무료, 기본적인 코드 분석 가능

✗ (직접 클론 후 분석)

Developer Edition

추가적인 언어 지원, 분기(branch) 분석

Enterprise Edition

대규모 프로젝트 지원, 포트폴리오 관리


◼︎ 환경

  • Model : MacBook Pro (14-inch, 2021)
  • CPU : Apple M1 Pro
  • MENORY : 16GB
  • DISK : 512 GB SSD
  • OS : macOS 15.3.1 (24D70)
  • TOOLS : VS Code , Docker

1. Docker 설치

Docker 는 공식 웹사이트에서 Docker Desktop for Mac을 다운로드하여 설치한다.


https://www.docker.com/products/docker-desktop

설치파일을 다운로드 후 Docker.dmg 파일을 클릭하여 설치를 진행할 수 있다. 설치가 완료되면 터미널에서 docker --version 명력을 입력하여 설치 확인한다.


% docker --version
Docker version 27.5.1, build 9f9e405


2. SonarQube Community Edition 설치하기

SonarQube 는 간단하게 터미널에서 아래 명령으로 SonarSource에서 공식적으로 제공하는 이미지를 다운로드하여 설치하고 실행할 수 있다.  SonarQube 는 디폴트로 사용하는 H2 데이터베이스 보다는  postgres 사용을 권장하고 있어 먼저 postgres 데이터베이스를 설치하고 같이 실행할 필요가 있다.

docker run -d --name sonarqube -p 9000:9000 sonarqube:lts-community

SonarQube는 여러 버전의 Docker 이미지를 제공하고 있다. 

태그(Tag)

설명

sonarqube:latest

최신 안정 버전

sonarqube:lts

최신 LTS (Long-Term Support) 버전

sonarqube:lts-community

무료 Community Edition LTS 버전

sonarqube:developer

Developer Edition (유료)

sonarqube:enterprise

Enterprise Edition (유료)

sonarqube:datacenter

Data Center Edition (유료)



postgres는 터미널에 아래와 같이 한 줄 명령어로 postgres 를 설치&실행 할 수 있다. 

docker run -d --name postgres \
  -e POSTGRES_USER=sonar \
  -e POSTGRES_PASSWORD=sonar \
  -e POSTGRES_DB=sonarqube \
  -p 5432:5432 \
  postgres:16

참고로 PostgreSQL 공식 Docker 이미지는 다양한 버전이 있는데 여기에서는 16 을 사용했다. 

태그 (Tag)

의미

postgres:latest

최신 안정 버전 (현재 기준 PostgreSQL 16)

postgres:16

PostgreSQL 16.x

postgres:15

PostgreSQL 15.x

postgres:14

PostgreSQL 14.x

postgres:13

PostgreSQL 13.x


이제 SonarQube 을 앞서 실행한 postres 와 함께 설치&실행 해보자.

docker run -d --name sonarqube \
  -p 9000:9000 \
  --link postgres \
  -e SONAR_JDBC_URL=jdbc:postgresql://postgres:5432/sonarqube \
  -e SONAR_JDBC_USERNAME=sonar \
  -e SONAR_JDBC_PASSWORD=sonar \
 sonarqube:lts-community

옵션

설명

docker run

새로운 컨테이너를 실행하는 명령

-d

컨테이너를 백그라운드(Detached Mode)에서 실행

--name sonarqube

컨테이너 이름을 sonarqube로 지정

-p 9000:9000

호스트의 9000번 포트를 컨테이너의 9000번 포트와 연결 (SonarQube 웹 UI)

--link postgre-container

SonarQube가 postgre-container 컨테이너와 통신할 수 있도록 설정 (Deprecated - 다른 방법 권장)

-e SONAR_JDBC_URL=jdbc:postgresql://postgres:5432/sonarqube

SonarQube가 PostgreSQL 데이터베이스 sonarqube에 연결하도록 설정

-e SONAR_JDBC_USERNAME=sonar

PostgreSQL 접속 시 사용할 DB 사용자명 설정

-e SONAR_JDBC_PASSWORD=sonar

PostgreSQL 접속 시 사용할 DB 비밀번호 설정

sonarqube:lts-community

실행할 Docker 이미지 (sonarqube의 LTS 버전, 무료 Community Edition)


참고로 여기에서는 postgres 와 sonarquber 가 서로 통신가능하게 --link 옵션을 사용했지만 안정성 이유로 --network 을 사용하는 것이 권장된다고 한다. 설치가 완료되면 브라우저에서 localhost:9000 포트로 접속한다. 디폴트 계정과 비밀번호는 admin 과 admin 이다.

Docker Desktop 도구를 사용하면 좀더 쉽게 도커 컨테이너 제어와 자원 사용량을 실시간으로 확인 할 수 있다.
Docker Desktop 화면

일단 위 과정을 한번하고나면 다음부터는 Docker Desktop 을 사용하여 쉽게 컨테이너를 조작할 수 있다.

2. SonarQube Community Edition 사용하기

한글이 익숙하다면 로그인 후 macketplace 메뉴에서 "Korean Pack Localization" 을 설치하면 간단하게 한글을 지원하게 된다.

코드 품질을 분석하는 기본적인 과정은 아래와 같다. 

❶ 프로젝트를 생성
❷ SonarScanner 설치 및 실행
❸ 분석결과 확인 

2.1 프로젝트를 생성

"프로젝트" 메뉴를 클릭하고 Community Edition 이 GitHub Private Repository 연동을 지원하지 않기 때문에 로컬에 프로젝트를 복제하여 분석 하기 위하여 "Manually" 을 선택한다.

존재하는 프로젝트가 없는 경우

프로젝트 이름을 입력하고 Setup 을 클릭하여 프로젝트를 생성한다.


2.2 토큰 생성

보안된 인증을 통해 자동화된 코드 분석을 실행할 수 있도록 토큰을 생성한다. Loaclly 을 클릭한다.


① 토큰 생성하기에서 생성하기를 클릭하여 토큰을 생성한다.




생성된 토큰을 별도로 저장하여 보관한다. Continue 클릭하면 다양한 환경에 바로 적용 가능한 스크립트를 보여준다. 



기존 프로젝트가 maven 을 지원하고 있어 maven 스크립트를 복사했다.

2.3 SonarScanner 설치 및 실행

SonarQube 서버와 연결하여 코드 품질을 분석하고 결과를 업로드하는 SonarScanner 은 아래와 같이 터미널에 입력하여 간단하게 설치할 수 있다.

brew install sonar-scanner

SonarScanner가 분석하는 요소는 아래와 같다.
  • Bug (버그): 코드에서 오류가 발생할 가능성이 있는 부분
  • Code Smell (코드 냄새): 유지보수성이 낮거나 개선이 필요한 코드
  • Vulnerability (보안 취약점): SQL Injection, XSS 같은 보안 문제
  • Coverage (테스트 커버리지): 단위 테스트가 얼마나 잘 작성되었는지
  • Duplications (코드 중복): 중복된 코드 블록 확인
설치 결과는 아래 명령으로 확인 할 수 있다.

sonar-scanner --version


이제 Git 에서 가져온 Maven 프로젝트에서 앞서 복사한 스크립트를 사용하여 실행한다.

mvn clean verify sonar:sonar \
-Dsonar.projectKey=my_project \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=your_generated_token

옵션

설명

mvn

Maven을 실행하는 명령어

clean

기존 빌드 파일을 삭제하고 새롭게 빌드

verify

테스트를 실행하고 빌드를 검증

sonar:sonar

SonarQube 분석을 실행하는 Maven 플러그인 (sonar-maven-plugin)

-Dsonar.projectKey=my_project

SonarQube에서 프로젝트를 구별하는 고유한 키

-Dsonar.host.url=http://localhost:9000

SonarQube 서버의 주소

-Dsonar.login=your_generated_token

SonarQube 인증을 위한 API 토큰



실행이 완료되면 SonarQube 웹에서 분석 결과 확인할 수 있다.



결과 화면

SonarQube 분석 결과을 보면 이 프로젝트는 다음과 같은 조치가 필요한 것으로 나타난다.
  1. Bugs, Vulnerabilities, Coverage, Duplications 항목에서 개선 필요
  2. 특히 Bugs (170개), Coverage (0%), 취약점 (13개)가 심각한 문제
  3. 보안 문제를 해결하고, 테스트 커버리지를 높이는 것이 가장 시급함
이제 SonarQube 에서 "Issues" 탭을 확인하고, 하나씩 문제를 해결해 나가면 된다. 

이슈 목록 화면

각 이슈를 클릭하면 해당 건에 대한 상세 화면으로 이동하게 된다.  이슈 내용을 확인하고 코드를 수정한다. 이슈 상세 페이지를 보면 이슈 상태를 변경할 수 있는 기능이 있는데  코드 수정 후 다시 로컬에서 SonarScanner 을 실행하기 때문에 문자가 해결되면 자동으로  Resolved(Fixed) 로 상태가 변경 된다.  


이슈 상세화면에서 "See all issues in this file" 클릭하여 해당 파일에 대한 목록만 보여지는데  이를 활용하면 파일 별로 작업을 진행 할 수도 있다. 

이슈 상세 화면

파일 단위로 필터 된 이슈 목록


코드를 수정하고 SonarScanner 을 동일하게 실행하면 결과가 반영되어 다시 분석결과가 업데이트 된다. 

3. 느낀점

자바 언어를 사용하는 프로젝트에 1주 정도 적용을 해보았는데 아래와 같은 점에서 아주 만족스러웠다.
  1. 좋은 코딩 습관을 위한 아주 좋은 도구이다. 코드에 대한  결함을 해결하면서 좋은 코드를 작성하는 방법을 자연스럽게 학습할 수 있었다.
    • Bug (버그): 코드에서 오류가 발생할 가능성이 있는 부분
    • Code Smell (코드 냄새): 유지보수성이 낮거나 개선이 필요한 코드
    • Vulnerability (보안 취약점): SQL Injection, XSS 같은 보안 문제
    • Coverage (테스트 커버리지): 단위 테스트가 얼마나 잘 작성되었는지
    • Duplications (코드 중복): 중복된 코드 블록 확인
  2. 자바 언어의 버전에 따른 좋은 코드를 지적해주기 때문에 코딩 스킬 향상에 도움이 되었다.