728x90

분류 전체보기 186

[http] 405 (Not Allowed) 해결..

발단 웹페이지를 구축하면서 분명 잘 실행되던 웹페이지가 api 요청을 보내면 바로 405를 반환하는 문제가 생겼다. 구글링해보면 대충 서버에서 인지하고 있는 요청이 아니라는 뜻으로 보인다. nginx나 다른 세팅을 봐도 문제는 없는데, 그리고 문제가 있을거면 애초에 정적파일도 보여지면 안될텐데 왜 api요청에서 문제가 생길까? 해결 과정 결국 405가 나오는 근본적인 원인은 서버에서 원하지 않는 요청이 들어와서 뱉어냈다는건데, 포스트맨에서 테스트하고 바로 깨달았다. 스웨거에서 테스트할땐 알아서 세팅된 Url을 반환해주니 이해하지 못했는데, api서버로 요청을 보낼때 api로 시작하는 엔드포인트로 보내야 하는데 그렇지 않고 스샷과 같이 auth/login 으로 보내고 있는 것을 확인할 수 있었다. 그렇다면..

개발/http, server 2023.11.28

[Nest | swagger] Authorization Bearer 로 적용해야 하는데 Basic으로 적용되는 경우

발단 jwt토큰을 서버에서 보냈고, 스웨거에서 테스트했을 때 보낸 시점에서는 정상적으로 Authrization Bearer 로 보낸 것을 확인했다. 그 이후 스웨거에서 Authorization에 토큰을 넣어 보냈는데도 Authorization에는 basic으로 들어오는 것을 확인했다. 해결 과정 1. 간단하다. 인가처리를 해야 하는 각 컨트롤러에 @ApiBearerAuth() 데코레이터를 넣어줘야 한다. 2. 넣어주게 되면 아래와 같이 열린 자물쇠 모양 그림이 생긴다. 3. 열린 자물쇠 모양이 그려져있는 api는 스웨거에서 토큰을 보내도록 장치를 마련해준다. 그리고 auth가 걸린 전체 api에 동일하게 적용하려면 우측 상단에 있는 초록색 Authorize를 클릭하면 되고, 혹은 해당 api에만 토큰을 ..

[nest | socket.io] 연결 성공한 이후 클라이언트 요청 응답오지 않는 경우

발단nest, socket.io 를 사용하여 채팅을 구현하고 있다. 웹소켓 쪽은 처음 해보다보니 공식문서 레퍼런스를 그대로 참고하고, 구글링한 내용들을 통해 구현했다. 포스트맨에서 테스트했을 때 분명 잘 연결되었는데, 이후 메세지를 전송했을 때 포스트맨에서는 잘 전송된 것처럼 보이지만 실질적으로 서버에서 반응이 없었다.   해결 방법아직 구현중이라 전체 코드는 나중에 올려보겠다. 지금은 문제에 대한 해결방법만 올려보려 한다. @WebSocketGateway(appConfig().CHAT_PORT, { namespace: "messages", cors: { origin: "*" }, transports: ["websocket"],})// ... @SubscribeMessage("messages")..

[프로그래머스 | JavaScript] 문자열 겹쳐쓰기

