서비스개발(Web, App)
Nest JS 프레임워크 공부하기 (Node.js) - 0
서비스를 구현하기 위해 처음으로 배웠던 기술 스택은 Node.js였다. 당시에는 구현을 할 수 있으면 된다고 생각했고, 가볍게 구현하기 쉽다는 소리를 들었기 때문이다. 또한 프론트에서도 js 백엔드에서도 js를 활용하면 1가지 언어로 2가지를 다 구현 가능한 것이 마음에 들어 시작하게 되었다. 3학년과 4학년 동안 꾸준히 서비스를 만들어보고, 해커톤도 나가보니, 점점 코드의 체계적인 구조가 필요하다는 것을 깨닫았고, 당시에는 따로 프레임워크를 배우지 않고, 주로 사용하는 구조를 직접 나누고 구현했다. 물론 Java Spring이나 Nest.js에 대해 들어보기도 했으나, 당시 새로운 기술을 배우고 적용할 시간이 부족할 뿐더러 아직 필요성을 느끼지 못했다. 그러나 졸업학기가 되고 취직 준비를 하면서 기업의..
Node.js ioredis(Redis) 외부 접속
socket io를 사용한 채팅서버 개발중에 local과 server에서의 db를 통합시키기 위해서, ioredis로 외부 접속을 하기 위한 방법에 대해 정리하기 위하여, 포스팅을 한다. 먼저 로컬에서 Redis 인스턴스를 선언하는 부분이다. const Redis = require("ioredis"); const redisClient = new Redis({ host: 'Domain or IP', port: port, }); module.exports = redisClient; host 부분에 도메인 혹은 IP를 입력하고 port 부분에 열린 port를 넣어주면 된다. 그리고 Redis의 config도 바꿔주어야 한다. /etc/redis/redis.conf 파일을 수정해준다. #bind 127.0.0...
socket.io에서 사용되는 Redis (Pub/Sub 구조)
Redis 의 Publish / Subscribe 구조 : 발신자(게시자)가 특정 수진자(구독자)에게 메시지를 보내도록 프로그래밍 되지않은 pub/sub 메시징 패러다임이다. 게시된 메시지는 구독자에 대한 정보 없이 채널로 특성화된다. 구독자는 하나 이상의 채널에 관심을 표하게 되면, 오직 관심있는 pub들의 메시지들만 받게 된다. foo와 bar 채널을 구독하기 위해 client는 다음의 명령어를 실행한다. SUBSCRIBE foo bar 다른 클라이언트가 foo나 bar에 보낸 메시지들은 구독한 client에게 pushed 됩니다. Pub/Sub는 key에 대해 일체의 간섭이 없게 만들어졌습니다. 1보다 숫자가 많은 10번 db에서 publising 하더라도, 1번 db에서 subscribe 할 수 ..
Redis란?? (Redis 정의 및 설명)
Redis는 오픈소스의 In-memory 방식의 데이터 저장 소프트웨어이며, 데이터베이스, 캐쉬, 메시지 브로커(message broker; 송신자의 메시지 프로토콜 형식으로부터의 메시지를 수신자의 메시지 프로토콜 형식으로 변환하는 중간 컴퓨터 프로그램 모듈)로써 사용된다. Redis는 String, Hash, list, set, sorted set의 데이터 구조를 사용하고 있으며, replication(복제), Lua scripting (루아 스크립트), LRU eviction (LRU 캐싱방식), transactions (트랜잭션), and different levels of on-disk persistence (다른 레벨의 디스크 지속성)등의 사용된다. Redis는 원자성 실행(atomic oper..
2. Jupyter Notebook 사용
쉘을 그때그때 키지 않고, Python에서 제공하는 Jupyter Notebook을 이용해서, 접속할 수 있다. 먼저 python3와 pip를 설치한다. sudo apt install python3 sudo apt install python3-pip pip를 설치하고 나면, pip를 이용해서 jupyter Notebook을 설치한다. ( pip는 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 패키지 관리 라이브러리이다.) sudo pip3 install notebook notebook을 세팅해주기 위해 python3으로 들어간다. python3 from notebook.auth import passwd passwd() notebook.auth에 passwd 부분을 가져와서 자신이 사용할 패스워드를..
1. Git이란?
1. 버전관리 Git은 linux를 만든 리눅스토발즈가 제작한 분산버전관리시스템(DVCS)이다. 현재 IT분야에서 Git을 이용해, 프로그램 만드는 것을 협업하고 버전을 관리하고 있어서, IT분야에 종사하고 있는 종사자나, 곧 IT분야로 뛰어들 학생들이라면, 꼭 학습해야 하는 프로그램 이다. 먼저, 버전관리 시스템에 대해 알아보자. 버전 관리 시스템(VCS)은 파일변화를 시간에 따라 기록했다가, 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS의 장점은 다음과 같다. - 각 파일을 이전 상태로 되돌릴 수있다. - 시간에 따라 수정 내용을 비교해 볼 수 있다. - 누가 문제를 일으켰는지 추적할 수 있다. - 언제 만들어진 이슈인지 알 수 있다. - 파일을 읽어버리거나 잘못 고쳤을 때도 쉽..
0. 프롤로그
IT분야에서 일을 하는 프로그래머들이라면, 한번은 들어봤을 것이다. 나는 16년도 학교에 입학할 당시에 처음으로 그 단어에 대해서 들었었고, 공부를 했었지만, 아무도 제대로 알려주는 사람도 없었거니와 머리가 백지에 가까웠길래 제대로 활용하지 못했다... (기껏해봐야 github에 파일 올려서 원격 저장소를 사용하는 느낌) 이후, ide나 TextEditor에서 gui로 간편하게 지원해줘서 사용해 보았지만, 제대로된 Git 이해의 필요성을 느꼈었다. 지금도 완전활용까지는 아니지만, 협업을 하고 관리하는데 문제가 없을 정도는 된 것같다. 2020-2학기 튜터링을 진행하는데 우리 튜티친구들이 Git에 대해 전혀 모르고 있어, 간단하게 정리해서 알려주려고 한다. 그 내용을 정리하는 김에 블로그에 포스팅할 생각이..
1. 클라우드 서버 세팅 (AWS ec2 설정)
드디어 다시 심해진 코로나 시국에 440만원짜리 6개월 스트리밍 서비스를 듣기 시작했다.... 이번학기에 linux를 사용하는 수업이 많아서, 노트북을 사서 우분투를 설치할까도 고민해봤지만, 아직 내 노트북이 성능적으로는 문제가 없어서 계속 사용하려고 한다. (대신 나중에 돈을 더 모아서 맥북을 노리고 있다...) 그래서 아마존에서 제공하는 AWS ec2를 사용해서, 서버를 하나 두었는데, 유튜브에서 잘 정리되 있는 강의가 있었다. 아마존 세팅하는 방법을 기록해 두려고 한다. 0. 먼저 aws에 가입한다 -> 가입 정도는 충분히 혼자 할 수 있을 것이라 생각한다. 1. 콘솔에 로그인 한 후 서비스 - EC2로 들어간다. 2. 프로필 옆에 지역에서 아시아 태평양 (서울) 을 선택한다. 3. 서버를 생성하기..