분류 전체보기34 [Error]Cannot use JSX unless the '--jsx' flag is provided 다음의 오류는 글로벌 ts 버전과 현재 ide ts 버전이 달라서 생기는 오류 ts 글로벌 버전과 package.json 버전이 다를 때 vscode ts 파일 우측 하단 버전숫자 클릭 -> Select Tyoescript Version -> Use Workspace Version 클릭 2021. 11. 5. react cookie에서 httpOnly 옵션에 관하여 토큰기반 로그인 구현 중 jwt에서 서명한 토큰을 브라우저에 쿠키로 저장하기로 했다. document.cookie 명령어에 의해 쿠키 탈취를 막고자 다음과 같이 옵션을 넣어 작성했다. cookie.set('accessToken', res.token,{ path : '/', httpOnly : true }) httpOnly 옵션은 스크립트로 인한 쿠키 탈취를 막는다. 하지만 문제가 있는데 You can only set domain cookies for registry controlled domains, i.e. something ending in .com or so, but not IPs or intranet hostnames like localhost 출저 : https://stackoverflow.co.. 2021. 10. 27. Cannot add or update a child row: a foreign key constraint fails sql 오류 원인은 참조 무결성을 위반해서 그렇다. 다른 테이블을 참조하고 참조테이블에 기본키를 외래키로 가지고 있는 테이블에서 참조테이블에 키가 없어서 발생하는 오류 예를들어 유저 회원가입 시 비밀번호 암호화에 필요한 salt값을 따로 저장하는 테이블에서 유저 테이블에 아이디가 없으니 동작하지 않는다. 해결법은 참조하는 테이블에 값(외래키)를 넣어주면 된다. 2021. 10. 12. let, const 블록레벨 스코프 var 는 문제가 많다. (한번도 써본적 없지만) var a = 1; var b = 2; var a = 1341; var b; console.log(a); // 1341 console.log(b);// 2 다음과 같이 중복 선언이 가능하다. 동일 변수 이름이 선언되 있는 것을 모르고 선언한면서 값까지 초기화 해준다면 사이드 이펙트가 생기는 부작용이 발생한다. 함수 레벨 스코프 var 키워드는 오로지 함수 코드 블록만 지역스코프로 인정한다. 따라서 함수 외부에서 var로 선언한 변수는 코드 블록 내 선언해도 모두 전역변수가 되어버린다. var s = 23; if(true){ // s는 전역변수 이미 선언된 변수가 있으므로 중복선언 // if 블록안에 새로 선언해도 전역변수 // 이는 사이드 이펙트를 발생시.. 2021. 10. 9. 팩토리 패턴1 (factory pattern) firsthead 책을 공부하고 요약한 것입니다. new는 구상객체다. new 지시자는 구상클래스의 인스턴스를 만드는것. new는 나중에 코드를 수정할 가능성이 높아지며 유연성이 떨어진다. // 인터페이스를 Animal을 사용하였지만 new 지시자를 이용해 구상클래스 생성 Animal dog = new Dog(); 다음과 같이 코드를 짜야할 순간이 있다. if(dogType === 'Maltese'){ dog = new Maltese(); }else if(dogType === 'Pomeranian'){ dog = new Pomeranian(); }else if(dogType === 'ShihTzu'){ dog = new ShihTzu(); } 이런 코드는 만들어지는 인스턴스 형식은 실행시 주어진 로직에 .. 2021. 9. 24. 전략패턴 (Strategy Pattern ) headfirst 디자인 패턴책을 공부하고 정리한 것 입니다. 문제점 abstract class IronMan { public fly():void{ console.log('fly'); } public abstract showInfo():void; } class Mark2 extends IronMan{ public showInfo(){ console.log('i am mark2 suit'); } } 추상 클래스 아이언맨을 상속받아 여러가지 서브 버전을 생성할 수 있습니다. mark2 뿐만아니라 더 확장해 나갈 수 있져. 그러던 어느날 레이저 공격 기능을 추가하고 싶었습니다. public lazerAttack():void{ console.log('lazerattack'); } 다음의 함수를 작성하고 추상클래.. 2021. 9. 21. 데코레이터 패턴(Decorator Pattern) abstract class IceCreame{ public abstract getTaste():void; } class Vanilla extends IceCreame{ public getTaste():void { console.log('바닐라 아이스크림'); } } abstract class IceCreameDecorator extends IceCreame{ private iceCreame : IceCreame; constructor(ic: IceCreame){ super(); this.iceCreame = ic; } public getTaste():void{ this.iceCreame.getTaste(); } } class ChocoDecorator extends IceCreameDecorator{ c.. 2021. 9. 21. 싱글톤 패턴 (singleton pattern) 싱글톤 패턴은 메모리 위에서 인스턴스가 하나임을 보장하는 디자인 패턴이다. 장점 1. 하나의 인스턴스를 보장함으로 메모리 리소스 절약 2. db 커넥션 및 로그 등 사용 단점 1. 멀티 쓰레드 , 멀티 프로세스 상황에서의 동시성 이슈 2. 하나의 인스턴스가 많은 작업을 할 경우 간단하게 싱글톤을 구현해보자 class Single { private static instance : Single; private readonly name :string; private constructor(n:string){ this.name = n; } public static getInstance(){ if(!Single.instance){ Single.instance = new Single('king'); } return .. 2021. 9. 16. 이전 1 2 3 4 5 다음