반응형 전체 글93 리눅스 /opt, /var/lib, /var/log 차이점 리눅스 서버를 운영하다 보면 프로그램 파일은 /opt에 있고, PostgreSQL이나 Docker의 데이터는 /var/lib에 있으며, 로그는 /var/log에 저장되는 모습을 자주 볼 수 있습니다.세 디렉터리는 모두 애플리케이션과 관련되어 있지만 역할은 서로 다릅니다. Filesystem Hierarchy Standard(FHS)를 기준으로 보면 /opt는 추가 애플리케이션의 정적 파일을 설치하는 영역이고, /var/lib는 프로그램이 실행되는 동안 변경하면서 다음 실행까지 유지해야 하는 상태 정보 영역이며, /var/log는 시스템과 애플리케이션의 로그를 보관하는 영역입니다.핵심적으로 다음과 같이 구분할 수 있습니다./opt추가 애플리케이션을 독립된 디렉터리 형태로 설치할 때 사용하는 위치입니다.주로.. 2026. 8. 28. [Superpowers] Codex 전역 제거와 프로젝트 단위 설치 Codex에서 Superpowers를 전역 플러그인으로 설치하면 여러 프로젝트에서 동일한 Superpowers 기능을 사용할 수 있습니다.특정 프로젝트에서만 Superpowers를 사용하고 싶다면 전역 플러그인을 제거하고, 프로젝트 저장소의 .agents/skills 아래에 필요한 Superpowers skill을 배치하는 방법을 사용할 수 있습니다.Codex 공식 문서에서는 저장소 범위의 로컬 skill을 현재 작업 디렉터리부터 Git 저장소 루트까지 존재하는 .agents/skills에서 탐색한다고 설명합니다. 사용자 전체에 적용되는 skill은 $HOME/.agents/skills에서 탐색합니다.이 글에서는 Ubuntu 24.04와 Windows 11 환경에서 다음 구성을 기준으로 설명합니다.전역 .. 2026. 8. 25. Git Pull Request 리뷰에서 Request Changes 사용하기 Git을 사용하는 팀에서는 기능 개발 브랜치의 변경 사항을 다른 브랜치에 반영하기 전에 Pull Request(PR)를 만들어 코드 리뷰를 진행하는 경우가 많습니다.리뷰 과정에서 수정이 필요한 부분을 발견하면 GitHub나 Gitea 같은 Git 호스팅 서비스에서 Request Changes를 사용할 수 있습니다.다만 먼저 구분해야 할 점이 있습니다.Request Changes와 Pull Request는 Git 명령 자체가 아닙니다. Git은 브랜치, 커밋, merge, push 같은 버전 관리 기능을 제공하고, Pull Request와 코드 리뷰 기능은 GitHub, Gitea, GitLab, Bitbucket 같은 Git 기반 협업 서비스에서 제공합니다.이 글에서는 특정 제품에 한정하지 않고 Git을.. 2026. 8. 18. Windows 11 에서 자동 다운로드 막기 Windows 11은 기본적으로 Windows Update를 통해 보안 업데이트와 품질 업데이트를 자동으로 다운로드하고 설치합니다.개인 PC나 개발용 PC에서는 작업 중 예상하지 못한 업데이트 다운로드, 설치 또는 재부팅을 피하기 위해 업데이트 시점을 직접 관리하고 싶은 경우가 있습니다.Windows 11 Pro에서는 로컬 그룹 정책 편집기를 사용하여 Windows Update 동작을 제어할 수 있습니다.가장 권장하기 쉬운 설정은 다음과 같습니다.2 - 다운로드 및 자동 설치 알림이 옵션을 사용하면 Windows Update가 적용 가능한 업데이트를 찾더라도 바로 다운로드하지 않고 사용자에게 알립니다.사용자가 Windows Update 화면에서 직접 다운로드와 설치를 시작해야 합니다.동작 흐름은 다음과 .. 2026. 8. 13. [Orca] Ubuntu 24.04와 Windows 11에서 Orca IDE 설치하기 Ubuntu 24.04 LTS와 Windows 11 환경에서 Orca IDE를 설치하고 처음 실행하는 방법을 정리합니다.Orca는 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 여러 Git worktree에서 병렬로 실행하고, 변경 내용을 비교·검토할 수 있도록 구성된 데스크톱 개발 도구입니다. 공식 문서에서는 Windows용 설치 프로그램과 Linux용 .deb 패키지 및 AppImage를 제공합니다.이 글에서는 Ubuntu 24.04의 .deb와 AppImage 설치 방법, Windows 11의 공식 설치 프로그램 사용 방법, 운영체제별 실행 확인과 문제 해결 절차를 함께 다룹니다.2026년 7월 29일 기준 GitHub Releases에서 확인되는 최신 안정 버전은 .. 2026. 7. 30. Go 채널과 context 취소 신호 이해하기 Go의 채널은 goroutine 사이에서 값을 전달하면서 실행 순서를 동기화하는 기능입니다. context.Context의 Done()도 채널을 사용하지만, 일반적인 데이터 전달용 채널과는 목적과 사용 방법이 다릅니다.다음 예제는 3초가 걸리는 작업을 실행하면서, 2초 안에 완료되지 않으면 컨텍스트의 타임아웃으로 작업 대기를 종료합니다.package mainimport ( "context" "fmt" "time")func run(ctx context.Context) error { select { case 실행 결과는 약 2초 후 다음과 같습니다.결과: context deadline exceededtime.After(3 * time.Second)가 준비되기 전에 2초짜리 컨텍스트.. 2026. 7. 30. [Orca] Orca IDE에서 WSL 프로젝트 연결하기 Windows에 설치한 Orca IDE에서 WSL의 Linux 파일 시스템에 있는 프로젝트를 여는 방법을 정리합니다.이 글에서는 WSL 배포판이 Ubuntu-24.04이고, 프로젝트가 다음 위치에 있다고 가정합니다./home/user/projects/my-projectWindows에서는 같은 폴더에 다음 UNC 경로로 접근할 수 있습니다.\\wsl.localhost\Ubuntu-24.04\home\user\projects\my-projectOrca의 호스트 선택 화면에서는 Local Windows를 유지한 상태로 WSL 경로를 선택하면 됩니다. Orca 공식 문서에 따르면 \\wsl.localhost\... 경로의 프로젝트는 WSL 파일 시스템에 있는 프로젝트로 인식되며, 터미널을 열 때 해당 WSL 배.. 2026. 7. 30. 하나의 프로세스에서 여러 포트로 웹 서버 실행하기 웹 서버의 포트가 두 개라고 해서 실행 파일이나 프로세스도 반드시 두 개여야 하는 것은 아닙니다. 하나의 실행 파일을 한 번 실행해 생성된 하나의 프로세스가 여러 네트워크 주소에서 동시에 요청을 받을 수 있습니다.실행 파일 1개 ↓ 실행프로세스 1개├─ 8080 포트에서 요청 수신└─ 9090 포트에서 요청 수신포트는 프로세스의 개수를 나타내는 값이 아니라, 운영체제가 네트워크 연결을 구분하기 위해 사용하는 번호입니다. 하나의 건물에 여러 출입구를 둘 수 있는 것처럼 하나의 프로세스도 여러 포트를 열 수 있습니다.실행 파일, 프로세스와 포트용어의미실행 파일운영체제가 실행할 수 있도록 빌드된 파일프로세스실행 파일이 메모리에 올라가 실제로 실행 중인 상태웹 서버HTTP 요청을 받아 처리하는 프로그램 기.. 2026. 7. 28. Go JSON과 XML 처리하기 Go 표준 라이브러리의 encoding/json과 encoding/xml 패키지는 Go 값과 JSON·XML 문서 사이의 변환을 지원합니다.두 패키지는 구조체를 처리할 때 reflection을 사용하며, 기본적으로 외부에서 접근할 수 있는 exported field만 변환합니다. 필드 이름이나 생략 조건은 struct tag로 지정할 수 있습니다.JSON과 XML은 비슷한 방식으로 사용할 수 있지만 표현 구조와 struct tag 규칙은 서로 다릅니다. JSON은 객체의 key와 구조체 필드를 대응시키고, XML은 element, attribute, 문자 데이터와 구조체 필드를 대응시킵니다.외부에서 받은 JSON이나 XML을 바로 디코딩할 때는 문법 검사만으로 충분하지 않습니다. 입력 크기를 제한하고, .. 2026. 7. 28. Go 공유 상태 관리: atomic, Mutex, owner goroutine 여러 goroutine이 같은 메모리를 동시에 읽고 쓰면 실행 순서에 따라 결과가 달라질 수 있습니다. 한 goroutine이 값을 쓰는 동안 다른 goroutine이 같은 값을 읽거나 쓰고, 그 접근 사이에 적절한 동기화가 없다면 data race가 발생합니다.Go에서는 공유 상태의 성격에 따라 sync/atomic, sync.Mutex, channel을 사용하는 owner goroutine 방식을 선택할 수 있습니다.방법적합한 경우핵심 특징sync/atomic독립적인 숫자, 상태 flag, 단순 counter하나의 값을 원자적으로 읽고 변경sync.Mutex여러 field를 하나의 일관된 상태로 관리보호할 코드 영역을 한 번에 하나의 goroutine만 실행owner goroutine상태 변경을 me.. 2026. 7. 27. 이전 1 2 3 4 ··· 10 다음 반응형