Dev

Dev

AWS에서 RDS 인스턴스 생성하기

0. 들어가며 이번에 새로운 프로젝트를 진행하면서, AWS에 새로운 RDS 인스턴스를 생성할 일이 생겼다. 몇 번의 크고 작은 프로젝트를 거치며 여러 번 진행했던 일이지만, 할 때마다 헷갈리고 자료를 찾아봤던 기억이 났다. 이번 기회에 확실하게 블로그에 정리해두면 좋을 것 같아 글을 작성하게 되었다. AWS 계정은 이미 존재한다고 가정하고 진행하겠다. 1. 보안 그룹 생성 우선, RDS 인스턴스에 적용할 보안 그룹을 생성해야 한다. 보안 그룹은, 특정 인스턴스(EC2, RDS 등등)에 대한 트래픽에 대한 규칙을 정하는 것이라고 생각하면 된다. AWS Console 검색 창에 '보안 그룹'을 입력하고, EC2 기능 - 보안 그룹을 클릭한다. 리전이 '서울'로 되어있는지 확인하고, '보안 그룹 생성' 버튼을..

Dev

VSCode에서 SSH로 리눅스 서버 원격 연결하기

기존 상황 이번 학기 학교에서 '리눅스 프로그래밍' 수업을 수강했다. 실습은 교수님의 리눅스 서버에 원격으로 접속해서 진행해야 했는데, 윈도우는 자체 터미널을 내장하고 있지 않기 때문에 Terminal 앱을 설치하고 Git Bash를 연결해 사용하고 있었다. 백엔드 개발자라면 터미널과 vim 에디터에 익숙해져야 했지만, IDE 환경에 비해 불편한 것은 당연했다. 최종 과제를 진행하던 도중, 이러한 불편함을 개선해 조금 더 편리하게 과제를 하고 싶다는 생각이 들었다. VSCode에서 플러그인을 설치하고 SSH 연결을 진행했고, 나에게 익숙했던 VSCode 환경에서 작업을 진행할 수 있었다. 오늘은 이 방법에 대해 간단하게 소개해보려고 한다. 적용 방법 우선, Visual Studio Code를 실행시키고,..

Dev

AWS RDS, PostgreSQL timezone 변경하는 방법

0. 들어가며 인턴을 시작하고 회사에서 기획 관련 업무들을 진행하고 있어서, 개발 공부에 신경을 많이 쓰지 못했다. 앞으로는 조금 더 노력해서 개발 공부도 열심히 하고, 배우는 내용들을 최대한 기록하고 공유하려고 한다. 1. 릴리즈 막바지 작업 1월에 시작했던 프로젝트 '해빗 HAVIT'이 드디어 릴리즈를 앞두고 있다. 다른 팀원분들도 많이 바쁘셔서 작업이 전체적으로 많이 밀리고 있었는데, 정말 릴리즈가 코 앞에 온 만큼 나도 막바지 작업을 열심히 달리고 있다. 프리티어 기간 연장을 위해 AWS 계정을 새로 생성했고, DB와 API 서버 모두 dev / prod 환경 분리를 진행했다. (이 과정에서 겪었던 문제점들과 해결 과정은 조만간 정리해서 또 다른 글을 작성 할 예정이다.) 이 중 오늘은 푸시 알림..

Dev

NVIDIA DLI - 딥러닝의 기초

최근 꽤 여유로운 삶을 살고 있고, 소진된 에너지를 많이 회복했다. 덕분에 원래의 나처럼, 많은 것을 배우고 다양한 경험을 하고 싶다는 생각을 하고 있었다. 그러던 중 학교 공지사항에서 무료 딥러닝 기초 교육을 발견했고, 시간이 잘 맞아 망설임 없이 바로 신청했다. 기초 난이도이고, 비전공자 분들도 수강할 수 있는 강의라 크게 어려울 것 같지는 않았다. 하지만, 딥러닝이 처음이고, 파이썬도 자주 사용하지 않아 막연한 걱정이 조금 들긴 했었다. 혹시나 몰라서 강의를 듣기 전에 구글링을 통해 파이썬 기초 문법을 간단하게 훑은 다음 강의에 들어갔다. 자체 제작한 프로그램이 아니라, NVIDIA에서 운영되고 있는 교육 프로그램이 그대로 제공되었다. 강사분 역시 NVIDIA 강의를 진행하시는 GIST 소속의 유능..

Dev

DB에서 상대적 위치 값을 활용해 드래그 앤 드롭으로 인한 순서 변경 처리하기

최근 나는 드래그 기반의 계획표 서비스인 'DRAG ME'를 개발하고 있다. 우리 서비스의 특징은, 이름에서도 알 수 있듯이 '드래그' 기능이 굉장히 많이 사용된다는 점이다. 특정 계획에 대한 시간을 설정할 때, 특정 계획을 다른 날짜로 이동할 때 모두 드래그 기능이 사용된다. 다양한 드래그 기능들 중, 로직을 구성하고 DB를 설계하는 데 가장 많은 고민을 들였던 부분 중 하나가 바로 '드래그 앤 드롭'으로 인한 순서 변경이었다. 오늘 글에서는 이 기능을 구현하는 과정에서 직면했던 문제를 소개하고, 이를 어떻게 구현했는지에 대해 소개하려고 한다. 아래 화면에서, 사용자는 표지판 모양의 계획블록을 통해 계획을 세우고 시간을 관리할 수 있다. 그리고 이 계획블록들은, '해당 영역' 내에서 순서 변경이 가능하..

