목록전체 글 (245)
오늘도 한 뼘 더

# 배경 shell script를 작성하여 배포를 진행하는 과정에서 배포 후 작업이 그대로 진행이 되었다. 이를 막기 위해 에러가 나면 실행을 멈추도록 해야 한다. # set +e / -e 에러가 발생하면 실행을 멈춘다. #!/bin/bash set -e chmod +x test.sh echo "Hello" 에러가 발생해도 계속 실행 #!/bin/bash set +e chmod +x test.sh echo "Hello" 명령어에 따라 다르게 설정 #!/bin/bash set -e #에러 나면 멈춤 chmod +x test.sh set +e #에러 발생해도 계속 실행 cp ./test.sh ../test.sh set -e #다시 에러가 발생하면 멈춤 docker ps -a

# 배경 갑자기 운영 중이던 개발계가 502 Bad Gateway가 뜨면서 동작되지 않았다. 확인을 해보니 mysql docker가 멈췄는데 시작을 하려고 하니 다음과 같은 에러 메시지가 떴다. write /var/lib/docker/image/overlay2/~ no space left on device # 해결 방법 서버 스토리지를 늘려 해결하려고 했는데 스토리지를 늘리는 명령어조차 여유 공간이 없어 작동이 되지 않았다. 결국은 불필요한 파일을 삭제해야 했다. 불필요한 도커 관련 파일 삭제하기 prune 명령어 사용방법을 확인 $ docker system prune --help 불필요한 volume을 삭제하고자 하여 다음과 같은 명령어를 실행하였다. $ docker system prune --all ..

# 배경 회사에서 배포 환경을 어떻게 맞추고 어떻게 정의 내릴 것인지 이야기하는 시간이 있었다. 얘기를 해보다가 정리를 해두면 좋겠다는 생각이 들어 글을 쓰게 되었다. # 개발 배포 환경 우리는 크게 Local | Develop | Staging | Production 네 가지 개발 환경을 구축하여 일을 한다. 컨퍼런스나 다른 회사 블로그를 봤을 때 QA 단계가 따로 있는 곳들을 봤는데 현재 회사에서는 Staging단계에서 그 역할을 같이 진행한다. Local 개발자들 각자의 PC에 설치된 서버 환경을 Local 환경이라고 한다. Develop 서버에 올라간 코드를 받아서 작업을 진행한다. Develop Local환경에서 작업한 코드를 한 곳으로 모아서 개발자들이 테스트를 하기 위해 만들어진 환경 Dev..

# 배경 핸드폰 번호를 입력받을 때 "-"를 빼서 정보를 받고 싶다. # replace 특정 문자열을 치환할 때 쓴다. ## 예시 replace() value = "010-1234-5678" after = value.replace("-", "") console.log(after) //0101234-5678 replaceAll() value = "010-1234-5678" after = value.replaceAll("-", "") console.log(after) //01012345678

# 배경 에러 발생 시 slack으로 알림을 받고 싶다. slack webhook을 사용하여 메시지를 받는 방법을 도입해보자. # Slack 워크스페이스 생성 1. 회사 | 팀 이름 입력 2. 팀원 추가 연습용으로 만들 것이기 때문에 이 단계는 건너뛰었다. 3. 채널 이름 작성한 일이 곧 채널이 된다. # Slack Webhook 설정 1. Slack 찾아보기 > 앱 클릭 2. webhook 검색 > Incoming Webhook 추가 클릭 3. Slack Webhook 추가하기 어떤 채널에 포스팅할지 설정한다. 앱 설정을 저장하고 URL을 통해서 보내고자 하는 내용을 보내면 완료 ## 예시 curl -X POST --data-urlencode "payload={\"channel\": \"#테스트\", ..

