전체 글 85

Git 브랜치 병합 관련 명령어

git merge : 포크된 이력을 가지고 있는 브랜치를 병합한다. 이력에는 갈라져나온 뿌리가 그대로 남아있다. git rebase : merge를 사용하면 히스토리를 볼 때 뿌리가 여러개로 나눠져 있어 보기가 어렵지만 rebase는 베이스를 다시 정의함으로써 새롭게 커밋 라인을 정리하여 히스토리를 깔끔하게 볼 수 있다. git cherry-pick : 다른 브랜치에 있는 커밋을 선택적으로 HEAD가 위치한 브랜치에 적용시킬 때 사용하는 명령어이다. git config user.name, user.email도 변경하여 GitHub에 이미 반영된 값들을 변경 가능하다.

Git 2021.06.28

클라우드를 이용한 시스템 구축의 대표적인 사고방식

로드 밸런서와 오토 스케일 기능으로 시스템을 확장할 수 있도록 만든다. 하나의 존에서 장애가 발생하더라도 문제가 없도록 멀티 존으로 구성한다. 서버 등의 다운을 모니터링하고 자동으로 복구하도록 구성한다. 시스템을 자동으로 복사하여, 백업할 수 있도록 한다. API를 통해 다른 서비스와 연계시키는 환경을 유지한다. 온프레미스 및 기타 클라우드 서비스로 이전할 가능성도 고려한다. P.S. 진짜 오랜만에 글 쓰네...ㅋㅋ 회사도 입사하고 많은 일이 있었다. 이제는 글 자주 써야지~~

Cloud 2021.05.22

POST vs PUT

POST 메소드는 http 메세지로 넘어온 엔티티를 새로운 자원으로 등록한다. 새로운 자원으로 등록하지 않을 수도 있는데 이런 경우에는 200, 204 응답 코드가 온다. 새로운 자원으로 등록될 경우 201 응답 코드가 온다. PUT 메소드는 자원의 식별자를 이미 알고 있는 상태여야한다. PUT 메소드는 http 메세지로 함께 넘어온 엔티티로 교체한다. 200, 204 응답 코드를 사용한다. 다만 PUT 메소드로 넘어온 식별자가 꼭 존재하고있을 필요는 없다. 존재하지 않는 식별자를 넘길 수도 있는데 이런 경우에는 넘어온 식별자를 id로 하는 새 자원을 생성하고 201 응답 코드를 보내 준다. 식별자를 id로 사용할 수 없는 경우에는 에러코드로 응답한다. 참고 : https://multifrontgarde..

개발 지식 2021.02.15

git switch

브랜치 변경 commad git 새 버전에 맞게 checkout 말고 switch로 사용하기 git switch -c -t / -c: create 옵션, 새로운 브랜치 생성 -t: track 옵션, 새로운 브랜치를 생성했을 때 upstream 브랜치를 설정한다. 항상 새로운 feature 작업할 때 새로운 branch 생성해서 작업하기. 그래야 remote에서 MR도 따로 올라간다. * 원격에 불필요한 merge commit을 최소화하기 위해 switch 후 push 전에 git pull -r(rebase) origin 해주는 것이 좋다. 참고 https://git-scm.com/docs/git-switch Git - git-switch Documentation Switch to a specified b..

Git 2021.01.27

restart 옵션

docker run --restart=always -d Docker는 호스트 시스템이 재부팅 된 후 Docker 데몬이 다시 시작될 때 컨테이너를 다시 시작하지 않는다. 하지만 --restart 명령 행 옵션을 제공하여 컨테이너에 대한 다시 시작 정책을 제공한다. --restart=always 제공하면 Docker 데몬이 다시 시작된 후에 항상 컨테이너가 다시 시작된다. 그러나 해당 컨테이너가 수동으로 중지되면(ex. docker stop) 다시 시작 정책이 적용되지 않는다. 참조 https://riptutorial.com/ko/docker/example/3216/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%9E%AC%EC%8B%9C%EC%9E%91-%EC%A0%95%EC%B..

Docker 2021.01.11

도커 에러 :error response from daemon: ports are not available 해결

어제까지 잘 되던 도커 컨테이너 실행이 오늘 갑자기 안된다. 이전까지 보지 못하던 에러였는데 해당 에러 메세지는 docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:포트번호: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 였다. 그런데 신기하게도 해당 포트번호는 netstat으로 확인해 본 결과 사용중도 아니고 도대체 뭐가 문제인지 몰랐다. 구글링을 해본 결과 몇가지 해결책이 나왔는데 "포트를 예약"하라는 해결책이 가장 적합했다. 아래는 해결 방법이다. CMD 관리자 모드 실행 후 cd C : \ W..

Docker 2021.01.06

CPU 사용량에 따른 각 서비스간의 통신 속도 체크 및 최적화된 사용량 찾기

CPU 사용량에 따른 API 통신 속도에 관해서는 생각을 해본 적이 없다가 vultr 서버에 올린 백엔드 서버에서 더미 데이터를 받아오는 속도가 너무 느려 해당 문제에 관심을 가지게 되었고 해당 이슈를 보고했었다. 팀장님이 CPU 사용량을 조절해 보면서 테스트를 해보고 최적의 CPU 사용량을 조사해보라고 하셨다. docker 컨테이너를 띄울 때 --cpus의 옵션을 주어 CPU 최대 점유율을 설정할 수 있다. 조금 차질이 있던게 CPU 최대 점유율 옵션을 주지 않고(최대로 사용하도록 나두었을 때) 사원을 저장하는 기능이 몇분여씩이나 걸렸을 때 해당 이슈를 보고했었는데 해당 코드를 최적화하고 난 뒤에 이 문제에 대해 해결하려고 하여서 조금 늦은감은 있었다. 그래도 전체 사원 리스트를 받아오는 API를 호출..