Til 30

[JavaScript]Property Attribute

자바스크립트에서 객체의 프로퍼티를 크게 두 종류로 볼 수 있다. 데이터 프로퍼티 - 키와 값이 있는 실질적인 데이터 액세스 프로퍼티 - 자체적으로 값을 가지고 있지는 않으나 호출 시 값을 불러오거나 설정할 수 있다. const person = { name: "홍길동" ,year: 2000 get age() { return new Date().getFullYear() - year; } set age(age) { this.year = new Date().getFullYear() - age; } } 여기서 데이터 프로퍼티는 name, year를 이야기하고 액세스 프로퍼티는 getter, setter를 의미한다. 우리가 변수처럼 사용하는 프로퍼티는 내부적으로 또 다른 속성들이 존재한다. 마치 프로퍼티도 객체처럼..

JavaScript 2023.12.21

[JavaScript]화살표 함수를 왜? 사용할까

자바스크립트에서 함수를 사용하는 여러가지 방법이 있다.그중 모던 자바스크립트 함수에서 가장 핵심적인 화살표 함수에 대해서 알아보자. 일반 함수와 무엇이 다른가 1.가독성 향상 // 기존 함수선언 function add(a, b) { return a + b; } // 화살표 함수선언 const add = (a, b) => a + b; const pritn = msg => console.log(msg); 기존 함수 선언보다 훨씬 간결한것을 확인할수있다. 코드가 한줄이면 return 문까지 생략할수있고 매개변수가 한개라면 매개변수 괄호도 생략 가능하다. 2.this가 존재하지 않는다. 일반함수에서 this는 코드가 실행시점 컨텍스트에 의해 결정되지만 화살표 함수는 선언시점 컨텍스트에 따라 결정된다. 화살표 함..

JavaScript 2023.12.07

[TIL]31. 데이터베이스 트랜잭션란?

우리가 웹 애플리케이션을 만들 때 그 사이트에 대한 비즈니스 로직들이 존재한다. 이러한 비즈니스 로직들이 진행되다가 문제가 생기면 다시 오류가 난 시점으로 복구를 해야 하는데 그것을 가능케 하는 것이 트랜잭션이다. 자세히 알아보자 트랜잭션이란? 왜 사용하는데? 트랜잭션에 대해서 위키피디아에 검색을 하면 다음과 같이 설명하고 있다. "데이터베이스에서 데이터에 대한 하나의 논리적 실행단계"가 말을 보고 이해가 가지가 않아서 조금 더 검색해 보았다. 그리고 내가 이해한 대로 가장 쉽게 표현하자면 "데이터베이스에서 여러 작업단위를 하나의 작업단위로 묶어서 실행"이다. 가장 보편적인 예를 한번 들어보겠다. 내가 배달음식을 시켜 먹으려고 한다. 음식을 선택하고 결제를 완료하던 중 모종의 이유로 어플이 강제종료 되었..

개발이야기 2023.12.01

[TIL]30. SQL 제약조건

우리가 erd를 설계하고 실제 데이터베이스 테이블을 만들 때 해당 칼럼에 대하여 제약조건을 줄 수가 있다. 제약조건을 추가해서 해당 칼럼에 의도에 맞는 값이 올 수 있도록 하는 것이다. 그리고 칼럼들 간 제약사항을 관리하고 조건을 위반한 데이터를 방지, 무결성을 유지한다. 제약조건의 종류 고유 제약조건 (unique) 중복된 값을 가질수 없다. ex) 사용자 아이디, 이메일 등 null 제약조건 특정 컬럼이 아무런 값을 입려받지 않도록 설정한다. 필수적으로 필요하지 않은 데이터 not null 제약조건 특정 컬럼에 값이 무조건 입력되어야 한다. 기본키 제약조건(primary key) 고유하게 식별할수 있도록 보장한다. 외래키 제약조건(foreign key) 테이블관 연관 관계를 설정하는 조건 칼럼이 다른..

개발이야기 2023.11.29

[TIL]29. Node 환경에서 AWS S3에 이미지 업로드

