본문 바로가기

2021/035

Docker : 리눅스에 도커 설치하기 (Ubuntu 18.04) 개발을 하다가 EC2 (Ubuntu 18.04) 에 도커를 설치할 일이 생겼습니다. 다음에 또 설치해야될때 알수 있도록 간단하게 정리해두었습니다. 도커 설치하기 sudo apt-get update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker 만약 기존에 도커가 설치되어있다면 sudo apt-get remove docker docker-engine docker.io 위와 같이 apt-get install docker.io 이전에 위의 명령어로 도커를 지운 다음 설치해주시면 됩니다. Tips 위와 같이 설치하면 항상 sudo docker [명령어] 형식으로 사용해야 한다는 불편한 점이 있습니다. sudo.. 2021. 3. 26.
개발 용어 : 캐리지 리턴(CR), 라인 피드 (LF) 알아보기 캐리지 리턴(CR)과 라인 피드(LF)란? 프로그래밍을 하다보면 \n으로 되어있는 문자를 만나게 됩니다. 보통 줄내림이라는 뜻인데 윈도우에서 이것저것 하다보면 \n이 아닌 \r\n도 만날 때가 있습니다. 각각의 의미를 살펴보겠습니다. \r Carriage Return(CR) 라는 의미를 가지며 일반적으로는 맨앞으로 이동하라는 뜻입니다. \n Line Feed(LF) 라는 의미를 가지며 일반적으로는 New Line, 즉 새로운 라인이라는 뜻입니다. 캐리지 리턴(CR)과 라인 피드(LF)의 어원 살펴보기 캐리지 리턴은 아래와 같은 타자기(typewriter)에서 따온 단어입니다. https://youtu.be/FkUXn5bOwzk 캐리지 리턴의 영문 뜻은 다음과 같습니다. Carrage: 운반, 또는 수송이.. 2021. 3. 23.
AWS : HTTP에서 HTTPS로 redirection 설정하기 (http_x_forwarded_proto + EC2 +ELB) redirection 문제 회사에서 데모를 위한 웹서버를 띄우기 위해 AWS 인프라를 구축할 일이 생겼습니다. 기본적으로 AWS의 ELB와 EC2 그리고 Nginx만을 이용한 간단한 웹 서버를 구축하였는데, 이때 HTTPS 인증서를 로드벨런서(ELB)에 붙이고, 타겟그룹을 만들어서 EC2 Nginx로 전달하였습니다. 이때 아래와 같은 문제가 발생하였습니다. https://example.com/ => HTTPS로 동작 http://example.com/ => HTTP로 동작 https://example.com/folder => HTTP로 동작 (http://example.com/folder/ 으로 이동) 저는 HTTP로 접속이 되더라도 HTTPS로 동작하는 웹서버를 구축해야 했습니다. 저희 회사 SDK를 .. 2021. 3. 19.
리눅스 : 용량 부족할때, 커널 삭제로 용량 확보하기 Linux를 사용하다보면 가끔 용량이 부족할 때가 있습니다. No space left on device (28) ... 용량이 없어서 오류가 날때는 보통 위와 같은 에러를 같이 보여줍니다. 이럴때 하드디스크나 SSD 볼륨 용량을 확장하거나, 필요없는 파일을 지우는 방법이 있지만 그전에 리눅스의 오래된 커널이 남아있을 수 있기때문에 용량부족의 원인일 수 있기 때문에 한번 확인해보시는 것이 좋습니다. 저의경우에 EC2리눅스를 쓰다가 용량이 부족해서 서버로 파일 업로드가 되지 않는 문제가 발생하였습니다. 그런데 해당 서버에는 볼륨의 용량을 다 쓸정도로 큰 파일이 없기 때문에 다른 이유를 찾던 도중 오래된 커널의 용량이 문제라는것을 확인할 수 있었습니다. 커널의 용량 확인 보통 커널들을 저장해놓는 경로는 /us.. 2021. 3. 15.
Sequelizer : Sequelize-cli의 migration 기능으로 운영중 테이블 스키마 변경하기. sequelize 운영 중 테이블 스키마 변경 문제 개발을 하다 보면 sequelize의 테이블을 추가하거나 스키마를 변경해야 할 때가 있습니다.. 보통 이런 작업을 할 때는 sequlize-cli를 설치하여서 사용합니다. 스키마를 변경하기 위해서는 보통 sequelize.drop을 통해 테이블을 제거한 뒤에 sequelize.sync()를 수행해여야 하는데 drop을 수행하게 되면 테이블에 있던 데이터가 모두 삭제가 됩니다. 만약 운영 중이었다면 소중한 데이터가 백업하지 못하고 날아가게 되기 때문에 무척 치명적일 수 있습니다. 테이블을 안 날리고 데이터베이스의 스키마와 컬럼을 바꿀 수 있을까 찾아보니 sequelize cli의 migration 기능을 이용하면 쉽게 해결되는 것을 알게 되었습니다. 아래.. 2021. 3. 2.