# 배경 데이터 보안을 위해 MySQL 서버 접속을 cmd창으로 진행하면서 MySQL Client를 사용하여 데이터를 볼 때 가독성을 높여서 보고 싶다. # MySQL 데이터 확인 일반적으로 데이터를 확인하는 방법 다음과 같이 데이터를 조회하면 컬럽의 수가 많으면 굉장히 보기 힘들다. > select * from mysql.user; ego를 사용하여 가독성 높이기 ego (\G)를 사용하여 행 별로 수직으로 나열이 되어 가독성이 올라간다. > select * from mysql.user \G

# 배경 DB 보안을 위해서 네트워크를 통한 DB 접근을 막았고, 그 과정에서 Workbecnh를 사용해서 볼 수 있는 방법을 찾았다. Workbench에서 SSH를 통한 접근을 설정을 제공한다. # SSH 설정 방법 기존의 Connection을 편집하거나 새로 생성한다. 그리고 Connection Method를 SSH로 선택한다 나머지 세팅을 다음과 같이 진행한다. SSH Hostname : 접근하고자 하는 서버 주소(or IP) SSH Username : 서버의 username SSH KeyFile : SSH private 키 파일을 선택해야 한다. MySQL Hostname : MySQL 서버 주소 MySQL Server Port : 3306 Username : 사용자 이름 비밀번호를 저장하여 사용..

# 배경 MySQL의 global timezone이 System으로 설정되어 있고, 그 과정에서 DB에 데이터를 넣을 때 UTC로 시간이 들어가고 있었다. 한국 로컬 시간으로 설정하는 것이 가독성이 좋기 때문에 이를 바꾸고 싶다. # 코드 설정 DB Connection 설정 코드에 로컬 타임 설정을 작성해야 한다. 예) Asia/Seoul => Asia%2FSeoul 로 작성한다. 수정 전 ConnectionString = "@tcp(127.0.0.1:3306)/data?parseTime=True" sql.Open("mysql", ConnectionString) 수정 후 ConnectionString = "@tcp(127.0.0.1:3306)/data?parseTime=True&loc=Asia%2FSeo..

+ 왜 저출산 대신 저출생이라는 단어를 사용하나요? 뉴닉은 ‘아이를 적게 낳는다’는 뜻의 ‘저출산(低出産)’보다 ‘아이가 적게 태어난다’는 뜻의 ‘저출생(低出生)’이라고 표현해요. ‘낳을 산’ 자는 여성이 아기를 적게 낳는 것을 뜻해, 인구 문제의 책임이 여성에게만 있는 것으로 여겨질 수 있거든요. 여자임에도 저출산이라는 단어가 그런 의미로 받아들여 질 수 있다는 생각을 하지 못했다. 우리나라의 저출생이 문제가 된다는 것은 알고 있었지만, 정말 심각하게 받아들이지는 못했던 것 같다. 뉴스레터를 읽다보니 사회의 문제를 나도 똑같이 생각하고 있고 그것이 그냥 현 사회의 너무 일반적인 모습이라고 생각했고, 고쳐져야 하지만 그게 실현 가능한가 라는 생각이 더 컸던 거 같다. 뉴닉 뉴스레터를 보면서 내가 기존에 ..

# 프롤로그 정말 갑자기 회의를 하다가 문득 내가 지금까지 회사에 들어와서 어떤 일을 했고 앞으로 어떤 일을 해야 하는지에 대해서 혼자 정리를 해보았다. 그러다가 문득 나는 지금 일을 잘하고 있는지... 내가 지금 하고 있고 해야 하는 일들의 방향이 올바르게 가고 있는지 생각을 해보게 되었다. # 1년 반 동안의 나를 되돌아보기 스스로를 DevOps 개발자라고 소개했지만, 어느 순간 DevOps 개발자라고 소개를 하는 나 자신에게 당당하지 못한 느낌이 들었었다. 그러던 중 이전에 같이 일했던 개발자 분의 권유로 경력직 면접을 봐보게 되었고, 그 이후에도 기회가 되어 경험 삼아 면접을 본 적이 있었다. 면접을 보면서 정말 그동안 내가 했던 작업들은 인프라에 지나지 않았다는 것을 알게 되었던 것 같다. De..