전체 글

전체 글

    Nest JS 프레임워크 공부하기 (Node.js) - 1

    Nest JS 프레임워크 공부하기 (Node.js) - 1

    npm install -g @nest/cli nest new nestJS 시작에 앞서 nest/cli를 npm을 통해 설치를 하고 nest 명령어를 통해 새 프로젝트를 생성한다. npm과 yarn중에 편한 것을 고르면 된다. 필자는 npm을 사용하였다. 처음에 패키지를 시작하기 위해 설치를 하는데 시간이 걸리니까 잠깐 기다리면 알아서 구조와 필요한 dependency를 설치해준다. 만들어진 nest-js 디렉토리를 vscode로 열고 src 파일을 보면 코드 구조는 다음과 같으며, 각각의 설명이 있다. src ㄴapp.controller.spec.ts app.controller.ts app.module.ts app.service.ts main.ts app.controller.ts 하나의 라우트가 있는 기..

    Nest JS 프레임워크 공부하기 (Node.js) - 0

    서비스를 구현하기 위해 처음으로 배웠던 기술 스택은 Node.js였다. 당시에는 구현을 할 수 있으면 된다고 생각했고, 가볍게 구현하기 쉽다는 소리를 들었기 때문이다. 또한 프론트에서도 js 백엔드에서도 js를 활용하면 1가지 언어로 2가지를 다 구현 가능한 것이 마음에 들어 시작하게 되었다. 3학년과 4학년 동안 꾸준히 서비스를 만들어보고, 해커톤도 나가보니, 점점 코드의 체계적인 구조가 필요하다는 것을 깨닫았고, 당시에는 따로 프레임워크를 배우지 않고, 주로 사용하는 구조를 직접 나누고 구현했다. 물론 Java Spring이나 Nest.js에 대해 들어보기도 했으나, 당시 새로운 기술을 배우고 적용할 시간이 부족할 뿐더러 아직 필요성을 느끼지 못했다. 그러나 졸업학기가 되고 취직 준비를 하면서 기업의..

    [프로그래머스] 단어 변환(DFS/BFS)

    문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로..

    [프로그래머스]  네트워크 (DFS/BFS)

    [프로그래머스] 네트워크 (DFS/BFS)

    문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[..

    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 구조)

    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..

    2021 소프트 & 글미 연합 해커톤

    이번 7월 29일부터 8월 1일까지 총 3일에 걸친 해커톤을 진행하였다. 혼자 4학년이고 나머지 팀원들이 2학년이었으며, 개발을 담당한 친구들은 다들 웹을 조금만 다루어 보았기 때문에, 걱정 되었지만, 애자일 정신으로 믿고, 잘 해보자! 라는 생각으로 접근했던것 같다. Front도 어느정도 할 줄 알아서, 잘 해결될 거라고 생각했지만, 생각보다 CSS에 큰 봉변을 당했으며, 디자이너가 있었기 때문에, 중요한 상황이었다. CSS bootstrap을 사용하지 않아서 발생했던 부분들이 꽤나 힘들었고, CSS에서 flex는 어느정도 사용할줄은 알았지만, 부모와 자식간의 어떤 속성을 써야 적용이 되고, position은 어떻게 적용이 되는가에 대해, 더욱 생각해 보게되는 일정이었다. 그리고 아쉬웠던 점은, 지속적..