분류 전체보기(576)
-
[홈서버] 하드웨어
1. 하드웨어 구성 Server 선택사항 라우터 스위치 Firewall UPS 스마트플러그 홈 서버 업그레이드오랜만에 PC시장을 둘러보던 중 RAM과 SSD의 가격이 많이 떨어진 것을 발견했다. 기존 홈 서버로 사용한 컴퓨터는 8스레드에 16GB RAM으로 구성되어 있다. 처음엔 NAS를 겸해 사용하기 위해 HDD가 6개까velog.io 가. 1차 구매 부품제품가격수량케이스, 파워, 메인보드ASROCK DeskMini X300 120W212,0001CPUAMD 라이젠5 세잔 5600G185,3201쿨러NOCTUA NH-L9a-AM474,3401RAM삼성전자 노트북 DDR4 32GB PC4-25600116,8201SSD삼성전자 PM9A1 M.2 NVMe 1TB 3D TLC109,9201무선랜카드ASRo..
2024.12.10 -
[홈서버] 요구사항 및 참고자료
0. 요구사항 3번의 프로젝트를 거치면서 고정된 IP나 도메인을 가진 서버의 필요성을 느꼈다. EC2를 사용할 수 있지만 서버 구축 경험 + RAM을 많이 쓰고 싶다는 생각에 직접 홈서버를 구축하기로 했다. 홈서버를 구축하며 보안에 대하여 공부할 수 있을 것 같아서 기대된다. 이용성 필요에 따라서 쉽게 가상화된 인스턴스를 생성 및 삭제할 수 있다. 각 인스턴스는 사설 IP를 부여받는다. 각 인스턴스는 외부에서 접근할 수 있어야 한다. 보안성 하이퍼바이저 자체는 내부망을 통해서만 접근할 수 있도록 설정한다. 홈서버의 공인 IP를 노출하지 않는다. SSH는 key 사용과 OTP 인증을 강제한다. 혹은 그에 준하는 보안 조치가 필요하다. 브루트포스 공격을 막을 수 있어야 한다. 가능하다면 디도스, 포트스캔도..
2024.12.10 -
[Docker] 예제
3번의 프로젝트를 진행하면서 추후 참고할 만한 부분만 가져왔습니다. 1. 디렉터리 구조 frontend, backend 소스코드에 이미지 빌드를 위한 Dockerfile을 생성.https 인증서 발급을 위한 cert-compose.yml과 nginx.conf.db를 위한 db-compose.yml 생성.application 실행을 위한 app-compose.yml과 reverse proxy를 위한 nginx 설정 파일들 추가. 2. Dockerfile 예시 가. frontend (react)# 5173 port를 사용하는 React를 정적으로 빌드하다음 Nginx를 이용해 배포한다.# nginx 이미지를 사용합니다. 뒤에 tag가 없으면 latest 를 사용합니다.FROM nginx:1.26.1# roo..
2024.12.09 -
[Github] Branch Ruleset
GitHub의 Branch Rules에 변경 사항이 생겨서 새로 정리해 보았습니다. 아래는 각 규칙과 해당 기능에 대한 설명입니다. 1. Branch Rules 종류 및 설명 규칙설명주요 용도Restrict creations브랜치 생성 제한무분별한 브랜치 생성 방지Restrict updates브랜치 업데이트 제한권한 없는 사용자의 직접 푸시 방지Restrict deletions브랜치 삭제 제한중요 브랜치 보호Require linear history선형 히스토리 강제깔끔한 Git 히스토리 유지Require merge queue병합 큐 사용 강제체계적인 병합 순서 관리Require deployments to succeed배포 성공 요구안정적인 배포 보장Require signed commits서명된 커밋 요구..
2024.12.09 -
[Github] GitLab → Github (feat. BFG)
GitLab에 저장된 작업물을 Github으로 옮기는 방법을 정리해 보았습니다. 1. Remote 변경하기 기존의 GitLab Repo를 clone하고 remote를 Github Repo로 수정한다. 이를 위해선 Github에 새로운 Repo가 생성되어있어야 한다.git clone https://old_git.gitcd old_git/git remote remove origingit remote add origin https://github.com/new_azgit.gitgit branch -M maingit push origingit clone --branch master --single-branch https://old_git.git : 하나의 branch만 clone하고 싶은 경우. 2. BFGG..
2024.12.08 -
EC2 초기 설정
1. EC2 접속준비물 : pem 파일// pem 파일이 존재하는 디렉터리로 이동ssh -i J11D102T.pem ubuntu@j11d102.p.ssafy.io 2. 재부팅sudo reboot처음에 EC2 수령 후 한번 재부팅한다. 3. 서버 시간대 설정sudo timedatectl set-timezone Asia/Seoul 4. 미러서버 변경 및 APT 업데이트sudo vi/etc/apt/sources.list// vim editor 내부에서:%s/ap-northeast-2.ec2.archive.ubuntu.com/mirror.kakao.com/// 저장:wqsudo apt updatesudo apt upgradeapt 업데이트 후 패키지를 업데이트한다. 5. Docker 설치 UbuntuJumps..
2024.12.08 -
IntelliJ 초기 설정
준비물 : OpenJDK 17.0.12 1. Intellij 가. code convention ctrl+alt+s → setting으로 들어간다. Editor → Code Style → Java로 들어간다. 다운로드 받은 xml 파일을 선택하고 적용한다. actions on Save 검색 → Reformat code와 Optimize imports 옵션 활성화. (선택사항) import 검색 후 Add umambiguous imports on the fly와 Optimize imports on the fly 활성화. 나. Build, Test Tools 변경 gradle 검색 후IntelliJ IDEA로 변경. 다. Lombok 설정
2024.12.08 -
REST API의 Stateless에 대하여
1. 사건의 발달 저번 프로젝트 진행하면서 URL을 stateless 하게 설계했음.// 예시 - 자신이 작성한 글 조회/api/v1/users/{user_id}/boards그런데 인증, 인가를 검증하는 단계에서 URL의 정보와 JWT 속 정보를 지속적으로 비교 검증해야 번거로운 문제가 발생함. 1. JWT 토큰이 유효한지 확인.2. URL 속 user_id가 JWT 토큰 속 user_id와 같은지 확인. -> 문제점!3. user_id를 PK로 하는 사용자가 유효한지 확인.사용자 정보를 2번 받기 때문에 인증, 인가가 복잡해짐. → REST API의 stateless에 대하여 잘못 이해하고 있는 것을 깨달음. 2. Rest API의 stateless란 REST API가 stateless를 추구하는 이유..
2024.09.07