기타37 Git Branch 전략이란? Git Branch 전략 우리는 프로젝트를 유지하기위해 Git이라는 버전관리 툴을 이용하고 있다. Git을 이용해서 이전코드로 되돌리거나 변경된 사항을 추적할 수 있게된다. Git이 머하는지는 알겠는데 Git Branch 전략은 왜 써야할까? CI/CD를 적용했다면 수정된 내용을 푸시하는 순간 서비스에 적용이된다. 만약 적용하면 안되는 기능은 push를 하면 안되는 걸까? CI/CD를 적용하지 않았다. 다음에 출시할 기능을 만들고 있었는데 핫픽스가 필요하게 되었다. 어떻게 할것인가? 위와 같은 문제점이 생기기 때문에 브랜치 전략이라는 것을 하게된다. 브랜치 전략은 유명한게 2가지가 있다. GitHub Flow GitFlow에 비해 간단하다는 장점이 있다. Master브랜치를 릴리즈 브랜치로 하고 다른 브.. 기타 2021. 8. 22. ubuntu에서 .env로 겪은 일 django에서 보안을 위해 .env파일을 이용하다가 생겼던 문제이다. git에는 시크릿 키라던가 api 키가 올라가면 안되는 것으로 알고있다. 그래서 .gitignore를 이용하여 설정한 파일을 빼서 이용하게된다. 나는 이번에 .env 파일을 이용하여 변수들을 관리하고 있었다. mysql에서 user와 관련된 처리를 하는데 env('USER')를 가져오면 .env파일에서 적용된 것이 아니라 ubuntu로 나오는 것이었다. 한동안 안되는 이유를 찾지못해 삽질을 많이했는데 결국 print문을 찍어보고 알게되었다. 그래서 나는 ubuntu에서 USER가 환경변수로 설정되어있다는 예측을 하게되었다. 그래서 .env에 있는 변수명을 USER에서 DB_USER로 변경함으로써 문제를 해결할 수 있었다. 어떻게 보면.. 기타 2020. 9. 27. AWS EC2(ubuntu) Nginx에 https 적용하기(security) 통신을 하다보면 민감한 정보가 오갈 경우가 있는데 이럴경우에는 보안을 위해 https를 적용해야 한다.(혹은 자체적으로 보안방식을 넣던가...) 이번에는 nginx에 간단하게 https를 적용하는 방식을 적어보려 한다. 1. apt 최신화 sudo apt-get update sudo apt-get install software-properties-common 2. certbot 설치(무료 ssh발급) sudo apt-get install certbot python3-certbot-nginx 3. certbot을 이용하여 https적용 sudo certbot --nginx -d example.com 설정시 2번(리다이렉트 적용) -> http로 접속시 nginx에서 자동으로 https로 리다이렉트 시킴 기타 2020. 9. 16. docker image생성, 삭제, docker hub 이용하기 docker에서 설정한 환경을 다른곳에서 사용하기 위해서는 image화를 해야한다. 이번에는 image를 생성, 삭제하는 방식과 docker hub에 올리는 방식을 적어보려 한다. 1. docker 이미지 저장하기 작업한 내용을 컨테이너화 하고 싶다면 commit 명령어를 이용하여 저장이 가능하다. docker commit image에 태그를 달고싶다면 commit을 할때 이용하거나 아래와 같이 사용가능하다. docekr tag / 2. docker image 올리기 이미지를 만들었으면 docker hub에 이미지를 올려야 한다. docker hub에 repository를 만든다. 올려야할 이미지와 동일한이름의 repository면 된다.(혹은 반대던가) repository를 만들면 사이트 우측에 아래와.. 기타 2020. 9. 15. AWS EC2(ubuntu)에서 docker를 이용한 mysql 올리기 아래와 같은 명령어를 순서대로 작성후 window와 같이 사용하면 된다. sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt update sudo apt-get install docker-ce docker-ce-cli co.. 기타 2020. 9. 11. docker에 올린 mysql 데이터 백업/복구 하기 데이터를 백업할때는 아래와 같은 명령어를 이용한다. window의 경우 docker setting에서 file sharing를 셋팅해줘야 한다. window는 docker exec container_name sh -c 'exec mysqldump --all-databases -u root -p"$MYSQL_ROOT_PASSWORD"' > "D:\mysql\backup\data.sql" ubuntu의 경우 docker exec container_name sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql 데이터를 복구할때는 아래와 같은 명령어를 이용한다... 기타 2020. 9. 10. window 에서 docker를 이용한 mysql 컨테이너 올리기 1. 홈페이지에 들어가서 docker를 설치 https://www.docker.com/get-started 2. docker image 가져오기 cmd 창열기 도커허브에서 mysql 이미지 받아오기 docker pull mysql 다운로드된 도커 이미지 확인하기(mysql이 출력되면 정상) docker images 3. mysql 컨테이너 설정하기 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql_test mysql -d 는 컨테이너를 백그라운드에서 동작하는 어플리케이션으로 실행 -p는 포트옵션으로 3306포트로 들어오면 컨테이너의 3306과 연결하겠다는 의미이다 -e MYSQL_ROOT_PASSWORD=password 컨테이.. 기타 2020. 9. 9. AWS EC2 Nginx 적용하기(ubuntu 18.04) nginx는 웹서버의 역할을 도와주는 소프트웨어이다. 이번에는 nginx를 적용하는 방법을 적어보려 한다. 적혀있는 예시는 vue.js를 이용한 예시이다. 1. nginx 설치하기 sudo apt-get install nginx 2. nginx 설정하기 sudo vim /etc/nginx/site-enabled/default #root /var/www/html; #root 화면에보여질파일경로 설정하기 #예를들어서 vue.js 라고한다면 build후 생긴 dist 폴더를 경로로 설정 root /home/ubuntu/project/dist; 3. SPA일때 새로고침, url이동이 안될때 location / { # try_files $uri $uri/ =404; #url로 이동하는것을 허용하는 코드 try_f.. 기타 2020. 9. 8. AWS EC2(ubuntu)에서 원하는 버전 anaconda3 설치 및 셋팅하기 리눅스에서 Anaconda 설치하기 0. 원하는 버전 선정 https://repo.anaconda.com/archive/1. Conda 다운로드 sudo wget https://repo.anaconda.com/archive/[파일명] ex) sudo wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh 2. Conda 설치하기 bash Anaconda3-2020.02-Linux-x86_64.sh 몇가지 동의해야할 것들이 나오는데 yes 처리해주면 됨 설치경로를 알려줄텐데 /home/[userid]/anaconda3 가 default임 3. path 설정 # 방법 1,2중 한가지로 하면 됨 vim ~/.bashrc # 방법1 vi.. 기타 2020. 9. 7. AWS EC2(ubuntu) Nginx Django와 연결하기 nginx와 django를 연결할 일이 있어서 아래와 같이 기록을 남긴다. 1. nginx 설치 설치하지 않았다면 nginx를 설치해야 한다. sudo apt-get install nginx 1. nginx 설정 sudo vim /etc/nginx/site-enabled/default upstream backend { # server 서버주소 server localhost:8000; # 여러개 등록이 가능하다. # 여러개 등록시 라운드로빈으로 분배된다. } server { ... # 기타내용 중략 # 서버와 연결해주는 코드 location / { proxy_pass http://backend; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Fo.. 기타 2020. 8. 24. LoadFactor란 무엇인가? Java의 Map에 대해서 공부를 하다보니 Load Factor라는 이야기가 나왔다. LoadFactor란 무엇인가? 부하율 혹은 적재율을 나타낸다. Java의 경우 Map의 LoadFactor는 0.75로 총 버킷의 75% 달하는 데이터가 적재된다면 배열을 확장한다. 기타 2020. 8. 21. REST API란 무엇인가? REST란 무엇인가? REST는 Representational State Transfer의 약자이다. - 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든것들을 의미한다. URI를 통해 자원(Resouce)을 명시하고 HTTP Method(GET, POST, PUT, PATCH, DELETE 등)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다. REST 아키텍처에 적용되는 6가지 제한조건 클라이언트/서버 구조 : 일관적인 인터페이스로 분리되어야 한다. 무상태(stateless) : 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안된다. 캐시 처리 기능(Cacheable) : WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다. 계층화(Layered System) :.. 기타 2020. 8. 10. 이전 1 2 3 4 다음 💲 광고입니다.