Backend
-
[상태관리, Recoil] Recoil을 사용해보자!Front-end/State management 2022. 4. 8. 18:46
안녕하세요! 오늘은 상태관리를 위한 패키지 중 하나인 "Recoil"에 대해 알아보도록 하겠습니다! 상태관리를 위한 패키지 중에는 많은 것들이 있는데요. 대표적으로 "Redux"가 있죠! 👏🏻 저는 개인적으로 리덕스의 작동 방식이 너무 복잡하다고 느껴서 Recoil을 상태관리에 이용해볼려고 하고 있습니다! 물론, 대형 프로젝트에서 Redux는 그 힘을 충분히 발휘할 수 있겠지만, 소규모 프로젝트와 토이 프로젝트를 할 때에는 오히려 걸리적거리더라고요! 하지만 Recoil은 react hooks와 비슷한 재질(?) 이라는 느낌이 들어서 사용하는데 어색하지도 않고 직관적이라 개인적으로 좋은 것 같습니다! 저는 recoil을 연습하기 위해, 다크모드가 있는 간단한 투두 앱을 구현해보았습니다 😀 https://6..
-
[AWS S3, Nest.js] Nest.js에서 file S3에 저장하기Back-end 2022. 1. 24. 21:07
안녕하세요! 오늘은 Nest.js에서 AWS S3에 파일을 업로드 하는 법을 포스팅하려 합니다! 우선 Nest.js에서 파일을 핸들하기 위한 controller가 필요합니다. 우선 nest명령어를 통해 uploads라는 모듈을 만들어봅니다. nest g mo uploads 그리고 모듈이 만들어지면 uploads.controller.ts라는 컨트롤러를 생성해줍니다. https://docs.nestjs.com/techniques/file-upload Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It..
-
[TypeORM, Nest.js] ManyToOne 관계의 entity가 null return 될 때에러와 마주할 때 2021. 12. 26. 19:23
안녕하세요. 오늘은 서비스 개발 중 @ManyToOne 관계의 엔티티가 정상적으로 출력되지 않고, null로 리턴되는 경우를 만났습니다. 우선 출력하고자 하는 것은 한 가지의 부모 엔티티를 가지는 자식 엔티티입니다. 즉 ManyToOne의 관계를 가지고 있죠. 거기에서 부모 엔티티의 관계를 가져올려 하는데 null이 리턴되는 경우였습니다. 문제는 간단히 해결했습니다. 바로, 해당 데이터베이스 find등의 작업 시, relation을 설정해줘야 하는 것이였죠. nest.js의 service.ts의 코드입니다. provideImage가 부모 엔티티인 user를 가져와야 하는데 null을 리턴하고 있었습니다. 부모 엔티티를 가져오기 위해선 이 findOne이라는 데이터베이스와의 통신을 위해 relation을 ..
-
[security] hashing password with bcryptBack-end 2021. 12. 10. 01:23
비밀번호의 보안? 백 엔드에서 유저의 비밀번호를 데이터베이스에 그대로 저장하는 경우가 있을까요? 🐱 그 것은 정말 엉망진창의 보안일 것입니다. 누군가가 데이터베이스에 접근 하더라도 유저의 비밀번호는 확인할 수 없어야하지만, 우리는 비밀번호를 Compare하여 로그인을 진행하여야 하기 때문에 비밀번호의 데이터베이스 저장은 필수불가결합니다. 그렇다면 어떻게 우리는 비밀번호를 숨길 수 있을까요? "그 것은 비밀번호를 Hashing 하는 것 입니다." 우선 비밀번호 해쉬화 알고리즘은 예전부터 발달되어 오던 기술입니다. 해싱에 관한 많은 알고리즘이 있지요. 그 중 우리는 Blowfish를 이용한 Bcrypt를 이용하여 비밀번호를 해싱할 것입니다. 많은 다양한 기술이 있습니다만 ex) SHA SHA를 사용하는 암호..
-
[Nest.js] TypeORM 사용기Back-end 2021. 12. 9. 23:43
i새로운 서비스(더 좋은 사람들 save earth) 를 기획하고 백 엔드를 Nest.js + graphql server + postgres DB 로 스택을 정하고 빌드를 시작했습니다. typescript를 더욱 강력하기 사용하기위해 TypeORM 라이브러리를 사용하기로 하였고, 간단한 세팅을 포스팅으로 남길려고 합니다. TypeORM은 우리의 백엔드에서 SQL문을 직접 작성하지 않아도, 데이터베이스와의 통신을 간편하게 해결해주는 라이브러리입니다. 이와 비슷한 라이브러리인 sequelize도 있습니다. 이 두 라이브러리는 코드를 통해 데이터베이스와 통신하고 상호작용합니다. 타입스크립트 코드로써 데이터베이스에 POST, GET등의 처리를 해결하는데 도움을 주는 라이브러리입니다. TypeORM은 Node.j..
-
[Nest.js, Graphql] 간단하게 Nest.js와 Graphql 기반의 프로젝트 구성하는 법Back-end 2021. 12. 8. 18:39
안녕하세요. 이 포스트는 node.js위에 가동하는 프레임워크인 nest.js와 Graphql 기반의 프로젝트 초기 구성하는 법을 포스팅해보겠습니다. Nest.js? Nest(NestJS)는 효율적이고 확장 가능한 node.js 서버 측 애플리케이션 을 구축하기 위한 프레임워크입니다 . 프로그레시브 JavaScript를 사용하고 Typescript 구축되고 완벽하게 지원합니다 하지만 우리는 자바스크립트로도 프로젝트를 진행할 수 있습니다. OOP(객체 지향 프로그래밍), FP(기능 프로그래밍) 및 FRP(기능 반응 프로그래밍)의 요소를 결합합니다. 내부적으로 Nest는 익스프레스와 같은 강력한 HTTP 서버 프레임워크 를 사용합니다. Nest는 이러한 일반적인 Node.js 프레임워크(Express/Fas..