분류 전체보기(525)
-
백엔드 에서 form값에 대한 검증을 하고 직렬 화 하는 게 좋을까? 직렬 화 하고 검증을 하는 게 좋을까?
일반적으로는 백엔드에서 form 값에 대한 검증을 먼저 수행한 후 직렬화하는 것이 좋습니다. 이는 데이터의 무결성을 보장하고, 유효성을 확인한 데이터가 직렬화되어 다른 시스템으로 전송되거나 저장될 때 잘못된 데이터가 전달되는 것을 방지하기 위함입니다. 데이터 검증은 입력된 데이터의 유효성을 확인하는 과정으로, 예상대로 올바른 형식, 범위, 구조를 갖고 있는지를 확인하고 오류나 이상이 있는지를 찾는 것입니다. 백엔드에서 form 값에 대한 검증을 수행하여 유효성을 확인한 후, 검증에 통과한 데이터만 직렬화하여 전송하거나 저장하게 되면, 무결성이 보장되는 데이터가 전송되거나 저장될 수 있습니다. 반면에, 먼저 직렬화를 수행한 후에 검증을 수행하게 되면, 검증에 통과하지 못한 데이터가 이미 직렬화되어 다른 형..
2023.04.12 -
약한 복사와 깊은 복사
객체 또는 변수의 복사 방법을 설명하는 용어 약한 복사(Shallow Copy 또는 Shallow Copying): 약한 복사는 원본 객체 또는 변수의 주소를 복사하여 새로운 객체 또는 변수를 생성하는 것을 말합니다. 즉, 원본과 복사본은 같은 객체를 참조하게 됩니다. 이 경우, 복사본의 변경이 원본에 영향을 미칠 수 있습니다. 원본과 복사본은 동일한 내용을 가지지만, 두 개의 객체가 독립적으로 존재하는 것이 아니라 원본과 복사본이 같은 객체를 공유하게 됩니다. 예를 들어, 리스트 객체의 경우 약한 복사를 수행하면 두 개의 리스트가 같은 원소를 참조하게 됩니다. 따라서 한 리스트를 변경하면 다른 리스트도 동일한 변경이 반영됩니다. original_list = [1, 2, 3, 4, 5] shallow_c..
2023.04.12 -
중간 점검(self)
// 1. 레이아웃 만들기 [ㅇ] // 2. 테이블 만들기 [o] - 상위공통코드, 공통코드, 코드명, 상세보기, 삭제버튼 + 정렬기능 추가 // 3. 검색 필터 만들기[0] -> 테이블 자체 기능 // 4. api처리 만들기 //codeAPI.js[0] //ccodeReducer.js[0] // 5. 테이블 상위코드 합치기 추가[0] // 6. 상세보기 페이지 만들기[o] - // 추가하기 - 수정버튼[0] // // 7. 삭제기능 추가[0] // 8. 추가기능 추가[0] // 9. 수정기능 추가[0] //추가할 기술 리스트 // 10. (백, 프런트)데이터 검증 추가할것[] // 11. (폼-상세보기)사용여부 기본값 설정 [] // 12. (폼-상세보기)하위 코드 추가 기능 작성[] // 13. (폼..
2023.04.12 -
antd 상위 셀과 값이 같을 경우 셀 병합
const renderCell = (value, row, index) => { const obj = { children: value, // 셀에 표시될 값 props: {}, // 셀의 속성을 설정할 객체 }; if (index > 0 && row.hirkCommCd === codeData[index - 1].hirkCommCd) { // 이전 행과 현재 행의 상위코드 값이 같다면, 병합할 필요가 없으므로 rowSpan을 0으로 설정 obj.props.rowSpan = 0; } else { // 현재 행의 상위코드 값과 다른 행을 찾아서 연속된 행의 개수를 구함 for (let i = index; i < codeData.length; i++) { if (row.hirkCommCd !== codeData[..
2023.04.11 -
이미지로 폰트 찾아주는 사이트
https://www.myfonts.com/pages/whatthefontbeta WhatTheFont | MyFonts’ AI-Powered Font Finder | MyFonts Frequently asked questions How do I find a font from an image? To identify a font from an image, use a font finder or font identifier. These tools are great for finding the name of a font or similar alternatives. All you need to do is upload an image of th www.myfonts.com
2023.04.07 -
POST PUT
POST - 생성 PUT - 수정, 없을시 생성
2023.04.06 -
conda 명령어
conda --version update conda create -n 가상환경이름 python=x.x env remove --name 가상환경이름 activate 가상환경이름 deactivate env list
2023.04.06 -
배경 지식 (리액트 장고 정리)
react문법 _ es6, useState, useEffect redux > store에 변수를 저장후 액션으로 불러오기 (store) = state저장 되는곳 (action) = 스토어의 상태 변경 _ 객체라서 반드시 식별할수 있게끔 (액선 타입)을 가져야함 (dispatch) = 액션을 발생 (reducer) = 전달받은 state를 action을 사용하여 반환, 스토어 안에 있음 redux-toolkit > createSlice 함수를 통해 액션 타입과 액션 생성 함수, 그리고 리듀서를 한 번에 생성 useSelector() = 리덕스 상태 조회 useDispatch() = 액션 발생 redux-saga > api 호출시 순서지정 등의 비동기 작업을 위해서 사용 task = 하나의 saga가 실행되..
2023.04.06 -
코드 개선 사항 + 질문 리스트
1. deleteCode(codeKey) .then(() => { dispatch(codeAction.getCodeList({ target: "codeList" })); codeForm.resetFields(); }); 기존 코드중 잘못된 부분 개선 api를 집접 호출하는 deleteCode 와 dispatch 같이 사용하는 부분을 발견하여 개선 2. 리덕스 툴킷을 사가보다 먼저작성하는걸 권장한다고 하던데 여기서 사가가 먼저 나오는 이유가 있을까요? 리덕스 툴킷을 사가보다 먼저작성하는걸 권장 코드순서랑 상관없이 적용 되는 순서(index에서)가 우선이라는 뜻 코드페이지 내부에서는 slice가 밑에 줄에 있는 이유 : 위에서 적용한 액션 변수 가 쓰이고 사가가 쓰이지 않을때도 있기에 코드스타일을 이렇게 정..
2023.04.06 -
업무 계획 (일정관리)
공통코드 관리기능 구현 0. 요구사항파악 - 코드 상하위 관계가 명확히 표출되었으면 함 - 키 값 증분 자동화(코드파악) - 정렬순서를 사용자가 직접 입력하지않아도 기본값으로 쌓이는 순서대로 입력되었으면 함. - 삭제 여부: 삭제 되었는지 확인만! 1. 분석 (table구조, 기능파악) 2. 설계 (패키지 구조, 화면 구조) 3. 구현 (화면구성 기존레이아웃이랑 정해진 공통컴포넌트 사용, antd) 4. 테스트 (개발자 테스트) - 검증/ 오류, 성공 > 메시지 5. 확인 및 검토, 수정사항 반영 기한 6일[목] ~ 11일[화] 오후 4시) 예비군 +1일 기능 추가[modal창 생성 + 테이블로 구조 변경 + 정렬기능 추가] +1일 6일[목] ~ 13일[목] 오후 4시)
2023.04.06