이번 팀 프로젝트를 진행하던 중 영화 리뷰를 적어서 소통하는 사이트를 개발하기로 했다. 영화 리뷰를 작성할 때 사진을 넣는 기능이 필수라고 생각이 들어서 이미지 업로드 방법에 대하여 검색하였다. 내가 과거에 자바를 공부할때 진행했던 방식은 물리적인 파일을 내 프로젝트에 보관하고 모든 파일 정보를 DB에 저장을 했었다. 그러나 이런 방식은 파일 자체를 우리 서버에 보관하기 때문에 상당히 많은 리소스를 차지한다는 것을 알았고 보통 물리적인 파일과 같은 데이터들은 외부 스토리지를 이용하여 저장하고 그 경로만 DB에 저장하는 식으로 사용한다고 한다. 그래서 그 원격 스토리지인 S3에 이미지를 업로드하는 방법을 알아보겠다. 1.AWS S3 버킷 생성 버킷을 만들면 다음과 같이 나온다. 2.AWS IAM 계정 만들..

개발이야기 2023.11.29

[TIL]27.타입스크립트 Type Predicate

타입스크립에서 Type Predicate라는 개념이 있다. 다음과 같은 함수가 있다고 하자. // 왜 이렇게 사용하면 안될까?? function isNumberBool(input: any): boolean { return typeof input === "number"; } isNumberBool 함수의 리턴값을 boolean으로 선언하였다. 그냥 보면 문제가 없어보인다. 그러나 사용하면 조금 불편한 점이 생긴다. let num: any = 5; if (isNumberBool(num)) { num; // type이 any임 } num에 대한 체크후 num을 number로 사용하려고 할때 문제가 생긴다 any타입으로 되어서 또 casting이 필요하다. function isNumber(input: any)..

개발이야기 2023.11.21

[TIL]26.타입스크립트 Type,Interface

타입스크립트에선 타입을 개발자가 만들 수 있다. 크게 두 가지 방식이 있는데 Type키워드로 내가 원하는 명칭으로 타입을 선언할 수 있고 Interface도 비슷하게 타입을 선언할 수 있어서 두 개념에 대해 많이 혼동한다고 한다. Type과 Interface의 차이점에 대해 알아보자 Type으로만 할 수 있는 것 primitive 타입으로 선언할 수 있다. union 타입으로 선언할 수 있다. primitive 배열, 튜플을 선언할 수 있다. // 타입 정의하는 방법와 사용법 type MyString = string; let mystring1: MyString = "안녕하세요". // Type만의 특징 // primitive 타입 선언 type MyString = string; // union 타입선언 ..

개발이야기 2023.11.20

[TIL]25.bcrypt로 암호화를 해보자!

개인정보를 DB에 저장할 때 비밀번호 같은 중요한 정보를 그대로 저장하는 것은 상당히 위험한 행위이다. 저장 전 암호화를 해주는 bcrypt 패키지 사용법에 대해 알아보자 https://www.npmjs.com/package/bcrypt bcrypt A bcrypt library for NodeJS.. Latest version: 5.1.1, last published: 3 months ago. Start using bcrypt in your project by running `npm i bcrypt`. There are 4218 other projects in the npm registry using bcrypt. www.npmjs.com 사용법 1.npm을 이용하여 설치를 진행한다. npm insta..

개발이야기 2023.11.16

[TIL]24.Node sequelize mysql 연결 + model 정의하기

오늘은 과제를 위해 sequelize를 이용하여 mysql을 연결을 해보았다. 처음으로 하는 연결이어서 헤매는 부분이 많았다. Sequelize mysql 세팅하기 일단 sequelize가 설치되어있다는 가정하에 진행해 보겠다. 프로젝트를 생성 후 다음과 같은 명령어를 입력한다. 그럼 다음과 같은 3개의 폴더가 생성된다. seeder에 대해서는 지금 당장 사용하지 않을 것이다. npx sequelize-cli init config migrations seeder config 폴더 내에는 DB접속을 위한 config.json 파일이 생성되어있을것이다.(최초 생성은 json파일이지만 나는 ES6 모듈을 이용하여 세팅을 하여서 자바스크립트 형식으로 변경된 상태이다.) 내부에는 DB접속 정보가 있다.env로 환..

개발이야기 2023.11.15

[TIL]23.nodemon 설치법/ Sequelize,mysql 설치

nodemon 설치하기 https://www.npmjs.com/package/nodemon nodemon Simple monitor script for use during development of a Node.js app.. Latest version: 3.0.1, last published: 4 months ago. Start using nodemon in your project by running `npm i nodemon`. There are 4966 other projects in the npm registry using nodemon. www.npmjs.com nodemon 디렉터리 파일이 변경되면 자동으로 서버를 구동시켜 node기반 개발을 돕는 도구 npm install --save-dev..

개발이야기 2023.11.14
728x90