본문 바로가기

분류 전체보기75

[Flutter] File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 해결하기 해당 오류의 경우 Xcode가 필요한 파일을 찾지 못해서 발생합니다. 구체적으로는 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a" 파일을 찾지 못하고 있다는 것을 의미합니다. 하지만, 실제 오류의 문구와 관계없이 아래의 단계를 통해서 해결이 가능할 수 있습니다. 패키지 IOS 버전 확인 프로젝트와 관련된 패키지에 IOS Target Version을 확인해봐야 합니다. 예를 들면 현재 프로젝트 Target IOS Version은 11로 해놓은 상태이나 관련 패키지 IOS 버전이 너무 낮거나 다른 경우 최소로 수정하여 맞춰주시면 됩니다. 다른 패키지들을.. 2023. 4. 4.
[Flutter] Cannot find "xcodebuild". Xcode 13 or greater is required to develop for iOS. Encountered error while building for device. "xcodebuild"를 찾을 수 없다는 오류 메시지와 함께 "iOS 개발을 위해 Xcode 13 이상이 필요합니다"(Cannot find "xcodebuild". Xcode 13 or greater is required to develop for iOS. Encountered error while building for device.)라는 메시지가 표시되면 시스템에 Xcode를 설치하거나 업데이트해야 합니다. 누락되어 설치가 안된 문제가 있을 수 있기 때문에 아래와 같은 방법으로 시도해 보시면 될 것 같습니다. Xcode Developer 설치 터미널에서 아래의 명령어를 입력하여, 설치되지 않은 패키지를 설치해주세요. sudo xcode-select --switch /Applications/Xcode... 2023. 4. 4.
[Flutter] 소셜 애플 로그인(Sign In with Apple) 구현하기 해당 글에서는 애플 개발자 등록 및 파이어베이스 등록 및 절차에 관한 내용은 넘어간 후의 애플 로그인 구현을 설명드리겠습니다. Apple 로그인에서 제공되는 정보 이름 : 필수로 받습니다. 단, 유저의 이름은 직접 수정도 가능하기 때문에 실명이 아닐 수 있습니다. 이메일 : 선택입니다. 이외 전화번호, 프로필 사진 등 다른 소셜 로그인에서 제공되는 정보는 받아 올 수 없습니다. Firebase 설정 프로젝트에 맞게 Firebase에서도 프로젝트를 생성해 줍니다. 앱 추가 등록 위 이미지처럼 처음에 Firebase에 접속하게 되면 앱 등록 바로 보이게 됩니다. 안드로이드, IOS 모두 등록해 줍니다. 등록 과정에서 다운되는 google-services.json 파일은 아래와 같이 폴더 경로에 맞게 다르게 .. 2023. 4. 3.
[React] npm, yarn, pnpm 차이점과 패키지 관리자 알아보기 패키지 관리자는 개발에 필요한 패키지를 설치하고 관리하는 데 사용되는 도구입니다. JavaScript 프로젝트에서는 npm, yarn, pnpm 등이 대표적인 패키지 관리자입니다. npm npm은 Node.js와 함께 제공되는 JavaScript 패키지 관리자로서, 현재 가장 많이 사용되는 패키지 관리자 중 하나입니다. npm은 Node.js 생태계의 핵심으로서, 개발자가 손쉽게 패키지를 설치하고 관리할 수 있도록 도와줍니다. 2010년 Node.js 프로젝트의 일부로 시작되었으며, 이후 JavaScript 생태계에서 가장 널리 사용되는 패키지 관리자가 되었습니다. npm은 자체 캐시와 의존성 관리 시스템을 갖추고 있어, 중복되는 패키지를 최소화할 수 있습니다. npm의 버전 5 이후부터는 yarn과 비.. 2023. 4. 2.
[FastAPI] PyCharm에서 디버그 실행 환경 만들기 최근 개발을 하면서 백엔드 실행을 위해 터미널에서 "uvicorn main:app --reload --host 0.0.0.0 --port 8001" 명령어를 자주 사용했습니다. 이렇게 실행하는 방법도 간단하지만, 개발자의 생산성을 높이기 위해 PyCharm에서 실행 환경을 만들어 사용하는 것이 더욱 편리하다는 것을 알게 되었습니다. 그래서 이번 글에서는 PyCharm에서 디버그 실행 환경을 만들어 백엔드 애플리케이션을 실행하는 방법을 소개하고자 합니다. 이 방법을 사용하면, 매번 터미널을 열어서 명령어를 입력할 필요 없이, PyCharm에서 디버그 실행 버튼만 누르면 애플리케이션이 실행되어 개발자의 생산성을 높일 수 있습니다. 이제부터, PyCharm에서 디버그 실행 환경을 만들어 백엔드 애플리케이션을 .. 2023. 3. 31.
[Flutter] 플러터 인앱(in_app_purchase) 정기결제 구현하기 정기 결제를 구현하기 이전에 인앱 상품을 결제하는 방법이 별도로 있습니다. 아래 링크를 통해서 먼저 확인하고 정기결제를 보시는 게 좋을 것 같습니다. 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 [Flutter] 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 플러터(Flutter)를 사용하여 앱 내에서 상품을 구매하고 소비하는 인앱 결제 기능을 구현하는 방법을 소개합니다. 인앱 결제는 사용자가 앱에서 콘텐츠, 기능, 서비스 등을 구매할 수 있도록 하는 dev-blackcat.tistory.com 정기결제 만들기 먼저, 코드상의 구현은 결제 상품 구매 구현하기 게시글에 있는것과 동일합니다. ProductID만 다르게 입력해 주면 되는 것이죠. 그 외에 전반적인 .. 2023. 3. 19.
[Flutter] 플러터 인앱(in_app_purchase) 결제 상품 구매 구현하기 플러터(Flutter)를 사용하여 앱 내에서 상품을 구매하고 소비하는 인앱 결제 기능을 구현하는 방법을 소개합니다. 인앱 결제는 사용자가 앱에서 콘텐츠, 기능, 서비스 등을 구매할 수 있도록 하는 강력한 기능입니다. 이 글에서는 플러터에서 인앱 결제를 구현하는 방법을 간단하게 설명합니다. 먼저, 진행하기 전에 가장 궁금하신 게 결제자를 어떻게 판별하고 관리하는지 궁금하실 거예요. 구글에서 전체적으로 관리를 제공해주지 않기 때문에 별도로 백엔드를 구현하셔서 주문 고객 등 관리를 별도로 해주셔야 합니다. 필요한 패키지 설치 플러터 인앱 결제를 구현하기 위해 필요한 패키지를 설치하려면, pubspec.yaml 파일에 아래와 같이 in_app_purchase 패키지를 추가하세요. in_app_purchase |.. 2023. 3. 19.
[Flutter] 어노테이션(annotation) `@` 사용해보기 어노테이션은 개발자가 소스 코드를 정적으로 분석하여 추론할 수 없는 의도를 표현하는 데 사용할 수 있는 주석입니다. 어노테이션 종류 @alwaysThrows 해당 함수가 항상 예외를 던진다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 함수를 오버라이드하는 함수도 동일한 계약을 준수해야 합니다. @doNotStore 해당 메서드, 게터, 혹은 최상위 게터나 함수에서 반환된 값을 필드나 최상위 변수에 저장하지 말아야 한다는 것을 나타내는 어노테이션입니다. @experimental 해당 라이브러리나 클래스의 API가 실험적이며 언제든지 변경될 수 있다는 것을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 API가 변경되어도 해당 패키지의 버전이 업데이트되지 않아도 됩니다. @factory 해당 인.. 2023. 3. 19.
[Flutter] Gradlew signingReport를 이용한 SHA1 및 SHA256 키 확인 간편 가이드 Gradlew signingReport를 사용하여 SHA1과 SHA256 키를 쉽게 확인하는 방법을 소개합니다. 명령어 실행 각 프로젝트 폴더에서 터미널로 `/android` 폴더로 이동하여 아래 명령어 실행 gradlew signingReport 아래와 같이 `Config: debug`, `Config: release`으로 `SHA-1`, `SHA-256` 값을 확인할 수 있습니다. 2023. 3. 18.
[디자인] 사용자 친화적인 웹사이트 10가지 방법 (번역) 좋은 디자인은 사용자와 그들의 문제를 고려하여 만들어져야 합니다. 외관만 좋아 보일 뿐 실제 사용자에게 도움이 되지 않는 디자인은 좋은 디자인이라고 할 수 없습니다. 사용자가 이용하기 쉽고 문제를 해결해 주는 디자인이야말로 좋은 딩자인입니다. 그러므로 여기에 "사용자 친화적인 디자인"을 만들기 위한 5가지 방법을 소개합니다. 1. 단순하게 유지하라 디자인에서는 항상 덜하면 더입니다. 사용자가 집중할 수 있도록 디자인을 깔끔하고 복잡하지 않게 유지하세요. 신입 디자이너들이 처음 프로젝트에서 모든 것을 보여주려는 경향이 있습니다. 2. 쉽게 스캔할 수 있게 하라 대부분의 사용자는 단어 하나하나를 읽지 않습니다. 따라서 콘텐츠를 쉽게 스캔할 수 있도록 합니다. 제목, 부제목, 글머리 기호를 사용하여 텍스트를 .. 2023. 3. 18.