본문 바로가기

Develop/Others25

iOS app lacks App ID Prefix. UniversalLinks is not enabled for the app. 1. 문제상황 스토어에는 아직 업로드하지 않은 앱에 firebase 다이나믹 링크 적용을 시도하고 있었다. 설치되어 있는 경우 다이나믹 링크를 브라우저나 기타 메모장에 입력하거나 QR코드로 만들어 카메라로 인식하면 앱이 실행되야한다. 안드로이드 앱은 잘 열렸지만, 애플 앱은 다이나믹 링크가 되지 않았다. 아래 캡처는 해결하여 사라졌지만 "iOS app 'com.j.' lacks App ID Prefix. UniversalLinks is not enabled for the app." 다음과 같은 에러가 있었다. 2. 원인파악 firebase 프로젝트 설정은 아래와 같이 잘 되어 있었다. App Store ID, 팀 ID도 잘 작성되었으며, 번들 ID도 에러와 같은 'com.j' 가 아니라 'com.jabc.. 2022. 4. 9.
static 멤버 언제 어떻게 사용해야 좋을까? express API 서버를 javascript -> typescript로 개편하면서 사용했던 static 메소드에 대해 간단히 알아봤습니다. import express from "express"; export class AppRouter { private static instance: express.Router; static getInstance(): express.Router { if (!AppRouter.instance) { AppRouter.instance = express.Router(); } return AppRouter.instance; } } # 사용하면 좋은 경우 코드가 인스턴스 생성에 의존적이지 않고 인스턴스 변수를 사용하지 않는 경우 유틸리티와 같이 메서드 정의가 변화되지 않고 재정의.. 2022. 2. 14.
[typescript] Composition vs Inheritance Typescript Enum, Tuple, Composition과 Inheritance을 학습합니다. 축구경기 데이터가 담겨있는 csv 파일에서 데이터를 추출해서 맨유의 승리경기 횟수를 출력하는 프로그램을 만들어봅니다. 간단하게 만든 후 리팩토링 하는 과정을 통해 Enum, Tuple, Generic, Composition과 Inheritance 를 알아봅니다. - csv 파일은 아래와 같은 형식으로 저장되어 있다. 10/08/2018,Man United,Leicester,2,1,H,A Marriner 11/08/2018,Bournemouth,Cardiff,2,0,H,K Friend 11/08/2018,Fulham,Crystal Palace,0,2,A,M Dean ----- [0] 12/08/2018 -.. 2022. 2. 6.
[typescript] Interface VS Abstract Class typescript를 사용하면서 인터페이스와 추상클래스는 어떤 경우에 사용하는지 알아봅니다. Interface vs Abstract Class 정렬 기능을 갖는 Sorter 클래스를 구현하면서 실습합니다. 1-1. 사용할 프로젝트를 생성합니다. # 기본적인 package.json 파일과 함께 프로젝트 생성 npm init -y # typescript 및 테스트에 사용될 npm 설치 npm i typescript nodemon concurrently # source 디렉토리 생성 mkdir src # main file 생성 touch index.ts # 기본 typescript 설정파일 생성 npx tsc --init - 아래와 같이 프로젝트 구조가 갖춰집니다. 1-2. 다음과 같이 typescript c.. 2022. 2. 4.
check code difference / git diff with vscode git diff 보기 불편하다. vscode 도움을 받아보자. # VSCode 사용 code --diff file1.js file2.js # git diff 기본 설정 변경 # 웹서비스 이용 https://www.diffchecker.com/ https://www.diffnow.com/compare-clips 2022. 1. 27.
멀티 테넌시 란? 멀티테넌시(Multi-tenancy) tenancy의 뜻을 찾아보면, '(주택, 토지 등의)차용[임차/소작]'으로 소개되어 있다. 쉽게 말해 빌려 쓴다는 뜻이다. 멀티테넌시를 구글링해보면 단일테넌시와 구분지어 설명되어 있는 글을 쉽게 볼 수 있다. 단일 테넌시는 하나의 소프트웨어나 인스턴스가 하나의 사용자 혹은 사용자그룹을 위해 작동하는 아키텍처, 멀티테넌시는 하나의 소프트웨어나 인스턴스가 여러 사용자 혹은 사용자그룹을 위해 작동하는 아키텍처라고 한다. 쉽게 예를 들면, 웹메일 서비스로 생각해볼 수 있다. 웹메일 서비스는 멀티테넌시 구조로 동작하고 있다. 많은 사람들이 크게 하나의 웹메일 서비스(gmail, naver...)를 이용해 메일을 주고받고 있다. 하지만 여기서 중요한 것은 여러 사용자 및 사용.. 2022. 1. 22.
wsl node version & nvm node version [ 상황 ] 리눅스 환경에서 개발이 필요하여 WSL을 사용하고 있다. Node 버전은 nvm을 사용해서 관리하고 있다. [ 문제 ] node version을 12.22.4를 사용하다 14.17.0으로 변경했다. nvm install 14.17.0 nvm use 14.17.0 node --version v14.17.0 노드버전을 변경했으나 쉘스크립트를 다시 열면 버전이 기존에 사용하던 12.22.4로 돌아간다. [ 원인 ] nvm 에서 사용하는 default 노드버전을 변경해줘야 한다. [ 해결 ] nvm default 버전을 변경해준다. nvm alias default 14.17.0 WSL을 재시작한다. [ 성공 ] 2022. 1. 1.
[npm] Github Actions로 npm publish 삽질기 삽질1 - sh: 1: babel: not found on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: 12 - run: npm install - run: npm test publish-npm: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '12.x' registry-url: https://registry.npmjs.o.. 2021. 12. 18.
[npm] NPM cheatsheet & package.json 속성 ※ package.json 속성 설명 bin bin 속성은 실행할 수 있는 패키지를 만들 때 정의한다. 패키지를 설치할 때 npm은 bin속성에 정의된 파일의 Symlink를 생성. "bin": { "log-run": "bin/cli.js" }, 여기서 "log-run"은 CLI 명령어가 된다. peerDependencies 호환성 모듈을 지정한다. 배포시 포함되지 않는다. 대신 호환성 모듈이 없으면 경고 메시지 준다. "peerDependencies": { "jquery": "1.9.1 - 3", "popper.js": "^1.12.9" } engines 패키지 Node 버전을 지정. "engines": { "node": ">=0.10.3 2021. 12. 18.
방화벽 IP PORT 오픈 확인 (열려 있나?) $ nslookup 기본 서버: PAD.aaa.net Address: 10.1.4.254 $ naver.com 권한 없는 응답: 이름: naver.com Addresses: 223.130.200.104 223.130.195.95 223.130.200.107 223.130.195.200 $ telnet 223.130.200.104 443 # 연결 안 될 경우 연결 대상 223.130.200.104... 연결 대상 223.130.200.104...호스트에 연결할 수 없습니다. 포트 4434: 연결하지 못했습니다. # 연결 될 경우 화면 넘어가고 블랙 화면 2021. 10. 15.