Dev

[THE SOPT 도커 스터디] Week5 - 3. 도커 스웜

1) 도커 스웜을 사용하는 이유 도커 엔진을 구동하다가, CPU나 메모리, 디스크 용량과 같은 자원이 부족해지는 경우 현실적으로 새로운 서버를 새로 사는 것은 매우 어려움 가장 많이 사용하는 방법은 여러 대의 서버를 클러스터로 만들어 자원을 병렬로 확장하는 것 도커에서 제공하는 이를 위한 공식 솔루션이 바로 ‘도커 스웜’과 ‘스웜 모드’ 2) 스웜 클래식과 도커 스웜 모드 도커 스웜의 두 가지 종류 컨테이너로서의 스웜 (도커 버전 1.6 이후부터 사용 가능) : 스웜 클래식 여러 대의 도커 서버 하나의 지점에서 사용하도록 단일 접근점 제공 일반적인 도커 명령어, 도커 API로 클러스터의 서버 제어, 관리 가능 분산 코디네이터(각종 정보 저장, 동기화), 매니저(클러스터 내 서버 관리, 제어), 에이전트(..

Dev

[THE SOPT 도커 스터디] Week4 - 2.5. 도커 데몬

1. 도커의 구조 도커의 구조는 크게 두 가지로 나뉨 : 클라이언트로서의 도커, 서버로서의 도커 도커 서버 : 실제로 컨테이너 생성, 실행, 이미지 관리 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행 도커 엔진은 외부에서 API 입력을 받아 도커 엔진의 기능을 수행 도커 프로세스가 실행되어 서버로서 입력을 받을 준비가 된 상태가 '도커 데몬’ 도커 클라이언트 : API를 사용할 수 있도록 CLI를 제공 유닉스 소켓을 통해 도커 데몬의 API를 호출, 입력된 명령어 전달 2. 도커 데몬 실행 service docker start service docker stop dockerd # 도커 데몬에 대한 정보 출력, 입력을 받을 수 있는 상태 3. 도커 데몬 설정 설정 파일의 DOCKER_O..

Dev

[THE SOPT 도커 스터디] Week3 - 2.4. Dockerfile

2.4 DockerFile Dockerfile을 사용하는 이유 Dockerfile을 사용하지 않고 이미지를 만드는 경우 컨테이너 생성 패키지, 설치 및 환경 세팅 소스코드 복제 컨테이너 커밋 Dockerfile을 사용 할 경우 Dockerfile에 이미지 생성을 위해 필요한 작업들 기록 build 위 처럼, Dockerfile을 사용하면 훨씬 덜 번거로움. 애플리케이션 빌드 및 배포 자동화 가능 Dockerfile 작성 ADD와 COPY ADD는 외부 Url, tar 파일에서도 파일 추가 가능 하지만 ADD는 권장되지 않음. 정확히 어떤 파일이 추가될 지 개발자가 미리 알 수 없기 때문 CMD 명령어 컨테이너가 시작될 때마다(생성된 이미지로 만들어 진 컨테이너 안에서) 실행할 명령어 설정 컨테이너를 실행..

Dev

[THE SOPT 도커 스터디] Week2 - 2.3. 도커 이미지

도커 허브 (Docker hub) 도커가 공식적으로 제공하고 있는 이미지 저장소. Github에 코드를 올리는 것 처럼 도커 허브에 이미지 업로드 가능 도커 허브 사이트에 직접 방문하거나, 도커 엔진에서 ‘docker search’ 명령어를 사용해 원하는 이미지 탐색 가능 도커 이미지 생성 사용자가 직접 특정 애플리케이션을 위한 개발 환경 구축 후 이미지 생성하는 경우 사용 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] docker commit \\ -a "hyositive" -m "docker image by commit!" \\ test_container \\ test_container:first 위 명령어를 통해 test_container 컨테이너를 ..

Dev

[WE SOPT APPJAM 개발 아티클] Firebase Auth - Kakao Login (1)

나는 현재 대학생 IT벤처창업 동아리 SOPT에서 3주 장기 해커톤인 Appjam(앱잼)에 참여하고 있다. 내가 속한 팀 HAVIT(해빗)에서는, 사용자가 기억하고 싶은 콘텐츠를 카테고리별로 아카이빙 할 수 있는 앱을 개발하고 있다. 사용자의 쉬운 사용과 보안 향상을 위해 최초 기획 단계에서는 소셜 로그인 구현을 계획했으나, 시간적 제한으로 인해 후순위로 미뤄 두었다. 당장 구현하지는 않지만, 내가 담당했던 기능이기도 했고 릴리즈까지 염두에 두고 있기에 소셜 로그인에 대해 공부한 내용에 대해 정리 해 보고자 한다. 사실 SOPT에 들어오기 전에도, Passport.js라는 라이브러리를 활용해서 페이스북과 구글 소셜 로그인을 구현해 본 적이 있었다. 하지만 이번 프로젝트에서는 서버를 FIrebase 환경에..

HYOSITIVE
'Dev' 카테고리의 글 목록