분류 전체보기 (11) 썸네일형 리스트형 MSA 공부하기 전에 기본 예습하기 using NestJS # Intro백엔드 개발자로서 한 스텝 더 나아가기 위해서 정말 많은 고민을 했다. 기술스택 하나를 더 공부할지 현재 내가 많이 다루는 기술스택들 중에서 한 가지 기술을 골라 더 깊게 공부를 할지 아니면 프로그래밍적으로 더 공부를 할지..나한테 어떻게 더 유리하게 적용될지 철저하게 수치로 표현하면서 계산을 했을 때, 기술 하나를 골라 더 깊게 공부를 하는게 더 이득이 많이 남을거라는 결론이 나오기는 했다.근데.. 프로그래밍적으로 공부를 더 하고 싶었다. 더 정확하게 표현을 하자면 클린 아키텍처, 소프트웨어공학, OOP, FP, AOP 등 이런 내용들에 대해서 공부를 안한지 너무 오래되어서 더 하고 싶었던 것 같다. 그래서 클린 아키텍처, OOP, AOP 등 백엔드 프로그래밍을 공부하면서 MSA와 같이 공.. Nest.js를 활용하여 Login, AuthGuard 구현하기 LoginBasic $token으로 이메일, 패스워드 요청Basic $token인지 검사base64로 된 요청값을 utf-8을 이용하여 디코딩디코딩 된 값은 : 형태로 되어 있음이메일, 패스워드 검사 후 access, refresh token 발급 AuthController// basic token@Post('login') // 로그인loginUser(@Headers('authorization') token: string) { return this.authService.login(token);}Headers pipe에서 authorization 헤더를 받아옴받은 데이터를 AuthService에 넘겨줌 AuthServiceasync login(token: string) { const { email, .. Jest 많이 썼던 내용들 정리 (1) Intro이 포스팅은 Jest 공식문서를 보고 공부한 내용들이 아니라 TDD를 하면서 많이 썼던 내용들이나 헷갈렸던 내용들을 정리할 필요가 있다고 생각해서 정리해봤다 toBetoBe는 정리할 내용도 없지만 그래도 가장 기본적인 메서드이기 때문에 정리해봤다toBe는 Jest의 매처 중 하나로, strict equality를 검사한다. 즉 JavaScriptdml === 연산자와 동일하게 작동하며, primitive value들을 비교할 때 주로 사용하고 있다 toBe 예시describe("toBe", () => { it("sum", () => { expect(sum(1, 2)).toBe(3); expect(sum(1, 2)).not.toBe(4); }); it("subtract", () .. [Side project] 축구 동호회 공식 사이트 만들기 #1; Intro사이드 프로젝트 개발을 진행을 하면서 모든 개발 상황을 티스토리에 업로드를 하지는 않겠지만, 대표적으로 몇 개만 올릴 예정이다. 유저 회원가입아직 AOP 관련 기술(인터셉터, 필터, 미들웨어 등)을 도입하지 않았고 또한 토큰 발급도 하지 않았다. 개인적인 생각과 경험으로 처음부터 완벽하게 진행을 하게 되면 하나의 모듈을 만드는데 걸리는 시간이 오래 걸릴 뿐더러 완벽하지도 않다.. 1차, 2차, n차 스프린트 개발을 진행을 하면서 기능 수정, 보완, 추가를 진행하며 필요하다면 리팩토링을 할 때가 길게 봤을 때 가장 효율적이고 성능이 괜찮게 나왔었다. 그래서 이번에 업로드하는 API 또한 기능적으로 완벽하지는 않다. [TDD] Test Case #1; not matched passwordDTO로.. [Side project] 축구 동호회 공식 사이트 만들기 Intro축구를 하면서 항상 회원 부족으로 풋살도 제대로 못할 정도로 고군분투하고 있었고 회원이 좀처럼 모아지지 않자 어떻게 하면 회원이 좀 더 빨리 모아지고, 유령회원이 없게 만들 수 있을까 고민을 하고 있던 중에 카카오톡 오픈채팅 말고도 다른 방법으로 홍보를 하면 회원들이 모일 것이고, 사람들이 많아지면 회원들간의 단합력이 좋아지지 않을까 생각을 했다. 그래서 친한 형이자 동호회 회장한테 연락을 해서 동호회 "공식 사이트를 만들어서 여러 기획을 진행을 해보고, 동호회 마크도 만들어볼까?"라고 의견을 전달했었는데 좋은 생각있거 같다고 바로 진행해주면 좋겠다고 해서 진행을 하게 됐다. 그래서 갑작스럽게 혼자서 기획부터 시작해서 프로젝트를 진행을 하게 된다! Tech stack기술 스택은 내가 가장 많.. 간단한 게시판 만들면서 TDD 맛보기 (POST 요청) IntroJest를 이용한 어노테이션이나 문법들 복습해봤으니 실제 API를 만들면서 CRUD를 TDD 해보려고 한다.DB는 연결하지 않고 간단하게 controller - service의 관한 테스트 코드를 만들어보려고 한다. BoardController 유닛테스트 세팅레드 단계를 진행하기 전에 beforeEach를 통해서 BoardController를 TestingModule을 이용해서 세팅을 해줘야 한다.import { Test, TestingModule } from '@nestjs/testing';import { BoardController } from '../board.controller';import { BoardService } from '../board.service';describe('Bo.. 요청이 백엔드로 전달되는 과정 Intro프론트엔드에서 백엔드로 요청을 보낼 때, 대부분은 처리과정에 집중하는데 사실 이것은 마지막 단계일 뿐이다.요청이 처리 준비가 되기 전까지 아주 많은 일들이 일어나는데 이 단계를 6단계로 분리할 수 있다. 1-수락요청은 연결을 하기 위해서 TCP, QUIC 중 하나를 요청하게 되며, 백엔드에서 수락을 하게 되면 연결이 맺어지게 된다.클라이언트에서 443 포트를 통해 서버에 연결할 때, 서버 OS 커널을 통해서 3-way handshake가 완료가 되고 연결은 리스너 대기열에 배치가 된다. 대기열을 수락 Queue라고 한다.백엔드 애플리케이션은 리스너 소켓에서 syscall accpet()을 호출하여 연결을 나타내는 파일 디스크립터를 생성하는 책임을 진다이 단계에서 백엔드가 연결을 수락하는 것이.. Jest; JUnit 어노테이션을 참고한 IntroNode.js 백엔드 개발자가 굳이 JUnit을 참고를 할 필요가 없는데 굳이 참고를 한 이유가 궁금할 것이다. 이유는 단순하다.Node.js를 사용해서 TDD를 공부하려고 하는데 관련된 레퍼런스가 아무래도 자바공화국 답게 Java/Spring으로 다룬 테스트 코드가 더 많았기 때문이다(물론 Node.js와 관련된 레퍼런스도 찾을 수 있었지만 보통 Jest를 사용하는 아주 간단한 예제 정도 밖에 없었음). 책이나 유튜브, 인강을 보면서 공부를 하려고 해도 온 세상이 Java라서 어쩔 수 없이 Java, JUnit, Spring으로 만들어진 테스트 코드를 참고로 하면서 공부를 할 수 밖에 없었다. 다행히 학부 때 Java/SpringBoot를 다뤄본적이 있어 그렇게 어렵지는 않게 공부를 할 수 있.. 이전 1 2 다음