BE
-
정적메소드: 사용자가 별도 객체로 만들어졌을 때, 그 객체 안에서 필요한 기능과는 달리 클래스 전체적으로 필요한 기능 소스의 여러 곳에서 사용 사용자(email) Class mysql schema CREATE TABLE user_info( USER_ID INT UNSIGNED NOT NULL AUTO_INCREMENT, USER_EMAIL VARCHAR(100) NOT NULL, BLOG_ID CHAR(4), PRIMARY KEY(USER_ID) ); class User(UserMixin): def __init__(self, user_id, user_email, blog_id): self.id = user_id self.user_email = user_email self.blog_id = blog_id ..
[블로그 구현 with Flask] 3.블로그 구현을 위한 클래스 구현정적메소드: 사용자가 별도 객체로 만들어졌을 때, 그 객체 안에서 필요한 기능과는 달리 클래스 전체적으로 필요한 기능 소스의 여러 곳에서 사용 사용자(email) Class mysql schema CREATE TABLE user_info( USER_ID INT UNSIGNED NOT NULL AUTO_INCREMENT, USER_EMAIL VARCHAR(100) NOT NULL, BLOG_ID CHAR(4), PRIMARY KEY(USER_ID) ); class User(UserMixin): def __init__(self, user_id, user_email, blog_id): self.id = user_id self.user_email = user_email self.blog_id = blog_id ..
2022.06.19 -
flask_login 라이브러리 사용자를 로그인 시, flask_login 라이브러리를 이용하면, 사용자 관련 session 정보를 HTTP response에 넣어 보내주고 이를 기반으로 flask 서버에서 사용자를 구별할 수 있는 기능 제공 1. 사용자가 로그인하면, 로그인 정보를 User class에서 객체로 가져오고, LoginManager()에 추가하여 세션 생성 - flask 서버가 리턴 시 해당 세션 정보를 웹페이지에 송부 2. current_user 객체에 해당 객체가 저장 - current_user.id : 사용자 ID - current_user.is_authenticated : 사용자가 로그인되었는지를 나타내는 값 (Boolean) 3. 로그인 후 웹페이지로 flask 서버 접근 시 전달..
[블로그 구현 with Flask] 2. flask_login 라이브러리 기능flask_login 라이브러리 사용자를 로그인 시, flask_login 라이브러리를 이용하면, 사용자 관련 session 정보를 HTTP response에 넣어 보내주고 이를 기반으로 flask 서버에서 사용자를 구별할 수 있는 기능 제공 1. 사용자가 로그인하면, 로그인 정보를 User class에서 객체로 가져오고, LoginManager()에 추가하여 세션 생성 - flask 서버가 리턴 시 해당 세션 정보를 웹페이지에 송부 2. current_user 객체에 해당 객체가 저장 - current_user.id : 사용자 ID - current_user.is_authenticated : 사용자가 로그인되었는지를 나타내는 값 (Boolean) 3. 로그인 후 웹페이지로 flask 서버 접근 시 전달..
2022.06.18 -
변경 여지가 적은 경우, mySQL과 같은 관계형 데이터베이스를 사용 변경 여지가 큰 웹서비스 로깅을 위해서는 NoSQL을 사용 (웹 서비스 성능 향상을 위해 redis같은 in-memory 방식의 데이터베이스도 많이 사용됨) 블로그 기능에서의 데이터베이스 활용 mysql: 구독으로 얻어진 이메일 주소 정보를 저장 mongodb: 블로그 접근 사용자의 IP와 접근 시간을 로그 형태로 저장 - 로깅은 통상적으로 수시로 포맷이 바뀌는 경우가 많으므로 스키마 설정이 필요없는 NoSQL이 적합 MySQL cmd 창에서 blog_db 데이터베이스 생성 mysql -u root -p Enter password: 비밀번호입력 mysql> CREATE DATABASE blog_db; Query OK, 1 row aff..
[블로그 구현 with Flask] 1. MySQL / MongoDB 데이터베이스 셋업변경 여지가 적은 경우, mySQL과 같은 관계형 데이터베이스를 사용 변경 여지가 큰 웹서비스 로깅을 위해서는 NoSQL을 사용 (웹 서비스 성능 향상을 위해 redis같은 in-memory 방식의 데이터베이스도 많이 사용됨) 블로그 기능에서의 데이터베이스 활용 mysql: 구독으로 얻어진 이메일 주소 정보를 저장 mongodb: 블로그 접근 사용자의 IP와 접근 시간을 로그 형태로 저장 - 로깅은 통상적으로 수시로 포맷이 바뀌는 경우가 많으므로 스키마 설정이 필요없는 NoSQL이 적합 MySQL cmd 창에서 blog_db 데이터베이스 생성 mysql -u root -p Enter password: 비밀번호입력 mysql> CREATE DATABASE blog_db; Query OK, 1 row aff..
2022.06.14 -
NestJS 공식문서: https://docs.nestjs.com/security/cors CORS는 서비스 하고 있지 않는 사이트에서 의도치 않는 접근을 막아주는 것이다. 프론트엔드에서 Api를 사용하려면 설정해주어야 한다. app.enableCors(); main.ts import { ValidationPipe } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { DocumentBuilder, OpenAPIObject, SwaggerModule } from '@nestjs/swagger'; import { AppModule } from './app.module'; import { HttpExceptionFilter ..
NestJS : CORSNestJS 공식문서: https://docs.nestjs.com/security/cors CORS는 서비스 하고 있지 않는 사이트에서 의도치 않는 접근을 막아주는 것이다. 프론트엔드에서 Api를 사용하려면 설정해주어야 한다. app.enableCors(); main.ts import { ValidationPipe } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; import { DocumentBuilder, OpenAPIObject, SwaggerModule } from '@nestjs/swagger'; import { AppModule } from './app.module'; import { HttpExceptionFilter ..
2022.06.03 -
NestJS 공식문서: https://docs.nestjs.com/openapi/introduction $ npm install --save @nestjs/swagger swagger-ui-express main.ts import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); const config = new DocumentBuilder() .setTitle..
NestJS : swaggerNestJS 공식문서: https://docs.nestjs.com/openapi/introduction $ npm install --save @nestjs/swagger swagger-ui-express main.ts import { NestFactory } from '@nestjs/core'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); const config = new DocumentBuilder() .setTitle..
2022.06.02 -
NestJS 디자인 패턴 Controller express에서 router의 역할 request, resposne, domain, url 등을 제어 Service 실제 비즈니스 로직 DTO : Data Transfer Object → 계층간 데이터 교환을 위한 객체 DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체 Request와 Response용 DTO는 View를 위한 클래스 회원가입 Service cats.request.dto.ts 생성 import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; export class CatRequestDto { @IsEmail() @IsNotEmpty() email: ..
NestJS : DTO 패턴 & 회원가입 serviceNestJS 디자인 패턴 Controller express에서 router의 역할 request, resposne, domain, url 등을 제어 Service 실제 비즈니스 로직 DTO : Data Transfer Object → 계층간 데이터 교환을 위한 객체 DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체 Request와 Response용 DTO는 View를 위한 클래스 회원가입 Service cats.request.dto.ts 생성 import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; export class CatRequestDto { @IsEmail() @IsNotEmpty() email: ..
2022.05.29 -
Nest Js MongoDB Schema 공식 문서: https://docs.nestjs.com/techniques/mongodb DB Schema 설계 - cats.schema.ts import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Document, SchemaOptions } from 'mongoose'; const options: SchemaOptions = { timestamps: true, }; @Schema(options) // schema 정의 export class Cat extend Document{ @Prop({ required: true, unique: true, }) email: string; @Prop..
NestJS : DB Schema 설계 및 ValidationNest Js MongoDB Schema 공식 문서: https://docs.nestjs.com/techniques/mongodb DB Schema 설계 - cats.schema.ts import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { Document, SchemaOptions } from 'mongoose'; const options: SchemaOptions = { timestamps: true, }; @Schema(options) // schema 정의 export class Cat extend Document{ @Prop({ required: true, unique: true, }) email: string; @Prop..
2022.05.28 -
NestJS 공식문서: https://docs.nestjs.com/first-steps NestJS 프로젝트 생성 nestnewproject−nameMongodependency설치 npm install --save @nestjs/mongoose mongoose app.module.ts 파일에 mongoose module을 import import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; @Module({ imports: [MongooseModule.forRoot('mongodb://localhost/nest')], }) export class AppModule {} 모듈들이 여러..
NestJS : MongoDB 연결 및 환경 변수 설정NestJS 공식문서: https://docs.nestjs.com/first-steps NestJS 프로젝트 생성 nestnewproject−nameMongodependency설치 npm install --save @nestjs/mongoose mongoose app.module.ts 파일에 mongoose module을 import import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; @Module({ imports: [MongooseModule.forRoot('mongodb://localhost/nest')], }) export class AppModule {} 모듈들이 여러..
2022.05.28