목록분류 전체보기 (108)
imhamburger 님의 블로그
brew install mysql #mysql 설치(맥북) 가지고 있는 외부서버(AWS, GCP 등)에 있는 데이터베이스를 내 로컬로 가져올 때는 터미널에 아래와 같이 입력한다.(나는 AWS서버를 이용하고 있어서 AWS서버를 예시로 해야겠다.) 여기서 잠깐, 파일이 너무 무겁다면 압축을 하여 보내는 것이 훨씬 편리하다. 압축방법은 간단하다.gzip {파일명} #압축ls -lh {파일명} #용량 확인하기 원격에서 로컬로 보내기AWS={외부 IP 주소} #AWS주소가 너무 길어 변수 선언scp -i {유저명}@{IP주소}:{전송할 파일 경로} {받을 경로}#예시scp -i abc.pem ubuntu@$AWS:~/test.txt .위 코드를 해석하자면, scp는 'source copy'이며 '-i {파일명...
깃을 처음 세팅하게 되면 master 라는 단어로 되어있다. master 라는 단어가 사회적으로 이슈가 있어서 (마스터 노예 관계? 뭐 이런거..) main 으로 바꿔 사용하는 것을 권장한다고 한다.바꾸는 방법은 간단하다. 아래 코드를 차례대로 입력해주면 된다.git config --global init.defaultBranch maingit init 본론으로 돌아와서.. 깃허브에 있는 내 코드를 외부서버(aws, gcp 등)에서 실행하고자 할 때 어느 위치에서 실행시킬지 정하고 그 위치 안에서 git clone {코드주소} 을 한다. git clone은 '복제한다' 라는 의미이다.그리고 새로 생긴 깃허브 위치에 들어간다. cd 명령어를 쓰면 된다. 그리고나서 유의해야할 점이 있다.만약 main에서 실행..
깃 commit(커밋)을 할 때 우리는 메세지를 입력해야 한다. 근데 입력하고나서 push(푸시)를 하기 전 입력한 메세지를 다시보니 오타가 있다면? 당황하지 말고 아래 명령어를 통해 수정하고 다시 push(푸시)를 하면 된다.git commit --amend 깃허브에 새로운 레포지토리(이하 '레포')를 만들고, main을 새로운 레포에 푸시하고, main으로부터 branch를 만들고 푸시를 하려는 데 다음과 같은 에러가 떴다.이는 깃허브에서만 레포를 만들고 로컬과 연결을 하지 않았기 때문에 나타나는 에러였다. 아래 코드를 통해 해결할 수 있었다.git remote add origin {새롭게 만든 레포지토리 주소} git push 갑자기 드는 의문: 근데 branch를 계속 만들다보면 용량이 엄청 커지..
오늘은 SSH키를 도대체 왜? 사용해야하는지에 대해 설명해보려 한다.가장 기본적인 보안이라고 하면 비밀번호가 떠오른다. 노트북을 실행할 때, 개인 SNS에 로그인할 때, 스마트폰을 이용할 때 등 일상생활에서 내가 인터넷상에서 어딘가에 가입하면 아이디와 비밀번호를 요구한다. 개인정보를 보호하기 위해 너무나 당연한 것이다.그러나 해킹을 하려는 수법들이 워낙 다양해지면서 그에 맞서 보안장치들은 지속적으로 발전해왔다. 스마트폰만 생각해도 이제는 비밀번호가 아닌 생체인증을 하고 은행앱에서도 생체인증을 쉽게 볼 수 있다.깃허브는 알다시피 회사에서 개발을 할 때 협업툴로 많이 이용된다. 회사의 모든 개발소스들이 그곳에 저장되어 있다. 따라서 제 3자가 한 회사의 깃허브에 접근할 수 있는 비밀번호를 알아낸다면 아주 큰..
오늘은 데이터 엔지니어 부트캠프 2일차이다. 비전공자라 컴퓨터지식이 없어 그때그때 구글링하며 배우고 있다.오늘은 1일차에 배웠던 빔 명령어에 관해 간단한 퀴즈를 풀었다. 문제http 상태 코드는 아래와 같습니다.https://developer.mozilla.org/ko/docs/Web/HTTP/Status서버에서 실시간 발생하는 500 로그를 확인하는 방법은 아래와 같습니다.$ tail -f tmp/ls.log | grep 500 5xx 에 해당하는 모든 로그를 확인하는 grep 구문은 무엇인가요? 내가 이 문제를 처음 풀었던 답은 아래와 같다.tail -f tmp/ls.log | grep '^5' *여기서 tail -f 명령어는 실시간으로 내용을 출력하여 파일을 모니터링 할 수 있게 해준다. tail ..
오늘은 데이터엔지니어 부트캠프 1일차에 배운 내용 중 헤맸던 부분과 이해가 가지 않았던 부분을 정리해보았다. 우선 빔(Vim) 이라는 명령어를 이용해 터미널에서 파일과 폴더를 만들고 수정하는 것을 배웠다. 전에 터미널 명령어에 대해 조~금 공부했어서 cd / mkdir / rm 등 기본적인 것은 익숙하였다. 파일을 수정하고 저장하는 명령어는 :wq 이다. 그런데 다음과 같은 오류메세지를 받았다.E45: 'readonly' option is set 이 오류가 나타나는 이유는 내 지금 현재 권한이 readonly로만 되어있기 때문이다. 권한을 변경해도 상관없지만, 이미 내용을 수정해버렸다. 그래서 아래 위 메세지에 (add ! to override) 라길래 :wq 옆에 ! 만 추가해주었다.그랬더니 오류없이..
컨테이너 기술이 효율적인 건 알았고 그럼 컨테이너 기술을 얼른 적용하자!라고 생각했다. 그.런.데 나는 매우 바쁜사람이기 때문에 컨테이너를 만드는데 시간을 투자하기 어렵다. 그리고 머리 아프다.그래서 그것을 도커에게 맡겼다. 도커는 컨테이너를 관리해주는 전문가이기 때문에 컨테이너를 만들고 관리하고 없애고 등을 내가 명령만 하면 다~ 해준다.나는 그냥 어플리케이션을 만드는 데에만 집중하면 된다. 앞서 에서 컨테이너는 어플리케이션과 파일 라이브러리 등을 이미지화하여 어플리케이션을 독립시킨다고 설명하였다. 그럼 내가 만든 서로 다른 어플리케이션들을 이미지화해서 독립적으로 작동시켜야지.이미지를 만드는 방법은 크게 2가지로 나눌 수 있다. 첫번째도커 컨테이너를 원하는대로 수정한 이후 컨테이너를 이미지로 생성하는 ..
도커는 무엇인가?도커는 컨테이너 기술을 기반으로 한 가상화 기술을 누구나 이용할 수 있도록 만든 플랫폼이다. 컨테이너 기술? 가상화 기술?먼저 컨테이너와 가상화 기술에 대해 알아보자. A라는 회사가 여러 어플리케이션을 사람들에게 제공한다고 가정해보자. 과거에는 한 서버OS에 여러 어플리케이션을 연결하여 제공하였다. 아래 그림처럼 말이다. 여기서 서버OS는 개인용 컴퓨터 OS와는 달리 높은 성능, 안정성, 보안성 그리고 동시에 여러 사용자와의 통신을 지원한다.위 그림처럼 서버를 돌리게 되었을 때 어떤 문제가 생길까?한 어플리케이션이 문제가 생겼을 때, 서버를 공유하고 있기 때문에 다른 어플리케이션까지도 영향을 줄 수 있어 아주 치명적인 문제가 발생하게 된다. 그럼 서버OS만 따로 사용하면 되는거 아니야?..
이번엔 서버가 무엇인지 알아보자. 서버는 네트워크를 통해 요청을 받은 데이터를 보내주는 컴퓨터 시스템이다.웹페이지를 보여주게 하는 웹서버, 데이터 관리를 해주는 데이터베이스 서버, 파일을 저장하고 관리해주는 파일 서버, 전자메일을 송수신하고 저장하는 메일서버 등 종류가 다양하다. 우리가 자주보는 네이버 메인페이지를 예를 들어보자.크롬에 naver.com를 입력하면 모니터에 짜-잔 하고 네이버 페이지가 보여진다. 하지만 이는 내가 이용중인 웹브라우저(크롬같은)가 네이버 서버에 요청하고 네이버 서버는 어딘가에 저장해놓은 메인페이지의 html 소스를 웹브라우저에 보내줌으로써 가능해진 것이다. 그럼 서버는 내 요청을 어떻게 받아서 처리하는거지?앞서 에서 서버를 잠깐 설명하였다. 서버는 네트워크 환경을 통해 요청..
우선 도커를 이해하기 전에 네트워크와 서버를 이해하는 것이 중요하다. 유튜브에 엄청나게 많은 도커에 관한 영상들이 있는데 그것들을 보아도 뭔가 100% 이해가 되지 않았다. 그건 내가 아직 네트워크가 어떻게 돌아가고 서버가 무엇인지 잘 모르기 때문에 그런 것 같다.그래서 아주 깊이까지는 아니더라도 네트워크와 서버에 대해 먼저 알아보는 시간을 가졌다. 네트워크 그리고 서버. 사실 일상생활에서 많이 들어본 단어지만, 눈으로 보이지 않기 때문에 참 어려운 개념이다. 네트워크의 사전적 의미는 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다.여기에서 컴퓨터는 스마트폰과 아이패드도 포함된다. 컴퓨터로 표현한 이유는 옛날에는 스마트폰과 아이패드와 같은 것이 없었기 때문이다. 하지만 오늘날..