전체 글(590)
-
[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 -
7주간 프로젝트를 진행하며 느낀점
생각보다 프로젝트 주제를 정하는 것은 쉽지 않다.가장 개인적인 것이 가장 창의적인 것이다.무언가 깊게 경험해보고 그곳의 문화를 이해해야 사람들에게 무엇이 필요한지 파악할 수 있다.Connecting dot! 모든 경험이 결국 이어진다. 무엇이든 열심히 해야한다.수평적인 커뮤니케이션은 중요하다. 다만 중심은 있어야 한다. 프로젝트를 성공적으로 마무리하기 위해선 강한 추진력이 필요하다.의식적으로 휴식시간을 가지자. 에너지가 부족하면 쉽게 날카로워 진다.시끄러운 곳에 있으면 쉽게 피곤해진다. 소음은 관리해야 한다.마음만 앞서서 일의 순서를 망각하면 안된다. 구현에 바로 뛰어들면 프로젝트가 망한다. 계획 및 설계의 시간을 충분히 가지자.좋은 팀 문화를 만드는 것이 팀장의 가장 중요한 역할인 것 같다. 프로젝트..
2024.08.18 -
[Nginx] HTTPS 적용
1. HTTPS 필요 Nginx SSL Termination이란 Nginx 서버가 클라이언트와의 SSL/TLS 연결을 종료하고, 그 이후의 트래픽을 암호화 없이 백엔드 서버로 전달하는 과정을 의미한다. 이를 통해 백엔드 서버의 부담을 줄이고, SSL/TLS 관리와 인증을 Nginx가 처리할 수 있도록 한다. 외부와의 통신은 보안이 중요한 만큼 HTTPS를 사용하여 데이터를 암호화한다. 외부에서 제3자가 데이터가 전송되는 동안 데이터를 들여다볼 수 없게 만든다. 서버 내부에서는 암호화의 필요성이 줄어들기 때문에 효율성을 위해 HTTP를 사용하여 통신한다. 이렇게 하면 백엔드 서버에서 복호화하는데 필요한 부담을 줄일 수 있다. 2. 원리 (HTTPS 통신에 대한 간단한 설명 참고) 3. 로컬 개발 환경에서..
2024.08.04