본문 바로가기
반응형

분류 전체보기714

TIL_220120 1. Facts(사실, 객관) - 고객정보인출요청서 뽑기 - 설치처 상세주소, 전화번호 변경 로직 수정 - 엑셀 다운로드 마스킹 설정 - 소유권 이전 공부 2. Feelings(느낌, 주관) 전화번호, 설치처 상세주소 변경 로직을 계속 연구하다가 한가지 깨달은 사실은, 현재 시스템이 주문번호 기반이라는 사실입니다. 같은 설치처 주소를 가진 계정의 전화번호를 일괄수정하면 어떻게하나 생각했는데, 어차피 주문기반으로 같은 설치자라도 설치자 고유 식별 번호가 모두 다르기 때문에 수정해도 문제가 없다는 사실입니다. 이것은 생각만하다가 발견하지 않고 관련 현업에게 질문하듯이 혼자 그림을 그려서 정리하다가 깨달았습니다. 소유권 이전 로직을 공부해습니다. 소유권이전과 폐기 2가지 경우 모두 반환을 의미합니다. 소유권이.. 2022. 1. 22.
TIL_220119 1. Facts(사실, 객관) - nodejs 윤지수님 강의 - AS통계조회화면 수정(쿼리 결과가 이상한 문제점 확인 => 현업과 다시 협의할 것) - 설치자 번호 일괄변경 수정 - 교환주기 빈공란 해결 - B2B 계정관리 조회칼럼 개선(최근 점검일자, 실점검국) 2. Feelings(느낌, 주관) passport로 가입, 로그인 설정 및 로그아웃 강의를 들었습니다. 3가지 노드 강의 중에 가장 라우팅을 깔끔하게 했던 강의로 기억할만큼 파일 구분을 잘했습니다. passport는 모듈로 로그인을 할 때 사용하는데, 인증방식을 구성할 수 있다는 사실을 알았습니다. 필터소급적용을 반영했습니다. 필터소급을 적용할 때 고려해야 할 것은, 이전에 필터를 완전 폐기하는가입니다. 오늘도 업데이트를 했는데, 이전에 필터.. 2022. 1. 19.
TIL_220118 1. Facts(사실, 객관) - nodejs 윤지수님 강의 - AS통계조회화면 수정(쿼리 결과가 이상한 문제점 확인 => 현업과 다시 협의할 것) - 설치자 번호 일괄변경 수정 - 교환주기 빈공란 해결 - B2B 계정관리 조회칼럼 개선(최근 점검일자, 실점검국) 2. Feelings(느낌, 주관) 새로운 node 강의인 윤지수님 강의를 들었습니다. npm 모듈을 시작으로 간단한 HTTP 요청 및 DB 쿼리 실행을 했습니다. 각 다른 강의를 들으니 같은 코드도 다각도에서 이해와 해석이되서 좋았습니다. 이 강의까지만 듣고 실제 프로젝트 관련 강의를 수강할 계획입니다. AS 통계조회화면을 수정했습니다. 쿼리가 이상하게 되어있어서 수정해야 했습니다. 특정 제품의 AS가 1건으로 COUNT가 되었는데, 상세조회.. 2022. 1. 18.
TIL_220117 1. Facts(사실, 객관) - NODE.JS 강의 글정리 - 연락처 일괄등록 쿼리문작성 - 구매파트 필터 변경 확인 - AS통계화면 수정 2. Feelings(느낌, 주관) tdd기반 nodejs 강의를 정리했습니다. 다시한번 강의를 돌아보고 코드를 돌아보면서 되짚었습니다. 점진적인 리팩토링과 ORM sequelize를 간단하게 사용할 수 있어서 좋았습니다. 기본적인 HTTP 메서드를 작성했었기 때문에 추후에는 좀 더 실전적인 강의를 알아 볼 생각입니다. 연락처주소 일괄등록 쿼리문을 만들었습니다. 이전에 만들어둔 양식을 연락처 변경을 적용하였습닌다. 문제는 계약자 정보와 설치자 정보가 동시에 바뀔 수 있다는 것이고, 결국 이것을 어떻게 사용할 것인지 다시한번 건의왔던 부서에 문의해서 진행 할 생각입니.. 2022. 1. 17.
데이터베이스를 사용해 API 요청하기 *개요 지난 시간, 노드의 ORM인 sequelize를 공부했습니다. 이를 바탕으로 배열로 만들어 둔 API 요청을 sqlite를 이용해서 만들어 보겠습니다. * sequelize로 개선하기 //models.js const Sequelize = require('sequelize'); const sequelize = new Sequelize({ dialect: 'sqlite', storage: './db.sqlite', logging: false }); const User = sequelize.define('User', { //name: Sequelize.STRING //varchar255 name: { type: Sequelize.STRING, unique: true } }); module.exports.. 2022. 1. 17.
노드 ORM 시퀄라이저 * 개요 앞서, 코드 리팩토링을 통해 user API 코드들을 개선했습니다. 이제, DB와 연동해서 실제 데이터를 활용 할 예정입니다. ORACLE, MYSQL 등의 DB를 연동해서 사용할 수도 있지만, ORM을 사용합니다. node에서 만든 객체를 활용해 바로 DB에 연동시켜 좀 더 객체지향적으로 코드를 짤 수 있습니다. * 모델 데이터베이스에서 테이블을 ORM으로 추상화 한 것을 model이라고 합니다. node js에서는 ORM으로 시퀼라이저를 사용합니다. package.json의 dependencies에 sequelize, sqlite3 의존성을 추가하도록 합니다. //models.js const Sequelize = require('sequelize'); const sequelize = new .. 2022. 1. 17.
라우터 컨트롤러 함수로 분리 *개요 이전에 index.js에 라우팅 관련 모든 정보들을 썼습니다. 하지만 모든 코드를 한 파일에 넣는 것은 가독성이 떨어지고 유지보수가 쉽지 않습니다. 따라서, 이번에 유저 관련 API를 user 폴더에 분리하고 controller도 따로 보관합니다. api/user/index.js const express = require("express"); const router = express.Router(); const ctrl = require("./user.ctrl"); router.get("/", ctrl.index); router.get("/:id", ctrl.show); router.delete("/:id", ctrl.destory); router.post("/", ctrl.create); rou.. 2022. 1. 17.
TDD로 API 서버 개발하기 * 개요 앞 글에서, mocha, should 사용법을 알아보았습니다. 이제, 실제 API 서버를 어떻게 TDD로 개발할 수 있는지 실습합니다. HTTP 메서드인 GET, POST, PUT, DELTE 4가지를 실습하고 예외 상황도 검사합니다. 1. GET /users - 성공시 유저객체를 담은 배열로 응답한다 - 성공시 최대 limit 갯수만큼 응답한다. - 실패시 limit이 숫자형이 아니면 400을 응답한다 //index.spec.js const request = require("supertest"); const should = require("should"); const app = request("./index"); describe('GET /users 는', () => { describe('성공.. 2022. 1. 15.
mocha, should, supertest 사용하기 * 개요 자바에서 TDD를 했던 경험을 바탕으로, node js 에서 어떻게 사용하는지 궁금해서 수강합니다. mocha를 이용하며, describe - it 구조를 활용합니다. 이전에 자바에서 사용했던 describe - it 작성 방식이 여기서 차용된 것임을 알았습니다. 이미 한번 자바에서 해보고나니 이해하는데 크게 어려움은 없었습니다. * mocha, should, supertest란? 테스트 수트 : 테스트 환경으로 모카에서 describe()로 구현합니다. 테스트 케이스 : 실제 테스트를 말하며 모카에서는 it()로 구현합니다. '노드 assert 말고 서드파티 라이브러리를 사용하라' 슈드는 단위테스트에서 사용하는 검증 라이브러리입니다. 가독성 높은 테스트 코드를 만들 수 있습니다. 단위테스트는 .. 2022. 1. 15.
반응형