분류 전체보기
-
nestjs에서 멀티 DB 설정 및 셋팅NodeJS 2022. 10. 28. 15:03
nestjs에서 멀티 DB 설정 및 셋팅 2개 이상(ex: Main, Read)의 DB를 사용하기 위해서는 AppModule에 TypeOrmModule을 2개 설정해야 합니다. ... @Module({ imports: [ TypeOrmModule.forRootAsync({ // 이름이 없는 default 는 필수로 필요 imports: [ConfigModule], inject: [ConfigService], useFactory: (configService: ConfigService) => ({ type: 'sqlite', database: configService.get('DB_HOST'), dropSchema: configService.get('DB_DROP') === 'true', entities: ..
-
typescript 객체 생성 유틸NodeJS 2022. 10. 28. 15:02
typescript 객체 생성 유틸 typescript를 사용하여 entity, dto, ro 등을 생성하다 보면, 같은 항목을 가진 객체들이 계속 생겨 납니다. 이때, 하나가 변경되면 모든 항목의 변경을 해줘야 하는데, 이를 쉽게 하는 방법으로 Utility Types를 사용합니다. Partial Type 집합의 모든 프로퍼티를 선택적으로 타입을 생성합니다. 이 유틸리티는 주어진 타입의 모든 하위 타입 집합을 나타내는 타입을 반환합니다. interface Todo { title: string; description: string; } function updateTodo(todo: Todo, fieldsToUpdate: Partial) { return { ...todo, ...fieldsToUpdate ..
-
DB 테이블에서 객체 필드 뽑아내기설치&설정 관련/MariaDB & Mysql 2022. 10. 26. 15:01
DB 테이블을 이용해서 Entity 객체를 생성할때, 눈으로 하나하나 보면서 만들면 시간이 오래걸리고, 오타가 생길수도 있습니다. SQL을 이용해서 쉽게 field를 도출할 수 있습니다. SELECT GROUP_CONCAT(CONCAT( '/* ', CASE WHEN LENGTH(COLUMN_COMMENT) > 0 THEN COLUMN_COMMENT ELSE COLUMN_NAME END, ' */', CHAR(13), CONCAT( TRIM(CN1), TRIM(CONCAT(UPPER(SUBSTRING(CN2, 1, 1)) , SUBSTRING(CN2, 2, LENGTH(CN2)))), TRIM(CONCAT(UPPER(SUBSTRING(CN3, 1, 1)) , SUBSTRING(CN3, 2, LENGTH(..
-
javascript hoistingHTML + JAVASCRIPT + CSS 2022. 10. 24. 15:00
JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. 호이스팅을 설명할 땐 주로 “변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는” 것으로 말하곤 합니다. 따라서 변수를 정의하는 코드보다 사용하는 코드가 앞서 등장할 수 있습니다. 다만 선언과 초기화를 함께 수행하는 경우, 선언 코드까지 실행해야 변수가 초기화된 상태가 됨을 주의하세요. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다. let과 const로 선언한 변수도 호이스팅 대상이지만, var와 달리 호이스팅 시 undefine..
-
Nginx 와 xwkik proxy 처리설치&설정 관련 2022. 10. 24. 14:59
Nginx 설정 옵션 정리 설치는 Nginx source를 이용한 compile 설치를 참고 하셔요. /usr/local/nginx 750 권한으로 오류 발생 이부분은 nginx에서 work process가 nobody(기본값)으로 동작하면서 /usr/local/nginx 디렉토리(rwxr_x___)에 접근 권한이 없어서 발생한 문제입니다. 쉽게는 해당 디렉토리의 권한을 755(rwxr_xr_x)변경하면 되지만, 보안(?)이슈로 변경이 안되어 아래와 같이 처리 했습니다. ERR_CONTENT_LENGTH_MISMATCH 오류 문제를 해결하기 위해서 버퍼링을 비활성화 하였습니다. proxy_buffering 문제로 해당 설정을 사용하면, Nginx는 프록시 서버로 부터 응답을 받아 버퍼에 저장합니다. 다만..
-
REDMINE 설치 및 추천 플러그인 정리설치&설정 관련 2022. 10. 21. 14:58
환경 정보 CPU - 3.4 Ghz (2 cores) Memory - 2 GB Storage - 20 GB Operating System - RHEL 8.2 Hostname – lahuman IP Address - 192.168.0.2 DBMS - Mysql 5.7 필요시 Redhat Repository 설정하기를 설정을 확인하셔요. root 계정으로 진행합니다. 서버 최신 버젼 업데이트 $ dnf update -y 계정 생성 $ useradd -r -m -d /opt/redmineuser redmineuser # 추후 bundle install시 필요 $ passwd redmineuser $ usermod -aG wheel redmineuser mysql 설정 mysql binary 설치시 설정을 참고..
-
2022년도 면접 질문 정리카테고리 없음 2022. 10. 20. 14:57
1. 객체 지향 언어 1.1 SOLID (객체 지향 설계) - SRP : 단일 책임 원칙 (Single responsibility principle) + 한 클래스는 하나의 책임만 가져야 한다. - OCP : 개방-폐쇄 원칙 (Open/closed principle) + “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” - LSP : 리스코프 치환 원칙 (Liskov substitution principle) + “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라. - ISP : 인터페이스 분리 원칙 (Interface segregation principle) + “특정 클라이언트를 위한 인터페이스 여..
-
XWIKI 첨부파일 확장자 확인 후 업로드 처리설치&설정 관련 2022. 10. 20. 14:56
XWIKI 첨부파일 확장자 처리 xwiki에서 보안 요건으로 첨부파일의 확장자를 확인 후 업로드 처리 해야 합니다. 처리 방식을 고민하다가, CKEditor를 수정하여 처리한 내역을 정리합니다. 사용한 xwiki 버전 정보는 XWiki 13.10.3 입니다. CKEditor 설정 변경 If you want to configure the CKEditor globally for all the wikis in your farm then you have to copy the file META-INF/resources/webjars/application-ckeditor-webjar//config.js from WEB-INF/lib/application-ckeditor-webjar-.jar to WEB-INF/cl..