IT 50

iOS 앱 배포 실패 문제 - "~ 유효한 바이너리가 아닙니다"

Xcode로 빌드는 잘 되었다. 하지만 distribute 도중 실패하며, "은 유효한 바이너리가 아닙니다"라는 알림창이 뜬다.  메시지는 구체적이지 않지만, 해결방법은 있다. 우선 메일함을 열어보자.애플에서 메일을 한통 어떻게 하라는지 친절하게 알려준다.Flutter의 특정 라이브러리가 카메라를 사용하기에 발생한 증상으로 보인다.나 같은 경우 당장 카메라 엑세스가 필요하지 않은데, 이런 경우 라이브러리를 직접 수정해야 하는 건가 의문이 남기에, 나중에 알아봐야겠다.

IT 2024.05.30

Automatically assigning platform `iOS` with version `12.1` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile 경고 수정 방법

플러터로 iOS 앱 개발을 하다가 아래와 같은 에러를 만났다. Automatically assigning platform `iOS` with version `12.1` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`. 해결 방법은 경고 로그에서 이 문서에서 확인하라고 친절히 알려준다. 해결 결과물 한눈에 보기 1. Podfile > 두번째 줄을 확인 2. 프로젝트에 맞게 수정

IT 2024.01.23

AWS S3 버킷 이름 작명 시 유념해야할 것

보통의 경우, AWS 서비스와 연동할 것이고, AWS에서 예제를 잘 제공해주기에 큰 문제가 되지 않을 것이다. 하지만 AWS 서비스 외의 다른 서비스와 연동을 하다보면, 문제가 발생하기도 하므로 버킷 이름 작명 시 알고 있어야할 것들을 기록해둔다. 1. 버킷의 용도에 따라 달라지는 구분자 버킷 이름에 "."을 사용하면 좋지 않은 경우 AWS는 서브도메인(sub.domain.com에서 sub에 해당하는 것)을 재귀적으로 선언(sub2.sub1.domain.com)할 수 있다. 하지만 python 일부 라이브러리, 다른 DNS 관리 서비스 등에서 예외가 존재한다. 서브도메인 내에서 .을 사용하는 경우, 올바르지 못한 도메인으로 인식하는 경우가 있다. 실제로 django + s3 연동 시, 이름에 .이 포함된..

IT 2023.11.20

Django와 S3연동 후, css 등 static file 로딩이 되지 않을 때 해결 방법

문제: django admin 접속 시, css가 적용되지 않는다 Django 로 개발하던 중, static file을 S3로 collectstatic 해주었다. 그 이후, django admin에서 css 등이 적용되지 않는 증상을 보였는데, 코드 문제는 아니었다. 이런 경우 문제의 가능성과 내 경우 무엇이 문제였는지 정리해둔다. 가능성 1: S3 연동 후, collectstatic을 재수행하지 않았다 S3에 연동 후에 반드시 collectstatic 해주어야 한다. 하지 않으면, S3 bucket 설정이 완벽해도, 자원이 없으므로 여전히 예쁘지 않은 admin페이지를 볼 것이다. 해결책 아래 스크립트 실행: S3에 static file을 업로드한다. ./manage.py collectstatic [-..

IT 2023.11.14

Android studio에서 build > Generate Signed Bundle/APK 가 없을 때 해결 방법

Google play console에 배포하려면, 앱 서명을 해야 한다. 앱 서명은 서명 파일이 있어야 하는데 수동으로 만들 수도 있지만, Android studio를 사용하면 관리가 편하다. 만약 당신이 Flutter 개발자라면 겪을 수 있는 일 안드로이드 앱 배포 관련 공식 문서에 따르면, 아래와 같은 메뉴를 확인할 수 있어야 한다. 있었는데, 없습니다 하지만 Flutter 프로젝트에서는 같은 Android studio라 할지라도, build 탭에서 Generate Signed Bundle/APK 메뉴를 찾을 수 없다. Android studio는 프로젝트 성격에 따라, 하위 메뉴들을 재구성한다. Flutter는 크로스 플랫폼 개발 프레임워크이지, Android app 배포 도구는 아니기 때문에, G..

IT 2023.11.07

shell script 퍼포먼스 측정 방법

Bun의 build 속도가 node에 비해 얼마나 빠른지 궁금했다. 막상 js코드로만 측정하려니, nest-cli 등의 빌드 커맨드가 껴있어서 어려워보였다. shell script작성이 불가피해보인다. 퍼포먼트 측정 코드(feat. bard) 쉘 스크립트의 실행 시간을 측정해서 비교하고 싶다. 아래는 bard가 작성해준 간단한 측정방법이다. # 시작 시간 start_time=$(date +%s) # 테스트할 코드 # ... # 종료 시간 end_time=$(date +%s) # 경과 시간 elapsed_time=$((end_time - start_time)) # 결과 출력 echo "성능 테스트 결과" echo "경과 시간: $elapsed_time 초"

IT 2023.11.06

Bun(JS) 1.0.4 ConnectionRefused Error

Bun을 실무에 도입해볼까하여 검토 겸 공부하려고 예제를 만들어보고 있었다. 코딩한지 3분 됐나...? 도중 아래와 같은 에러가 났다. 에러 내용 ConnectionRefused: Unable to connect. Is the computer able to access the url? 문제의 코드 코드는 아래와 같았는데, 나는 localhost:8000에 fastAPI를 띄워두었으므로, 정상 동작해야 했다. Bun.serve({ async fetch(req) { console.log(await fetch('http://localhost:8000/api/healthz')) return new Response("Bun!"); }, }); 해결 방법 localhost => 127.0.0.1로 수정하자, 정상동..

IT 2023.11.05

AWS의 serverless application을 local에서 테스트하는 방법

AWS serverless 모델 중 하나이자 대표격인 Lambda를 사용하다가 불만이 생겼다. "단위테스트를 좀 더 편하게 할만한 방법이 없을까?", "꼭 AWS에 올려놓고 테스트해야 하나?" 등이었다. 물론 AWS에 올려서 테스트해도 된다. 하지만 로컬의 IDE에서 debugging하는 것 만큼 편하지 않다. AWS의 샘플코드인 아래 코드를 복붙하여, 보통 메인함수 실행시키듯 로컬에서 실행시키면 다음과 같은 에러가 발생한다. package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/lambda" ) type MyEvent struct { Name string `json:"name"` } func HandleRequest(_ context...

IT 2023.05.17

Go 단위 테스트 방법

golang(이하 go)도 python만큼이나 단위테스트 방법이 간단하다. 바로 알아보자 요구사항 go만 설치되어있으면 된다. go 언어에 단위 테스트 기능이 포함되어 있다. 테스팅 테스트할 함수를 정한다. 아래는 예시 코드이다. // foo.go package awesomeProject1 // 이 파일 바깥에서도 이 함수를 사용하려면, 대문자로 적어야한다. // java로 치면 public, private 같은 접근 제어자의 역할을 한다. func Foo() string { return "Foo" } 테스트 파일 만들기 단위 테스트할 파일 이름에 ~_test.go를 붙여서 테스트 파일을 만들어준다. 테스트 파일에 테스트 작성 예시 테스트 코드 package awesomeProject1 import "t..

IT 2023.05.04

C++ 테스트 환경 구축 - CLion에서 Google Test 연동, 사용 방법(with cmake)

C++ 초심자를 위한 테스트 환경 구축 방법을 소개하고자 한다. 아마 대부분의 개발자는 python의 pytest, javascript의 jest, java의 junit 같이 테스트 디펜던시만 추가해서 동작시킬 수 있는 환경을 원할 것이다. 나 역시 그랬고, C++의 패키지 매니저가 뭔지도 몰라 삽질했던 나같은 사람을 위해 이 글을 작성한다. CLion에 Google Test 적용하기 IDE: CLion(VS 등 다른 IDE 사용자는 다른 게시글을 찾길 권장. 이 게시글에 하트가 많이 눌려있다면 다른 IDE나 라이브러리, 플랫폼도 작성해보겠습니다) 요구사항 필수 C++ 버전: 14를 호환할 수 있는 버전(17에서도 동작한다) 선택 cmake(이 문서에 따르면, Bazel도 지원하는 것으로 확인 됨. CL..

IT 2023.04.17