문제 설명 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. 입출력 예 my_string overwrite_string s result "He11oWor1d" "lloWorl" 2 "HelloWorld" "Program29b8UYP" "merS123" 7 "ProgrammerS123" 문제 풀이 function solution(my_string, overwrite_string, s) { let answer = ""; let first = my_string.slice(0, s); ..

[NEST | Prisma] 의도치 않은 DB 연결

Nest에서 서버를 열 때 DB Connection Pool을 필요할 때 확인하기 위해서 간단하게 로그를 찍어놨는데, 코드를 수정하면서 언젠가부터 의도치 않게 여러 번 DB연결을 하고 있음을 파악했다. 다음은 DB에 접근하는 코드다. @Injectable() export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy { constructor(private readonly configService: ConfigService) { super({ datasources: { db: { url: configService.get('DATABASE_URL'), }, }, }); } async onModuleInit()..

[prisma] 정의하지 않은 필드에서 생기는 오류.. 가 아니였다 ㅎㅎㅎ

prisma orm을 사용하면서 아래와 같은 에러가 발생했다. { "message": "\nInvalid `prisma.user.findUnique()` invocation in~~~ const user = await prisma.user.findUnique(\nError converting field \"createdAt\" of expected non-nullable type \"DateTime\", found incompatible value of \"null\".", "statusCode": 422 } user 데이터를 가져와야 하는데, user의 가입정보에 관한 것은 user테이블에 있지 않아서 createdAt이라는 필드는 없는데 에러내용을 살펴보면 c reatedAt이라는 필드는 non-nu..

개발/DB 2023.11.04

[ncp] ncp sens 최대 문자 길이 관련 오류

발단 ncp로 공지사항에 대해 안내문자를 보내는데 에러가 있지는 않지만 문자가 다 전송되지 않고 일부만 전송되었다. 해결과정 \n 줄바꿈이나 한 줄로 보내야 하는지 여러 가지를 테스트해봤지만 계속 문자 전송에 실패하지는 않지만 일부만 전송되는 문제가 있었는데, 문득 생각해보니 예전에 웹사이트에서 문자발송할 때 80자였나 특정 기준을 넘어가면 mms로 자동 전환되었던 기억이 났다. type을 확인해보니 SMS으로 해놓고 문자를 보내고 있었고, 공식문서에서 확인해보니 다음과 같았다. SMS는 메시지당 80byte 이하의 길이인 단문 메시지이며, LMS는 메시지당 2,000byte 이하의 길이인 장문 메시지입니다. MMS는 멀티미디어 파일(이미지/사진/그림)을 전송할 수 있습니다. 위 사항대로 별도의 멀티미디..

[NCP] ncp sens 문자발송시 401 unauthorized

제목과 같이 테스트하는데 401 unauthorized 에러가 나왔다. https://api.ncloud-docs.com/docs/common-ncpapi Ncloud API api.ncloud-docs.com NCP 공식문서 그대로 진행했고, 인증관련 에러라서 확인해봐야 할 것은 serviceId, accessKey, secretKey정도일 것이다. 분명 일치한다면... 뭐가 문제일까? 문제는 다른 곳에 있었다...... -,- makeSignature 함수에서 crypto로 암호화를 하는데 요렇게 변수가 들어간다. const key = makeSignature( accessKey, secretKey, method, uri, timestamp ); 그럼 방금 말했듯 변수들에 이상이 없다면 확인해야 할 ..

[AWS | Lambda] 파일을 못찾는 에러 Cannot find module 'index'

발단 간단하게 node.js로 디스코드 웹훅을 만들고 있는데, index.mjs파일을 못찾는 에러가 있었다. 다른 디렉토리 하나 없이 node modules와 package.json, index.mjs밖에 없는데 왜 경로를 못찾지..? 해결과정 1. 의심가는 부분은 먼저 __MACOSX 디렉토리였다. 맥의 finder에서 압축을 하면 자동으로 생기는 디렉토리인데, 이거때문에 루트보다 한단계 안에서 원하는 파일들이 나왔다. 그런데 그렇다고 해도 어차피 상대경로라 문제가 될 일은 없을텐데, 일단 거슬리니까 지워주자. 터미널에서 zip -d 압축파일명.zip "__MACOSX*" 을 입력해주면 깔끔하게 사라진다. 그런데 MACOSX 디렉토리와 그 안의 파일들은 사라졌는데.. 디렉토리부터 지운거라 쓸데없이 루트..

개발/http, server 2023.11.01

[cors] 오랜만에 만난 CORS에러.. 설정 후에도 별도의 메세지 확인되는 경우

회사에서 테스트용으로 간단하게 jquery로 페이지를 만들어 놓은 것이 있었는데, cors설정 이후에도 cors오류가 나타났는데, 뒷부분 메세지가 기존에 내가 자주 보던 것과 달랐다. `local`이라는 키워드가 눈에 띈다. The request client is not a secure context and the resource is in more-private address space `local`. 메세지를 얼추 확인해보면 적어도 private address 이상이여야 하는데 local로 요청한다는 그런 식이고, private address는 사설 ip를 의미하겠고, local은 말그대로 127.0.0.1을 의미하는 것일텐데.. 일단 검색을 해보자. 구글링해보니 대부분 https를 이용하거나 크롬의..

개발/http, server 2023.10.31
728x90