자동 업데이트 기능을 구현하려면 애플 개발자 계정을 구매해야하고, 빌드된 일렉트론에 서명을 해야 제대로 배포할 수 있다. 그러기 위해서는 우선 애플 개발자 계정을 결제해야한다. - 키체인 접근 > 상단 메뉴 > 인증서 지원 > 인증기관에서 인증서 요청 클릭 디스크에 저장하면 Certificate Request 어쩌고 파일이 저장된다. (이 인증서 파일은 기기마다 다른것같으므로 Mac 기기가 바뀌면 새로 등록해줘야하는 것 같다. 다른 맥 기기로 등록해놨던 인증서를 그냥 다운로드만 받았더니 인증서 인식을 제대로 하지 못했다. 아마 private, public key 방식으로 동작해서 그런듯?) 이 파일을 https://developer.apple.com/account/resources/certificates..
electron, electron-builder, robot.js 이 3가지의 버전이 서로 잘 호환이 되지 않아서 골치가 매우 아프다. 각 패키지의 업데이트 주기가 달라서 하나가 업데이트 됬을때 다른 패키지들도 같이 업데이트가 되어야하는데 오픈소스 기반이다보니 빠르게 대응이 안되는것같다. 결국 개발자가 각 패키지의 호환가능한 버전을 일일이 찾아야하는데 검색해도 호환되는 버전이 어떤 버전인지 정리해놓은곳을 찾을 수가 없었다. 아래와 같이 이상한 오류가 난다. $ electron-builder install-app-deps • electron-builder version=21.2.0 • loaded configuration file=package.json ("build" field) • rebuilding ..
Node.js로 매크로를 만들어보고 있는 도중에 문제가 발생했다. Robot.js라는 라이브러리가 있는데 이 라이브러리는 내부적으로 node-gyp라는 모듈을 사용한다. 이 node-gyp라는 모듈은 내부적으로 파이썬 코드가 작성되어 있는 것 같다. 파이썬 코드가 C++로 변환되고 이 C++코드가 최종적으로 네이티브(PC 운영체제)를 조작할 수 있게끔 해주는것이다. 그래서 node-gyp 모듈을 포함하는 node 모듈을 설치하려면 ms build tools라고 하는게 미리 설치되어있어야한다. robot.js에서는 node-gyp@5.1.0 버전을 사용하고 있는것같다. 현재 최신버전은 node-gyp@9.1.0이지만 업데이트가 이뤄지지 않고 있는듯하다. 어쨌든 node-gyp@5.1.0버전이 의존하고 있는..
순서 정리 1. 애플 개발자 계정 준비 2. Developer Id Application Certificate 발급 3. 로컬 컴퓨터에 설치 4. 일렉트론앱에서 업데이트 코드 작성 5. hombrew install minio 6. mkdir ~/minio-data/test-update 7. minio server ~/minio-data 8. package.json의 build.publish 부분에 아래 내용 삽입 "publish": { "provider": "s3", "endpoint": "http://192.168.0.3:9000", // 로컬 IP "bucket": "test-update" // 로컬 버킷 }, 9. export AWS_ACCESS_KEY, AWS_SECRET_KEY (각각 minio..
@Exclude() @Entity() export class User extends BaseEntity { @ApiProperty() @Expose() @PrimaryGeneratedColumn('uuid', { name: 'user_id' }) id: string; @ApiProperty({ default: '01024094270' }) @Expose() @IsNotEmpty({ message: '휴대폰번호를 입력해주세요.' }) @IsPhone({ message: '휴대폰번호가 잘못 입력되었습니다.' }) @Column({ unique: true }) phone: string; 유저 모델이 위와 같이 정의되어있는 상황에 휴대폰 번호 자체의 문법적 오류(하나가 빠졌다던가, 이상한 번호를 입력했다던가)는..
이 글은 독자가 JWT, 세션등에 대한 이해를 갖고 있다는 전제하에 정리 차원에서 작성한 글입니다. TL;DR 1. 리프레시 토큰은 HTTP ONLY SECURE 쿠키에 저장하자. 2. 액세스 토큰은 프로그램상 자바스크립트 로컬 변수에 저장하고, http 헤더에 bearer 토큰으로 담아서 매 요청마다 보내도록 하자. 3. 로컬스토리지는 사용하지 말자. (보안에 매우 취약) 브라우저 어디에 토큰을 저장해야 안전할까? 브라우저에서 JWT를 저장할 수 있는 곳은 로컬스토리지, 쿠키 두군데가 있다. 하지만 로컬스토리지나 쿠키나 모두 자바스크립트로 읽을 수 있는 값들이기 때문에 아무런 처리없이 이곳에 저장하면 굉장히 보안에 취약하다. 해커가 이미지 태그 혹은 브라우저 URL에 자바스크립트를 삽입 할 수 있는 취..
- Total
- Today
- Yesterday
- es6
- rendering scope
- promise
- react hooks
- props
- typescript
- type alias
- storybook
- Action
- reactdom
- state
- design system
- reducer
- mobx
- Babel
- react
- atomic design
- hydrate
- javascript
- async
- webpack
- server side rendering
- Polyfill
- Next.js
- return type
- reflow
- await
- computed
- useRef
- useEffect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |