반응형

백엔드 37

[strapi] rest api query 연산자 목록

strapi v4 에서는 기존의 where 대신 filters 로 대신한다. 또한, 기존의 strapi.query 대신 strapi.entityService('api::test.test').find 등으로 entityService 뒤에 메소드를 붙여서 사용한다. findOne, findMany 등에서 where 절을 주고싶다면 findMany({filters:{id: , name:}}) 등으로 주면 된다. 밑에는 조건절로서, 같을경우, 클경우 등등 여러가지 조건에 대한 key 값이다. $eq: 필드 값이 주어진 값과 정확히 일치합니다. $ne: 필드 값이 주어진 값과 일치하지 않습니다. $in: 필드 값이 주어진 배열 안에 포함됩니다. $nin: 필드 값이 주어진 배열 안에 포함되지 않습니다. $gt: ..

백엔드/Strapi 2023.03.12

토큰 기반 인증 시스템의 장점

서버 기반 인증 시스템 기존의 서버 기반 인증 시스템은 서버 측에서 유저들의 정보를 기억하고 있어야 하는데 해당 방식은 다음과 같은 문제점이 발생한다. 서버가 유저의 인증 기록을 세션에 저장하는데, 로그인 유저가 많아지면 서버가 과부하 된다. 세션을 사용하면 분산된 시스템을 설계하고 서버를 확장하는 것이 어렵다. 세션을 관리할 때 사용되는 쿠키는 여러 도메인에서 관리하는 것이 번거롭다. 이런 문제점들을 해결하기 위해 토큰 기반 인증 시스템을 사용하기 시작하게 되었다. 토큰 기반 인증 시스템의 장점 무상태(Stateless) & 확장성(Scalability) Stateful Server의 경우 클라이언트에게 요청을 받을 때마다 상태를 유지하고 정보를 서비스 제공에 이용되는 반면 Stateless Serve..

백엔드/node.js 2023.02.05

[암호화] 양방향 암호화 & 해싱(단방향 암호화)

암호화의 종류는 두 가지가 있는데 아래와 같다. - 양방향 암호화 : 암호화와 복호화 과정을 통해 송,수신 간 주고받는 메세지를 안전하게 암호화한 후 평문으로 복호화를 하는 과정 - 단뱡향 암호화 : hashing 을 이용한 암호화 방식으로서, 평문을 암호문으로 암호화가 가능하지만, 암호문을 평문으로 다시 복호화 하는 것은 불가능하다. 양방향 암호화는 암호문을 평문으로 복호화 가능하기 때문에 보통 단방향 암호화를 이용하는 편이다. - SHA - MD - HAS - WHIRLPOOL 이렇게 4 종류 중에 대표적으로 SHA-256 알고리즘이 많이 사용된다. 단순 해시 함수를 이용하여 변환만 한다면 보안이 완벽하다고 할 수 없다. 왜냐하면 해커들이 레인보우 테이블을 이용하여 엄청난 경우의 수의 복호화를 대입해..

백엔드/NestJs 2023.01.29

[UI 테스팅 자동화] 테스팅 자동화 공통모듈 완성본

ver.1 으로 ui 테스팅 기능을 완료함. 'use strict'; /** * testcase service */ const { createCoreService } = require('@strapi/strapi').factories; const { chromium, devices } = require('playwright'); const { loopElement, startTaskLoopElements, } = require('../../../modules/testcase/loopElement'); const { elementValidation, } = require('../../../modules/testcase/validationList'); module.exports = createCoreServ..

백엔드/Strapi 2022.11.22

[UI 자동화 테스팅] 서브테스크 기능 개발

현재 QA측에서 자동화 테스팅을 사용 시, 메인 테스크 안에 서브테스크로 들어가는 기능 개발 요청이 들어왔다. 서브테스크는 QA분들이 커스텀으로 본인이 원하는 기능 테스트를 만든 후, 이를 메인 테스크에 넣으면 메인테스크에서 일일히 작업목록을 적을 필요가 없기 때문에 필수적 기능 이라고 볼 수 있다. 해당 기능 개발 코드는 아래에 개시하며 추후 UI 자동화 테스팅에 대해 포스팅을 하겠다. // [1] : 메타정보 루프 시작포인트 async function loopElement(elementArray, callback) { for (let index = 0; index < elementArray.length; index++) { if (elementArray[index].ENABLE_YN === 'Y') ..

백엔드/Strapi 2022.11.14

자동화 테스트 1차 완성

1차적으로 ui 테스트를 위한 코드를 작성 완료하였다. strapi 로 logging 기능을 개발하여 프론트에서 테스트 실행 시, 백엔드쪽에서 테스트가 돌아가고 만약 오류가 생기게 된다면 validation 처리를 하여 로그에 쌓이도록 개발완료한 상태이다. 이번에 logging 기능을 개발하면서 strapi 의 relation 에 대해 공부를 하였는데 relation에 대해서는 따로 기술하도록 하겠다. 이번 포스팅은 내가 작성한 코드에 대해서만 기록하도록 하겠다. 'use strict'; /** * testcase controller */ const { createCoreController } = require('@strapi/strapi').factories; const { errorLog, testR..

백엔드/Strapi 2022.11.03

strapi.service VS strapi.entityService

strapi 백엔드 코드 단에서 데이터베이스를 불러오는 작업을 하는데 아직 이해가 되지 않는 부분을 발견하였다. 먼저 코드를 공유하자면, module.exports = createCoreController('api::testcase-element.testcase-element',({strapi})=>({ // 테스트케이스 엘레멘트 생성 api controller async create(ctx) { try { const request_query = ctx.request.query; const testcase_id = request_query.testcase_id; const request_body = ctx.request.body; console.log(request_body); // [1] : strap..

백엔드/Strapi 2022.10.12

[UI Test Automation] strapi를 이용한 테스트 자동화

strapi 를 통해 ui 테스트 자동화 시스템을 구축하고자 한다. 오늘은 간단한 코드를 올리며, 추후 strapi 에 대한 구조 등 설명을 진행하도록 할 예정이다. // strapi 의 services 부분 'use strict'; /** * testcase service */ const { createCoreService } = require('@strapi/strapi').factories; const {chromium,devices} = require('playwright'); module.exports = createCoreService('api::testcase.testcase',({strapi})=>({ async bomOrderTest(query) { const browser = await..

백엔드/Strapi 2022.10.07

strapi

strapi 란? https://strapi.io/resource-center 2. strapi 구축 과정 strapi 는 node.js 기반이며, LTS 버전만을 지원해주고 있다. node 버전으로는 v14 와 v16을 지원하며, npm 버전은 npm v6 버전만을 지원하고 있다. 특히 node 버전 v14.19.1 이상부터 지원이 되므로 버전 관리에 주의하여야 한다. (1) Strapi 설치 및 프로젝트 생성 strapi 와 관련된 명령어를 실행하기 위해서는 yarn 도 추가로 설치해야한다. $ npm install strapi -g $ npm install yarn -g $ yarn create strapi-app {프로젝트명} 명령어를 입력 후 프로젝트를 생성하게 되면 다음과 같은 메세지들이 나오..

백엔드 2022.09.18
반응형