728x90
반응형

이번 주 알게 된 점

최종프로젝트 1주차를 시작했다.

나는 소켓I.O 부분을 맡아 인스타그램에 있는 DM과 상태알림창을 만들기로 했다.

 

이번주 목표 달성 여부

이번주 목표인 DM기능을 구현했다.

하지만 데이터베이스와 연동된 DM이 아니라

로컬환경에서 데이터없이 휘발성으로 채팅하는 기능이다.

 

다음주 목표 세우기

DM기능 데이터베이스 연결

실제 서비스 가능할 정도로 구현

728x90
반응형
728x90
반응형

나에게 닥친 가장 큰 문제는

소켓관련 채팅 및 알람 ERD작성이 문제였다.

 

그리고 해당 문제에 대해 공부하던 도중

채팅관련 DB는 SQL보다 mongoose가 좋다는 사실을 알았고

강의와 블로그를 보며 데이터 연결을 시도했지만 에러가 계속 발생했다.

 

여러차례 시도하던중 데이터연결실패 10회이후,

상세한 에러문구를 발생한다는 것을 알았고 해당 문구를 보고 해결완료.

 

https://pyoja.tistory.com/208

 

[에러일기] 9회차 - 몽구스 데이터베이스 연결실패

1. 문제 [mongoosemodule] unable to connect to the database 강의와 문서들을 보며 몽구스를 연결시도했다. 그런데 서버실행만 하면 계속 위와 같은 문구가 발생하여 나를 괴롭혔다......ㅠㅠ 수차례 여러가지

pyoja.tistory.com

 

DB연결이 안될때가 정말 화가 나고 짜증난다.... 10번 기다려서 상세에러문구 받는걸 잊지 말아야지.

728x90
반응형
728x90
반응형

1. 문제

[mongoosemodule] unable to connect to the database

강의와 문서들을 보며 몽구스를 연결시도했다.

그런데 서버실행만 하면 계속 위와 같은 문구가 발생하여 나를 괴롭혔다......ㅠㅠ

수차례 여러가지를 시도 했는데 안되니까 멘붕

 

2. 시도해본 것들

import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { MongooseModule } from '@nestjs/mongoose';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ChatBackEndModule } from './chatBackEnd/chatBackEnd.module';
import { ChatFrontEndModule } from './chatFrontEnd/chatFrontEnd.module';
import { TypeOrmConfigService } from './common/config/typeorm.config.service';
import * as mongoose from 'mongoose'; //몽구스
import { LoggerMiddleware } from './logger/logger.middleware'; //미완성 로그 => 강의를 중구난방으로 들어서 찾기 어려움

@Module({
  imports: [
    ConfigModule.forRoot({ isGlobal: true }),
    //몽구스 연결 process.env.MONGO_URL
    MongooseModule.forRoot(process.env.MONGO_URL, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      // useCreateIndex: true,
      // useFindAndModify: false,
    }),

    TypeOrmModule.forRootAsync({
      useClass: TypeOrmConfigService,
    }),
    ChatBackEndModule,
    ChatFrontEndModule,
  ],
})
//몽구스 추가설정
export class AppModule implements NestModule {
  private readonly isDev: boolean = process.env.MODE === 'dev' ? true : false;
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggerMiddleware).forRoutes('*');
    mongoose.set('debug', this.isDev);
  }
}

app.module.ts의 구성이었다.

시도해본 것은 환경설정값 대신 직접 입력하거나,

ConfigModule의 순서를 바꾸거나

useNewParser을 주석처리하거나 온갖 해결방법을 찾아서 다 시도해봤지만 실패했다.

 

3. 해결과정

 

방법을 찾던 도중 스택오버플로우에서 다음과 같은 글귀를 봤다

https://stackoverflow.com/questions/70730514/unable-to-connect-to-the-database-retrying

데이터 연결하면 Retrying(3)... (4)...

이렇게 뜨는데 상세한 에러 문구가 없어서 뭐 어쩌라고! 라는 심정이었다

그런데 10번만 기다리면 상세문구를 준다고?

 

4. 알게 된 점

 

몽고디비, 몽구스 연결시도 10회를 채우기로 했다.

도대체 뭐가 문제인지 궁금했다. 상세메시지를 봐야 해결할 수 있지 않을까?

상세 에러문구

강의보고 따라 작성한 옵션이고, 나는 최신몽구스를 설치한 것 같은데

해당 옵션은 지원하지 않는다고 한다. 주석처리하니 문제가 해결되었다.

 

역시 에러코드가 자세히 나와야 문제를 해결할 수 있다.

몽구스가 10회 시도후 에러문구를 발생시킨다는것을 잊지말자.

728x90
반응형
728x90
반응형

오늘도 오후4시쯤까지 팀원들과 와이어프레임,ERD에 대해 더 깊게 상의하고

튜터님 의견을 들으며 작성해갔다.

 

이후로는 소켓 기능구현하면서 문제가 생기는 부분을 수정해나갔다.

기존에 초기값을 주면서 접속하면 기본방으로 가는걸 없애고,

메시지 입력없이 전송하면 입력이 안되도록 설정하였다.

 

다음날은 소켓 ERD 작성과 데이터 입력하는 방법을 찾아낼 예정이다.

728x90
반응형
728x90
반응형

삼일절이자 공휴일인 최종프로젝트 3일차이다.

 

쉬는날인만큼 나가서 사람을 만날까 싶다가도

nestjs 소켓에 대한 걱정때문에 결국 집에서 공부하기로 했다.

 

