본문 바로가기

분류 전체보기71

SCP 명령어 1. SCP 기본 사용법 (로컬에서 테스트)① 같은 디렉토리 내에서 파일 복사 테스트 (cp 명령어 활용)먼저, 일반적인 cp 명령어를 실행해 보자.cp source.txt destination.txtsource.txt → 복사할 원본 파일destination.txt → 새롭게 생성될 복사본🔹 이게 정상적으로 되면 scp도 문제없이 동작할 가능성이 높아.② scp를 사용하여 같은 로컬 내에서 파일 복사 (SCP 기본 동작 확인)일반적으로 scp는 원격 서버와의 파일 전송에 사용되지만, 같은 로컬에서도 테스트할 수 있어.scp source.txt destination.txtsource.txt → 복사할 파일destination.txt → 새 파일 (원래 scp는 원격 전송용이라, 로컬에서 이 방식은 잘 .. 2025. 3. 10.
nginx 도메인 등록하기 Nginx에 도메인 등록하는 방법1. 도메인 구매 및 DNS 설정먼저, 원하는 도메인을 구매하고 DNS 설정을 해야 합니다. 보통 도메인 등록 업체(예: 가비아, GoDaddy, Namecheap)에서 구매할 수 있습니다.네임서버 설정도메인 등록 업체에서 네임서버(NS)를 설정해야 합니다. 만약 자체 서버를 운영하는 경우 클라우드플레어(Cloudflare) 등의 서비스를 이용할 수도 있습니다.A 레코드 및 CNAME 설정A 레코드: 도메인의 IP 주소를 설정합니다.예: billydev.shop -> 123.456.78.90CNAME 레코드: www.billydev.shop을 billydev.shop으로 연결합니다.예: www.billydev.shop -> billydev.shop2. Nginx 설치 및 .. 2025. 3. 9.
라즈베리파이에서 sudo 없이 Docker 사용하기: Docker 그룹 추가 방법 라즈베리파이에서 Docker를 사용할 때 매번 sudo를 붙이는 게 귀찮았던 적 있나요? 저도 docker ps나 docker-compose up 같은 명령어를 실행할 때마다 sudo를 입력하는 게 점점 짜증 나더라고요. 다행히 간단한 설정으로 이 번거로움을 없앨 수 있습니다. 바로 현재 사용자를 Docker 그룹에 추가하는 방법인데요, 단계별로 따라 하면 금방 해결됩니다. 함께 해볼까요?왜 sudo가 필요한 걸까?Docker는 기본적으로 루트 권한으로 실행되기 때문에, 일반 사용자는 명령어를 실행하려면 sudo를 붙여야 해요. 하지만 사용자를 docker 그룹에 추가하면 루트 권한을 직접 쓰지 않아도 Docker를 자유롭게 사용할 수 있습니다. 보안상 주의는 필요하지만, 개인 프로젝트나 로컬 환경에서는.. 2025. 2. 23.
MongoDB aggregate() 사용법 MongoDB의 aggregate는 여러 단계의 파이프라인을 사용하여 데이터를 처리하고 변환하는 강력한 기능입니다. 이를 통해 복잡한 쿼리, 그룹화, 필터링, 정렬 등을 수행할 수 있습니다.📌 aggregate 기본 구조db.collection.aggregate([ { 단계1 }, { 단계2 }, { 단계3 }, ...])각 단계는 데이터를 변환하는 역할을 하며, 다음 단계로 결과를 전달합니다.📌 주요 aggregate 연산자1. $match (필터링)특정 조건을 만족하는 문서만 선택합니다. find()와 비슷한 역할을 합니다.db.users.aggregate([ { $match: { age: { $gte: 18 } } } // 18세 이상만 선택])2. $group (그룹화)_id를 기준으.. 2025. 2. 21.
Express.js에서의 에러 핸들링 패턴 분석 Express.js에서의 에러 핸들링: 세 가지 접근 방식Express.js 애플리케이션에서 에러를 효과적으로 처리하는 것은 매우 중요합니다. 여기서는 세 가지 주요 에러 핸들링 접근 방식을 살펴보고, 각각의 장단점을 분석해 보겠습니다.1. Promise 기반 asyncHandler const asyncHandler = (fn) => (req, res, next) => { Promise.resolve(fn(req, res, next)).catch(next);}; 장점:동기 및 비동기 에러를 모두 캐치할 수 있습니다.모든 종류의 함수(동기/비동기)를 안전하게 처리할 수 있습니다.Promise로 래핑되어 일관된 에러 처리가 가능합니다.동작 원리:함수를 Promise로 감싸 실행합니다.에러 발생 시 catc.. 2025. 2. 20.
MongoDB에서 특정 필드를 제외하고 데이터 조회하는 방법 MongoDB를 사용할 때, 특정 속성을 제외하고 데이터를 가져와야 하는 경우가 있습니다. 예를 들어, 사용자의 비밀번호나 내부적으로 사용되는 민감한 데이터를 클라이언트에 노출하지 않도록 해야 합니다. 이를 위해 Mongoose에서 .select() 메서드를 활용할 수 있습니다.기본적인 데이터 조회 코드다음과 같이 Content 컬렉션에서 모든 데이터를 조회하는 API를 만들 수 있습니다.app.get("/api/contents", async (req, res) => { try { const contents = await Content.find().lean(); res.status(200).json(contents); } catch (error) { console.error("콘텐츠 .. 2025. 2. 20.