본문 바로가기

분류 전체보기63

#024. TS 선언문(:타입)과 단언문(as 타입) 구분해 사용하기 개념 ts에는 변수에 값을 할당하고 타입을 부여하는 방법에는 단언문과 선언문 두 가지가 있다. 선언문은 ':'을 이용해서 변수에 타입을 명시하고 단언문은 'as'를 사용해 타입을 단언한다. interface Person { name: string }; const a: Person = {name: 'Alice'}; // 선언문 const b = {name: 'Alice'} as Person // 단언문 const c: Person = {}; // name 필드가 없으므로 에러가 난다. // ~~~~~~~~~~~~~~~~~ Property 'name' is missing in type '{}' but required in type 'Person'. const d = {} as Person // 에러를 던지지.. 2023. 1. 26.
#023. 무중단 배포: Readiness 와 Liveness 설정하기 goal(목표) (1) Spring boot에서 무중단 배포(Zero-downtime Deployment)를 한다. (2) 빌드가 정상적으로 뜨지 않는 경우 배포하지 않는다. (3) 배포 실패 또는 서버가 죽었을 때 슬랙으로 알림을 받는다 (4) 개발 단계에서도 클라이언트와 사이좋게 지내기.. 누가 무중단 없이 배포 소리를 내었는가?.. Non-goal Cloud 환경 설정 플로우 다이어그램 서버 내부 구현 (1) Kubernetes Probes란 Probe는 kubelet이 주기적으로 컨테이너의 상태를 체크하는 것이다. Spring Boot 2.3 이후부터는 Kubernetes probes 기능이 통합되어서 스프링부트에서 직접 설정할 수 있게 되었다. Spring Boot에 spring-boot-sta.. 2022. 12. 30.
#022. github의 graphql explorer로 private repository 접근하기 요약 goal(목표) 문제상황: github의 graphql 의 explorer에서 private 한 repository 에 접근할 수 없다. Oauth token을 발급해서 header에 넣어도 접근 불가. "Although you appear to have the correct authorization credentials, the `***` organization has enabled OAuth App access restrictions, meaning that data access to third-parties is limited. For more information on these restrictions, including how to enable this app, visit https://d.. 2022. 11. 9.
Mikro ORM: Installation & Usage Installation (https://mikro-orm.io/docs/installation) - v4 부터 db connector 자체가 아니라 driver를 설치하면 그 안에 db connector가 들어있다. - decorator(https://www.typescriptlang.org/docs/handbook/decorators.html)를 사용하기 위해서 tsconfig.json에 아래와 같은 설정을 해준다. "experimentalDecorators": true, "emitDecoratorMetadata": true, "esModuleInterop": true, - mikro orm을 시작시키기 위해 , MikroORM.init 호출한다. em.createQueryBuilder()과 같이 특정.. 2022. 11. 6.
#021. nginx의 reverse proxy로 cors 에러 해결하기 github 코드: https://github.com/erie0210/cors-error 요약 nginx의 reverse proxy로 cors 에러 해결한다 goal(목표) cors 에러가 나는 이유를 이해한다. 네트워크 레벨에서 cors 에러를 해결한다. proxy, forward proxy, reverse proxy를 이해한다. Non-goal cors에러를 코드 레벨에서 해결 plan 플로우 다이어그램 서버 내부 구현 1. cors 에러 발생시키기 CORS(Cross-Origin Resource Sharing)는 서버가 자기 자신, origin에 지정되어있는 게 아닌 다른 출처(domain or port)에서 브라우저가 리소스 로딩을 하지 않도록 하는 HTTP 헤더 기반 매커니즘이다. 쉽게 말해 r.. 2022. 9. 18.
# 020. root domain으로 express cookie 세팅하기 요약 express cookie를 사용해서 authentication 기능을 구현한다. goal(목표) - express cookie를 사용해서 authentication 토큰으로 jwt를 발급해서 auth_token={value}형태로 프런트에 정보를 내려준다. - 프런트에서는 받은 쿠키를 사용해 서버에 접근한다. Non-goal 로그인 방법에 대한 정책 jwt 에 대한 개념 plan (정책) - domain을 설정하는 시점: 런타임 시점 도메인을 확인하고 설정하는 시점은 크게 두 가지이다. (1) 빌드 시점에서 도메인 값을 설정하는 방법이다. env파일에 DOMAIN 값을 설정해서 넣어줄 수 있다. (2) 런타임 시점에서 도메인 값을 설정하는 방법으로, req.hostname을 확인해서 넣어주는 방법.. 2022. 8. 29.