본문으로 건너뛰기
O-h-y-o Development blog

O-h-y-o Development blog

Do whatever what I want

Quasar 에서 엑셀 다운로드 하기

Quasar 에서 엑셀 다운로드 하기

코드 전체입니다.

exportData로 엑셀 다운로드를 할 수 있습니다.

타입이 지저분하고 any가 많은데 어쩔수가 없습니다.

// functions.ts
const wrapCsvValue = (
  val: string,
  formatFn?: (arg0: string, arg1: RowData | undefined) => string | undefined,
  row?: RowData
) => {
  let formatted = formatFn ? formatFn(val, row) : val;

  formatted =
    formatted === undefined || formatted === null ? "" : String(formatted);

  formatted = formatted.split('"').join('""');

  return `"${formatted}"`;
};

export const exportData = (columns: any, rows: any) => {
  const content = [
    columns.map((col: { label: string }) => wrapCsvValue(col.label)),
  ]
    .concat(
      rows.map((row: { [x: string]: any }) =>
        columns
          .map((col: any) => {
            const value =
              typeof col.field === "function"
                ? col.field(row)
                : row[col.field === void 0 ? col.name : col.field];

            if (value instanceof Date || dayjs.isDayjs(value)) {
              return wrapCsvValue(
                dayjs(value).format("YYYY.MM.DD HH:mm"),
                col.format,
                row
              );
            }

            return wrapCsvValue(value, col.format, row);
          })
          .join(",")
      )
    )
    .join("\r\n");

  const bom = "\uFEFF";

  const status = exportFile("table-export.csv", bom + content, "text/csv");

  if (status !== true) {
    commonNotify(
      {
        message: "Browser denied file download...",
      },
      "negative"
    );
  }
};

O-h-y-o1분 미만Quasarexport csvexport csvtypescript

SPA를 S3 - Cloudfront 로 배포하였을때 path가 / 가 아닌 페이지에서 새로고침을 하면 404에러가 반환되는데 이를 해결하기 위한 방법이다.

Cloudfront -> 배포 선택 -> 오류 페이지 에서 사용자 정의 오류 응답 생성 을 눌러서 400, 403, 404 에러코드에 대한 응답 페이지 경로는 / 로 설정, HTTP 응답 코드는 200으로 설정해두면 된다.

해당 이슈는 에러라고 하긴 뭐하지만, 스토어에 앱을 출시할 때 개인정보처리방침, 이용약관 등을 확인시켜주어야 하는데 봇들은 404에러코드가 반환되면 페이지가 없다고 판단하여 리젝 처리를 해버리기때문이다.


O-h-y-o1분 미만HTTPS 404AWSS3CloudfrontCapacitor
애플 앱 출시

애플 앱 출시

모든 과정에서 다운로드 버튼이 있다면 다운로드를 해주세요.

  1. 먼저 CSR 인증서를 발급받기위해 맥북에서 키체인 접근 -> 상단의 키체인 접근 -> 인증서 지원 -> 인증 기관에서 인증서 요청 을 눌러줍니다.

사용자 이메일 주소를 입력해주고, 요청 항목에 디스크에 저장됨, 본인이 키 쌍 정보 지정 을 선택해주고 완료해줍니다.

  1. 애플 개발자 페이지로 들어가서 Certificates, Identifiers & Profiles 를 들어가주세요.

  2. Certificates 에서 IOS Distribution (App Store Connect And Ad Hoc)을 체크하고 Continue를 해주세요.


O-h-y-o1분 미만AppAppleAppDeploySetting
xcode 설치 및 초기 세팅

xcode 설치 및 초기 세팅

  1. 스토어에서 Xcode 설치

  2. cocoapods 설치

$ brew install cocoapods
# or
$ sudo gem install cocoapods

O-h-y-o1분 미만AppXcodeAppXcode setting

현 날짜 기준으로 프로젝트 생성시, vite, vue, pinia 기타 등등 세팅을 할때 모두 가장 최신버전으로 세팅을 해두었을때를 가정

  • vue-i18n 사용시 개발서버에서는 변수 사용이 정상적으로 되는데 배포했을때 정상적으로 동작하지 않는 이슈
// en.json
{
  "word.person": "{person} person"
}

O-h-y-o1분 미만I18nLanguagevue-i18n
카카오 맵 구현하기 (Typescript)

카카오 맵 구현하기 (Typescript)

우선 카카오 개발자 센터를 들어가서 앱 등록을 해주세요.

https://developers.kakao.com

플랫폼에 들어가 사용할 플랫폼을 등록해줍니다.

앱키에서 Javascript 키를 복사하여 다음 코드에 넣어서 index.html에 넣어주세요.


O-h-y-o1분 미만KAKAOKAKAO MapKAKAO Develope
키 해시

키 해시

해시(Hash)는 데이터를 고정된 크기의 고유한 값으로 변환하는 함수나 알고리즘을 의미합니다. 주로 데이터의 무결성을 확인하거나, 데이터 검색의 효율성을 높이기 위해 사용됩니다. 안드로이드 개발에서는 해시를 주로 키 해시(Key Hash) 형태로 사용합니다.

**키 해시(Key Hash)**란 안드로이드 애플리케이션의 서명 키를 해싱한 결과로, 주로 외부 API 서비스(예: 카카오맵 API)를 사용할 때 보안 목적으로 사용됩니다. API 제공자는 애플리케이션이 올바르게 서명된 것인지 확인하기 위해 키 해시를 요구합니다.


O-h-y-o1분 미만AppAppAndroid Key HashCross Platform
플러터 기초

플러터 기초

플러터의 기본 위젯 4가지

플러터는 위젯을 조합하여 뷰를 그려냅니다.

Text, Image, Icon, Box 기본 4가지가 있습니다.

이미지 같은 경우 다음과 같이 설정해주세요.

pubspec.yaml
이 파일은 앱에서 필요한 모든 것들이 담겨있는 파일입니다.

이곳에 이미지를 등록시켜주어야 합니다.

프로젝트 루트에 assets 폴더를 만들어주고 안에 이미지를 넣어주고, pubspec.yaml에 다음과 같이 해주시면 됩니다.


O-h-y-o약 2 분AppFlutterCross PlatformAppFlutterCross Platform
Flutter 설치

Flutter 설치

Flutter 다운로드

https://docs.flutter.dev/get-started/install

해당 링크를 들어가서 자신의 운영체제에 맞는 것을 찾아서 다운로드를 받고, 압축 해제를 해주세요.


환경변수 설정

Window의 경우 환경 변수를 들어가서 사용자 변수에 path에 flutter를 압축 해제한 경로에서 /bin 을 추가하여 적은 뒤 생성해주세요.


O-h-y-o1분 미만AppFlutterCross PlatformAppFlutterCross Platform
2
3
4
5
...
8