전체 글

· 개발
서론 OAuth2.0 을 이용하여 로그인을 개발하던 중.. 저는 Nest 가 먹기 좋게 감싸놓은 @nestjs/passport 패키지와 @UseGuard(AuthGuard(`${strategy명}`)) 을 이용하여 편안하게 개발하고 있었습니다. 그 때 동료가 저에게 로그인 프롬프트를 띄우는 경로와 콜백 경로가 같아도 인증이 잘 작동한다는 놀라운 사실을 알려주고 말았습니다. 같은 Guard를 사용하는데도 다른 동작을 한다니?? 하나는 외부 로그인 프롬프트를 띄워야하고 하나는 인증된 정보를 받아 처리해야하니 당연히 경로가 달라야겠지 하고 별 생각없이 '/login' 과 '/login/callback' 이라는 두 가지 경로를 만들던 저는 정말 하나로 통일해도 잘 작동한다는 사실을 알고 왜 그런지 궁금해졌습니다..
· 개발
Ghostpong 에서는 유저의 프로필 사진 업로드 기능을 지원하고 있습니다. 서버에 직접 static file 들을 업로드하고 serving 하는 기능을 구현했던 과정을 소개합니다. 1. serve static https://docs.nestjs.com/recipes/serve-static Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Obj..
· 개발
프로젝트 진행 중 작성한 wiki 를 옮겨와 편집했습니다. 팀원들 고생하지 말라고 필수적인 태그만 정리한 거라 부족한 점이 많습니다. Nest 와 Swagger 공식문서를 보면서 태그 쇼핑하시는 것을 추천합니다. 하지만 제가 프로젝트 시작할 때는 다른 사람들이 대체 무슨 태그를 쓰는 지 궁금했어서 기록용으로 남깁니다...ㅎㅎ ApiOperation Api에 대한 설명을 적는 태그입니다. 사용 예 @ApiOperation({ summary: '친구 신청하기 (닉네임)' }) 적용 스크린샷 Path 옆에 summary 의 내용이 나타납니다. 메소드 위에 주석 (/**/) 을 쓰면 더 상세한 표기가 가능합니다. (Nest 의 swagger plugin 을 적용했을 경우) Api{StatusCode}Respon..
· 개발
프로젝트 진행 중 작성한 wiki 를 옮겨와 편집했습니다. swagger OpenAPI Speciation (OAS) 를 활용할 수 있는 도구. OpenAPI 란 RESTful 인터페이스를 정의하기 위한 세계 표준이다. OAS 로 technology-agnostic API 를 설하고 개발, 사용할 수 있다. Use in nest! yarn add @nestjs/swagger nest 는 OpenAPI 를 데코레이터로 만들 수 있는 모듈을 제공한다. DocumentBuilder 로 OpenAPI 사양을 준수하는 기본 문서를 구축할 수 있다. 전체문서 (all HTTP routes defined) 를 생성하려면 SwaggerModule 의 createDocument() 를 사용한다. 순서대로 applicat..
· Errors
에러 내용 php-fpm 을 사용하는 도커 컨테이너 하나와 웹 서버로 nginx 를 사용하는 도커 컨테이너 하나를 띄우고 둘 사이에 통신할 수 있게 세팅하는 와중에 자꾸 502 에러나 connection reset by peer 가 발생하였다. 발생한 에러 curl -v localhost:1234 * Trying ::1:1234... * Connected to localhost (::1) port 1234 (#0) > GET / HTTP/1.1 > Host: localhost:1234 > User-Agent: curl/7.74.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 502 Bad Gateway < Server: ngin..
· tools
어느 순간부터 모든 웹페이지에 커서가 나타나기 시작했다. 구글링으로 해결법을 바로 찾을 수 있었다. 크롬 브라우저 세팅 (맥 단축키 : cmd + ,) 에서 "Navigate pages with a text cursor." 라는 기능을 찾아서 꺼주면 된다. F7 으로도 on/off 할 수 있다. 정식 명칭은 caret browing 이다. Firefox 와 Internet Explorer 에서도 지원한다. 마우스나 트랙패드를 사용할 수 없을 때 유용하다. 하지만 나는 Vimium extension 을 기본으로 사용하고 있기 때문에 도움이 되지 않았다... 이 글을 보시는 분들께도 Vimium을 추천하고 싶다! 마우스 없이 브라우징이 가능하다. https://chrome.google.com/webstore..
· 개발
2022.03.06 ~ 2022.04.14 진행. minishell 42 Seoul 2서클 과제로 bash 의 간단한 몇 가지 기능을 구현한다. 주요 기능에는 redirection () 과 pipe (|)처리, 환경변수 설정 및 사용, exit status, built-in command, signal 처리가 있다. 내가 주로 담당한 부분은 커맨드의 파싱 처리 부분이었으므로 파싱 과정에 대해서 다룰 것이다. 파싱에 앞서 고려할 점 처리 순서 쉘 커맨드가 들어왔을 때 파싱 후 어떤 순서로 처리되어야 하는 지를 고려해야 한다. 예를 들어 type == SYMBOL || (*head)->type == SYMBOL_HERE) { result = check_rdr(*head, (*ptr)->left); if (!..
· tools
1년 전에 겪은 오류지만 개인 노션에 정리해놨길래 공익을 위해 블로그 글로 발행하기로 했다. 오류명 Page load failed with error: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 원인 파악 Tomcat 서버를 실행하고 프로젝트 추가하여 Run As하면 해당 메세지가 나타난다. eclipse에서 일어나는 오류로 검색하면 xcode에서 주로 나타나는 오류. 앱 프로젝트 내에서 Info.plist 파일을 편집하라는 해결책을 구글링을 통해 찾았으나 워크스페이스에 작성해도, 프로젝트 내에 작성해도 같은 오류가 발생함. apple의 AT..
이제곱
지수와 블로그