덕분에 전혀 감이 안잡혔던 nestjs에서 소켓을 어떻게 사용해야하는지

조금은 감이 잡힌 것 같다.

 

많은 자료를 찾아봤지만

아래 링크에서 가장 많은 정보를 얻었다.

완성된 코드가 깃허브에 있어서 내려받아서 코드를 분석했다

https://blog.ewq.kr/37

 

NestJS + Websocket으로 채팅만들기 #1

최근 Websocket을 활용하여 사이드프로젝트를 진행한것이 있다. 추후에 오픈소스로 공개 할 예정이지만 kimpga 를 클론코딩하여 만든 https://hsct.io 이다. Websocket Client를 활용하여 서비스 구성하는것

blog.ewq.kr

 

728x90
반응형
728x90
반응형

1. 문제

./adapters/socket-io.adapters' 모듈 또는 해당 형식 선언을 찾을 수 없습니다

nestjs에서 소켓을 공부하고 있던 중

다른 완성된 파일을 받아서 따라 치고 있었다.

그런데 위와 같은 문구가 발생하면서 안된다ㅠㅠ

 

2. 시도해본 것들

구글에 폭풍검색하고, gpt에게도 물어봤는데 해당 방법대로 해도 되지 않는다.

GPT도 패키지를 설치해야 한다는데 사실 깔려있는데 계속 되지 않았다.

그러던 중 해당 파일을 퍼온 블로그를 다시 확인했다.

그냥 패키지에서 가져온 것이 아니라 커스텀해야 했기에 특정경로에 파일을 만들었어야 했다.

 

3. 해결과정

 

모듈 또는 형식을 찾을 수 없습니다 => 패키지 설치를 잘못했다

라는 생각이 박혀있었다. 하지만 그게 아니라 경로의 문제일 수 있다.

import { SocketIoAdapter } from './adapters/socket-io.adapters';

여기서 from뒤에 빨간줄이 그어지면 그 폴더와 파일이 없다는 것이다.

 

4. 알게 된 점

 

모듈 또는 형식을 찾을 수 없습니다

라는 문구가 뜬다면 2가지를 확인하자!

 

첫 번째, 패키지를 잘 설치했는가? (json파일을 보자)

두 번째, 해당 경로가 존재하는가?

728x90
반응형
728x90
반응형

오늘은 팀원 모두 ERD작성과 API 명세서를 작성했다.

ERD는 다 같이 소통하면서 정리하였고 이후에 튜터님이 와서 고쳐야 할 점을 얘기해주었다.

 

API명세서 같은 경우 내가 맡은 소켓부분은 일반 명세서와 달라서,

현재 소켓부분에 익숙하지 않기 때문에,

작업을 진행하면서 반대로 코드 작성후 명세서를 수정해나가야 할 것 같다.

 

튜터님의 서면피드백이 오기전까지

시간이 남아서 노드소켓을 복습했고 이후에

nest.js 소켓을 찾아 공부했는데 어려웠다.

 

노드소켓은 이해하고 뭔가 실습할 수 있을 것 같은데

nest소켓은 아직 기초조차 이해가 안가는 느낌..

 

외국인 영상과 공식문서 등 여러방면으로

공부할 방법을 찾아야 할 것 같다.

728x90
반응형
728x90
반응형

1. 문제
-

2. 시도해본 것들

-

 

3. 해결과정

-

 

4. 알게 된 점

-

최종프로젝트 1일차가 시작되었다.

모든 팀중 유일하게 4인팀이 되어서 팀편성표를 보고 씁쓸했다.

특히 다른팀은 대부분 리더, 부리더를 신청한 에이스들이 존재하는 팀이다.

 

팀프로젝트를 잘하려고 그리고 이끌어나갈려는 사람들이기에

더욱 의욕이 넘칠텐데 리더,부리더도 없을 뿐만 아니라

4인조가 되다니 마음이 이상했다.

 

팀원들 또한 같은 마음이었다. 버림받은 기분까지 들었지만

그래도 정해진 결과이니 열심히 해보자 하던 도중 갑자기 팀원 한명을 다른 팀원과

바뀌었다는 매니저의 얘기가 있었다.

 

그러자 다른 팀에서 온 팀원은 굉장히 화가 났다.

우리와 같은 이유다. 5인과 리더가 있는 팀에서

4인과 리더가 없는 팀으로 오니 화가난 것이다.

 

결국 바뀐 결과는 없어졌고, 왜 리더 부리더도 없는 4인팀이 만들어졌냐고 하자

다면평가에서 좋은 평가를 받은 사람들이고, 각자 1인분 하는 사람이기 때문이라고 했다.

 

그래서 더 씁쓸했다. 난 아직 1인분을 하는 실력이 아닌데 4인팀이라니...

그런 소동까지 있어서 팀 분위기는 더 안좋아졌지만

일찍 점심 먹으면서 마음을 다잡자고 팀원끼리 얘기를 나눴고

그 이후로 다 같이 프로젝트 S.A를 작성했다.

 

팀노션, 기획서 작성, ERD, 와이어프레임 등

저녁 10시까지 이야기를 나눴고 어느정도 윤곽이 갖춰졌다.

이제 많은 일을 해야겠지만 우선 기능구현에 대한 압박이 생겨서

산책 다녀온 후 소켓에 대한 공부를 했다.

 

하루종일 많은 일이 있었지만,

주어진 상황에서 최선을 다해야겠다.

728x90
반응형

+ Recent posts