본문 바로가기

분류 전체보기280

타입스크립트의 함수 웹 애플리케이션을 구현할 때 자주 사용되는 함수는 타입스크립트로 크게 다음 3가지 타입을 정의된다. 함수의 파라미터(매개변수) 타입 함수의 반환 타입 함수의 구조 타입 함수의 기본적인 타입 선언 아무런 타입을 정하지 않을때는 void이란 타입을 준다. function sum(a: number, b: number): number { return a + b; } 함수의 인자 타입스크립트에서는 함수의 인자를 필수적으로 줘야한다. 함수의 매개변수를 설정할때도 undefined나 null이라도 인자로 넘겨야하며, 컴파일러에서 정의된 매개변수 값이 넘어왔는지 확인해야한다. 정의된 값 이외로 추가적인 인자를 받을 수 없다. function sum(a: number, b: number): number { return .. 2022. 11. 21.
github SSH keys 설정하고 우분투 서버와 동기화 하기 SSH(Secure Shell Protocol)란? 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다. 대표적인 사용 예로는 데이터전송, 원격제어가 있다. 이 글에서는 원격제어라는 특성을 이용해서 AWS의 인스턴스 서버에 접속해서 SSH를 통해 해당 머신에 명령을 내릴 것이다. (참고 블로그) 서버에서 ssh-keygen 생성 $ ssh-keygen Git 동기화 git에 들어가서 Setting > SSH and GPG keys에 들어가 SSH keys를 새로 생성한다. 우분투 서버에서 다음 위치에 있는 authorized_keys를 읽으면 공개키를 볼 수 있다. $ cd ~./ss.. 2022. 11. 21.
grep 명령어 / 파일 내 특정 문자열 찾기 grep 명령어란? 리눅스에서 grep 명령어는 파일이나 표준입력(stdin)부터 패턴을 찾아주는 역할을 한다. 간단히 말하자면 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어. grep 사용법 $ grep [옵션][패턴][파일명] # or $ grep [찾고자 하는 명칭][위치] 문자열로 찾기 # /user/tmp 디렉토리에서 'error' 문자열 찾기 $ grep 'error' /user/tmp # text.txt 파일에서 'error' 문자열이 있는 라인 찾기 $ grep 'error' text.txt # 여러개의 파일에서 'error' 문자열 찾기 $ grep 'error' text.txt show.txt # 현재 디렉토리 내에 있는 모든 파일에서 'error' 문자열 .. 2022. 11. 18.
mysql ... -rf /opt/homebrew/SECURITY.md; 보통 로그인할때 -u아이디 -p비밀번호 이렇게 붙여썼는데, -u아이디 p를 입력한 상태에서 비밀번호만 입력하면 mysql로 접속할 수 있다. 시퀄라이즈 공식 사이트에서 준 데이터베이스 접속코드 const { Sequelize } = require('sequelize'); // Option 1: Passing a connection URI const sequelize = new Sequelize('sqlite::memory:') // Example for sqlite const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname') // Example for postgres // Option 2: Passing parameters.. 2022. 11. 17.
formData 객체란? formData란 HTML5의 form태그를 사용해서 input값을 서버에 전송했지만, 자바스크립트에서 FormData() 클래스를 사용해 똑같이 스크립트로 전송할 수 있다. 즉, HTML이 아닌 자바스크립트 단에서 폼 데이터를 쉽게 다루도록 도와주는 객체다. HTML에서 submit 제출동작은 Ajax를 통해 서버에게 제출한다. 하지만 HTML이 아니라 자바스크립트 단에서 form 전송동작이 필요한 경우가 있다. 이미지 같은 멀티미디어 파일을 페이지 전환없이 폼 데이터를 비동기로 제출하고 싶을때 자바스크립트로 좀더 타이트하게 폼 데이터를 관리하고 싶을때 이럴때 formData 객체를 이용한다고 보면 된다. 네트워크 메서드가 formData 객체를 body로 받는것이 formData의 특징이며, 이때 브.. 2022. 11. 16.
시퀄라이즈 쿼리 정리 시퀄라이즈 쿼리 가로 : row (로우 = 레코드 = 튜플) 세로 : column (컬럼 = 속성 = attribute) 시퀄라이즈는 자바스크립트 객체를 쿼리를 생성한다. 로우 생성 쿼리 (create) 사용할 모델을 불러오고 그 안에 데이터를 넣어주면 된다. const {User} = require('./users') User.create({ id:'user_id', pw:'1234', fruit:'kiwi' }) mysql 쿼리로는 다음과 같다. INSERT INTO users(id,pw,fruit) VALUES('user_id','1234','kiwi'); 로우 조회 쿼리 전체를 조회한 후에 상위 데이터 1개만 가져오기(findOne) // 시퀄라이즈 User.findOne({}); // mysql.. 2022. 11. 16.
모듈 : node-cron 본문 : node-cron npm 사이트 node-cron 모듈은 GNU crontab 기반의 node.js용 순수 JavaScript의 작은 작업 스케줄러이다 . 이 모듈을 사용하면 전체 crontab 구문을 사용하여 node.js에서 작업을 예약할 수 있다. 설치하기 $ npm install --save node-cron node-cron과 속성 스케쥴을 가져온다. let cron = require('node-cron') cron.schedule(' * * * * * *',()=>{ console.log('매 분마다 실행'); }); 크론 구문 # ┌────────────── second (optional) # │ ┌──────────── minute # │ │ ┌────────── hour # │ .. 2022. 11. 16.
adminJS - API (공식 사이트 번역) 현재 API 참조 문서는 구식이지만(대부분 유효함) 향후 생성할 새롭거나 더 나은 방법을 찾고 있습니다. API 참조는 여기에서 계속 액세스할 수 있습니다. http://adminjs-docs.web.app AdminJS - Auto-generated admin panel for node.js with react Home AdminJS An automatic admin interface which can be plugged into your application. You, as a developer, provide database models (like posts, comments, stores, products or whatever else your application uses), and AdminJ.. 2022. 11. 16.
adminJS - UI 커스터마이즈 / css 스타일 덮어쓰기 (공식 사이트 번역) 관리자는 기본 모양으로 제공됩니다. 버전 6.4부터는 기본 스타일을 쉽게 변경할 수 있습니다. 필수 html 태그에 특별한 data-css 속성을 추가했습니다. 그들의 가치는 동적으로 구축되며 리소스, 작업 및 컨테이너에 따라 다릅니다. 간단한 예 리소스 사용자가 있는 경우 이 양식의 개별 필드뿐만 아니라 전체 양식의 스타일을 지정할 수 있습니다. 이 특정한 경우 양식에는 data-css="users-edit-form"(편집은 작업 이름임)이 있습니다. 필드 비밀번호는 users-edit-password로 태그가 지정됩니다. 이 명명 규칙을 통해 모든 리소스, 모든 작업 및 모든 컨테이너의 스타일을 개별적으로 지정할 수 있습니다. 보다 일반적인 속성 선택기를 사용할 수도 있습니다. 예를 들어 [data-.. 2022. 11. 16.
adminJS - UI 커스터마이즈 / 사용자설정 컴포넌트(공식 사이트 번역) 커스텀 컴포넌트 추가 AdminJS는 자체 내장 구성 요소를 사용하여 모든 속성과 작업을 처리합니다. 이들은 친숙한 텍스트 입력, 체크박스, 페이지가 매겨진 목록, 편집 양식 등입니다. 그러나 대신 단일 속성 또는 작업에 대한 사용자 정의 구성 요소를 정의할 수 있습니다. 이렇게 하면 데이터가 표시되고 수정되는 방식을 효과적으로 제어할 수 있습니다. 일반적으로 ComponentLoader의 인스턴스를 만들고 거기에 사용자 정의 구성 요소를 추가하고 AdminJS 옵션 개체에 전달하고 사용자 정의 구성 요소를 사용하는 속성/작업과 위치를 지정해야 합니다. // ./components.ts import { ComponentLoader } from 'adminjs' const componentLoader = .. 2022. 11. 16.