본문 바로가기
항해99

[TIL] 항해5일차

by yeaseul912 2022. 7. 16.
728x90

알고리즘 풀이 주차가 시작되었습니다. 이번엔 11조! 1이 두개네? ㅎㅅㅎ

 

알고리즘 문제풀이 & git rebase

오늘부터는 알고리즘을 풉니다.

기본적인 자료형들에 익숙해지도록 하는 문제들이 많았습니다.

프로그래머스 연습문제로 12문제 정도 풀었습니다.

 

rebase인가 지랄인가 하려고 하다가.. 열심히 풀었는데.. 테스트케이스 다 적었는데.. 다 날아갔네요.

저 혼자서도 할 수 있을 줄 알았어요. 부디 다른 분들 데이터는 날아가지 않았길.. 

아무튼 branch를 따서 작업을 했다고 가정해보자.

  • merge 했을때 : main branch와 병합 된다.

 

source tree

  • rebase 했을 때 : main branch 로 재 정렬이 된다.

source tree

하지만 main branch는 함부로 건드리지 않는게 좋다.! rebase를 하면 commit도 새로 쓰고 정렬도 새로 하기 때문에 기존의 커밋트리가 달라진다. (commit log의 hash 값이 달라짐)

 따라서 main에서 분기한 다른 branch들이 병합 시 충돌을 할 가능성이 높다.

     branch?? : main아 너 내가 알던 네가 아닌거같다?
      main : dog-branch를 만나고 나는 새롭게 태어났거든.!

    branch에서 병합하기 전에 main 을 rebase하자.!

   main 기준으로 branch를 재정렬 했기 때문에 충돌 걱정을 할 걱정이 없다. ( fast-forward merge )

  • 깃 리베이스 플로우
  1. 원격 브랜치의 변경사항을 확인
    • git fetch --all
  2. 내가 작업하는 브랜치의 커밋 분기 위치를 원격 메인 브랜치의 가장 최근 커밋으로 재배치
    • (내 브랜치에서) git pull --rebase origin main
    • 충돌이 발생했다면 충돌 해결 후 git rebase --continue
    • 소스트리) 히스토리 맨 위의 Uncommited changes 클릭 → 상단바 → 동작 → 충돌 해결하기 → 저장소 것을 이용하여 해결 → 동작 → 재배치 계속 → 커밋
  3. 로컬 메인 브랜치 최신화
    • (main 브랜치에서) git pull
    • 소스트리에서 풀 → 체크박스 모두 해제하기
  4. 작업 내용 병합하기
    • (main 브랜치에서) git merge --no-ff {내 브랜치}
    • --no-ff 옵션 없이 병합하게 되면 메인 브랜치에서 작업한 것 처럼 커밋이 쭉 일렬로 병합됨
    • 소스트리에서 병합 → 체크박스 3개 체크하기
  5. 병합된 main 브랜치 원격에 올리기
    • (main 브랜치에서) git push
  6. 메인 브랜치의 가장 최근 커밋이 병합 커밋으로 변경되었으니 내 브랜치 최신화
    • (내 브랜치에서) git pull --rebase origin main
    • 혹은 내 브랜치를 삭제하고 main 브랜치에서 다시 새 브랜치 생성
EC2에 (Nginx로) Https 적용해보기

다시 ! 인스턴스를 생성해 줍니다!

EC2에 접속 해 줍니다 !!!!

 

1. 업데이트

sudo apt-get update

 

2. nginx 설치

ubuntu@ip-172-31-34-72:/$ sudo apt-get install nginx

3. nginx가 80포트에 잘 떴는지 확인

ubuntu@ip-172-31-34-72:/$ sudo apt-get install net-tools

ubuntu@ip-172-31-34-72:/$ sudo netstat -ltnp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2019/nginx: master
tcp6       0      0 :::80                   :::*                    LISTEN      2019/nginx: master

4. certbot 설치

sudo apt-get install certbot python3-certbot-nginx
sudo curl -o- https://raw.githubusercontent.com/vinyll/certbot-install/master/install.sh | bash

5. nginx 도메인 연결

ubuntu@ip-172-31-34-72:/$ sudo vi /etc/nginx/sites-available/default
ubuntu@ip-172-31-34-72:/$ sudo service nginx restart

마지막 server_name에 자신의 도메인을 적어주고 저장하고 설정을 적용하기 위해 재시작 해준다.

 

6. 인증서 발급받기

sudo certbot --nginx -d ashley-ship.shop -d www.ashley-ship.shop

하.. 됐따 ㅋ

 

마치며

1. 리베이스 깃 플로우

방장님께서 친히 만들어주신 플로우이다. 이대로만 하면 충돌이 나지 않을것이다. 암기암기!

 

2. 도메인 연결 안됨.

처음에 Route53에 도메인을 연결하고 가비아에서 네임서버 설정 바꾸고 했었는데 도메인 연결이 안되서

Route53에서 삭제를 하고 네임서버를 원래대로 적어도 EC2와 연결이 안됐다.

그래서 새로 도메인을 하나 더 만들었다.

 

3. 미니프로젝트에 적용 못함

음.. 근데 원래 미니프로젝트에 https를 적용하고 싶어서 시작한거였는데

미니프로젝트는 python server flask 로 되어있어서 그러니까 nginx로 동작하는게 아니어서 프로젝트에 적용을 하지는 못했다.

일단 nginx에 적용해본걸로 만족한다. ^^..

 

reference

[AWS] ec2에 HTTPS 적용 - let's encrypt (redirection)

[Nginx] Let's Encrypt를 통해 Nginx에서 무료로 https 설정하기

Nginx에서 SSL 적용해서 Https로 접속 되게 해볼까

Git Merge에서 Fast Forward 관계 이해하기

[Git] git add 취소하기, git commit 취소하기, git push 취소하기

ConcurrentModificationException과 컬렉션 불변성

Junit5 Assertions Docs

반응형

'항해99' 카테고리의 다른 글

[TIL] 항해 9일차  (0) 2022.07.19
[WIL] 항해 7일차  (0) 2022.07.19
[TIL] 항해 4일차  (0) 2022.07.14
[TIL] 항해 2일차  (0) 2022.07.13
[TIL] 항해 1일차  (0) 2022.07.11

댓글