전체 글(103)
-
Git stash로 다른 브랜치에 로컬 변경사항 옮겨서 적용하기
작업을 하다보면 내 로컬의 히스토리가 이상하게 꼬여있거나 혹은 로컬에서 브랜치를 바꿔서 작업하다가 그 사실을 잊고 변경사항을 만들어버렸을 때 커밋은 하지 않고 변경사항을 그대로 가지고 다른 브랜치로 이동하고 싶을 수 있다. 이럴때는 git stash를 이용하면 된다. git add . 한 상태라면 변경사항이 적용돼있다. git stash는 로컬의 변경사항을 인식해야지만 그 변경사항 그대로 임시적으로 저장해놓을 수 있다. 따라서 git add를 해서 git status로 변경사항을 감지하지 못하고 있다면 git reset을 입력하면 변경사항을 add하지 않은 상태로 다시 돌릴 수 있다. 그러나 git add . 도 하고 git commit 까지 날린 상태라면 다음과 같이 commit을 날려야한다. git ..
2023.11.22 -
Javascript try-catch 동작 원리, return과 error의 차이점
우선 try catch를 사용하기 위해서는 return과 throw가 어떤식으로 동작하는지 알아야 한다. return과 throw는 무슨 차이일까? return err를 하게 되면 말 그대로 catch문에서 반환하는 값을 부모메서드에게 결과값으로 돌려주게 된다. 따라서 일반적으로는 부모메서드의 변수값에서 결과값을 받고 해당 값의 error 프로퍼티가 false인지 true인지를 통해서 다른 로직을 수행하게 된다. 그러나 throw err를 하게 되면 부모메서드에서도 에러가 전파되기 때문에 try catch문을 써줘야한다. 이를 에러 버블링이라 한다. DOM객체의 이벤트 버블링과 유사한 개념이다. 상황에 맞게 쓰면 될듯하나 return을 사용하는 것이 좀 더 편하고 직관적일 듯하다. 에러를 하나의 메서드(..
2023.11.20 -
AWS Mysql 3306 connection 설정(포트포워딩, AWS 인바운드 규칙 편집) 및 connection refused 이슈
서버환경 : ubuntu db : mysql 8.0.35 일반적으로 인스턴스를 띄운 후에 RDS를 연동하는 방식을 사용하지만 내가 이번에 진행한 프로젝트는 소규모였고 사용자도 많이 생기지 않을 것이었기 때문에 서버의 로컬 환경에 mysql을 설치했다. mysql을 SSH가 아닌 외부에서 툴을 이용해서 접속하기 위해서 admim 계정을 'admin'@'%'로 생성해야 한다. 서버에서 직접 접속하면 localhost이기 때문에 포트포워딩을 해주지 않아도 되지만 외부에서 접속하기 위해서는 mysql port번호까지 연결시켜줘야 한다. 인스턴스를 생성할 때 인바운드 규칙으로 80포트와 443포트를 열어주고 iptable로 3000번(서버 실행 포트 번호)으로 포트 리다이렉트를 시켜준 것과 비슷하다. mysql은..
2023.11.20 -
AWS에 node 배포 후 mysql 설치
-서론 aws에 작업하던 프로젝트를 배포한다. 클라이언트 환경은 구체적이진 않으나 사용량이 많지않기 때문에 별도의 RDS는 생성하지 않고 프리티어(t2-micro)의 인스턴스에서 로컬에 mysql을 설치 후 배포하기로 한다. 인스턴스 생성과 관련된 것은 생략한다. 저번에 spring으로 배포한 경험이 있다. SSH로 접속하게 되면 해야할 것은 크게 다음과 같이 나뉜다. 1. 서버환경 세팅 2. git config 설정 3. mysql 설치 4. npm 설치 5. 서버에서 프로젝트를 백그라운드로 실행 -본론 1. 서버 환경 세팅 ubuntu 이미지로 인스턴스를 생성했기 때문에 기본적으로 패키지 관리자 apt를 제공한다. apt를 이용해 다음과 같이 패키지 관리자를 최신 상태로 만들어준다. $ sudo ap..
2023.11.16 -
[Git] fast forward, rebase, merge, pull, checkout, switch, HEAD 등에 대한 개념
Git을 사용할 때 pull을 시도할 경우 자주 보게 되는 fast forward는 무엇일까 예전에 git을 처음 공부할 때 배웠던 개념에 더해 추가적인 정리를 하고자한다. https://goldfish2679.tistory.com/33 [Git] Git 다른 브랜치에서 pull 하기 같은 remote에 서로 다른 branch가 있다고 했을 때 branch에 내용은 서로 다를 것이다. 이 때 다른 branch에 commit하기 위해서는 remote 저장소에 있는 것을 당겨오는 pull을 진행해야 하는데 pull이 되지 않 goldfish2679.tistory.com * 글을 읽기에 앞서 필자의 주관적이고 추상적인 비유와 함께 설명하므로 참고할 것 1. fast forward 나무가 있다고 가정해보자. ..
2023.11.09 -
SourceTree 로컬 저장소와 원격저장소 연동하기 (feat. Remote Repository Not found / 토큰등록)
SourceTree를 이용해 github 협업을 진행하던 중 원격저장소의 변경사항을 패치할 수 없는 문제가 생겼다. 패치하려고 할 시 Repository not found 에러가 발생했다. 추측하기로는 단순히 원격저장소의 경로만 remote로 추가해뒀기 때문인 것 같았다. 원격저장소의 변경사항을 그때 그때 확인하기 위해서는 사용자의 토큰이 필요했다. 이 글에서는 토큰 발급 방법에 대해서는 다루지 않는다. 1. github에서 프로젝트를 clone한 후에 해당 프로젝트의 루트 디렉토리를 저장소로 추가한다. 2. 페치시에 에러가 발생한다면(발생하지 않으면 다행이고 필자의 경우에는 어떤 이유에선지 발생함) 원격 저장소의 정보로 내 토큰을 기반으로 한 url을 새로 추가해준다. (우측 상단 설정 -> 원격 탭 ..
2023.11.07