본문 바로가기
반응형

전체 글322

CustomPaint에서 drawPath가 안그려 질 때 1. 문제상황 drawLine은 선이 잘 그려지는데, drawPath를 하면 선이 그려지지 않는다. 2. 문제원인 paint의 style값이 주어지지 않아 생기는 문제이다 3. 해결방법 아래와 같이 PaintStyle.stroke 값을 주면 선이 그어지게된다. Paint bluePaint = Paint() ..style = PaintingStyle.stroke ..color = Colors.blue ..strokeWidth = 5.0; canvas.drawPath(path, bluePaint); 2023. 12. 19.
CustomPainter사용시 주의사항 RepaintBoundary 1. 문제상황 캔버스를 이용하여 A위젯 B위젯 2가지 위젯을 만들었다고 가정하자. A라는 위젯을 다시그리면 B위젯까지 다시 그려지게 된다. 2. 원인 CustomPainter를 사용한 위젯들은 같은 레이어를 사용하기에 발생하는 원인이라고 한다. 한마디로 같은 도화지에 그리니깐, 다른 하나를 다시 그리면 다른놈도 통째로 다시그린다는것. 3. 해결방안 CustomPaint위젯을 RepaintBoundary 위젯으로 감싸주면 된다. 이는 범위 밖의 그림이 다시 그려지는것을 방지해준다. https://stackoverflow.com/questions/66388418/flutter-custompainter-paint-method-gets-called-several-times-instead-of-only-on Fl.. 2023. 12. 19.
ImportError: attempted relative import with no known parent package 파이썬 할 때 마다 매번 마주치는 에러. 1. 원인 파이썬은 상대경로로 임포트 할 때 __name__을 기준으로 상대경로를 파악한다고 한다. 허나 어떤 파이썬 파일을 직접 실행시키면 __name__이 __main__으로 설정된다. 이때 상대경로 임포트는 항상 실패한다고 한다. https://stackoverflow.com/questions/16981921/relative-imports-in-python-3 Relative imports in Python 3 I want to import a function from another file in the same directory. Usually, one of the following works: from .mymodule import myfunction f.. 2023. 12. 14.
[FastAPI] SQLModel 배우기 https://sqlmodel.tiangolo.com/tutorial/fastapi/simple-hero-api/ Simple Hero API with FastAPI - SQLModel SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness. sqlmodel.tiangolo.com 1. SQL Model이란 fastapi에서 가장 큰 단점은, 데이터베이스의 스키마와, API의 스키마를 각각 SQLAlchemy, Pydantic으로 따로 작성해주어야 한다는 점이다. 이로인해 코드 유지보수에 어려움이 있었다. SQLModel이란, SQLAlchemy와 Pydantic을 서로 합친 것이다. 두 패키지 위에.. 2023. 12. 13.
TimescaleDB에 배우기 1. TimescaleDB란? 시간에 따라 데이터를 저장하고 싶을 때 사용하는 데이터베이스이다. 보통 이런걸 시계열 데이터베이스 라고 한다. TimescaleDB는 Postgresql의 extension이다. 대충 확장팩이라고 생각하면 될듯 주식그래프 같이 시간에 따른 데이터를 저장해야 할 때 이 데이터베이스를 사용해야 한다. 2. 설치 공식문서를 들어가면 자기네들 클라우드를 사용하라고 가이드를 엄청 하는데, 실제 개발 테스트에서는 커맨드로 하고 싶은게 보통이다. 하기 링크를 참고하여 커맨드로 설치해주자 Timescale Documentation | Install self-hosted TimescaleDB Install TimescaleDB on your own hardware docs.timescale.. 2023. 12. 12.
[FastAPI] 새롭게 추가된 Annotated Annotated란 파이썬에서 타입에 대한 메타데이터를 추가해주는 기능이다. 사용방법은 다음과 같다 Annotated(타입명, 메타데이터) 대충 코드로 바로 들어가보자 from fastapi import FastAPI, Query app = FastAPI() @app.get("/items/") async def read_items(q: str | None = Query(default=None, max_length=50)): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: results.update({"q": q}) return results 과거 우리가 쿼리나 패스파라미터에 대해 커스텀하게 다룰 때 Path 클래스나 Query클래스.. 2023. 12. 11.
[Android] 백그라운드 서비스에서 카메라 사용시 주의사항 1. 포어그라운드 서비스를 이용해야함 안드로이드에서는 백그라운드에서 카메라를 사용할 때 서비스중 포어그라운드만 카메라 사용을 허용한다. 바인드 서비스로 시작했다 하더라도 startForeground를 호출하면 포어그라운드로 변경할 수 있다. 물론 노티피케이션을 만들어서 표출해야된다. 2. 매니페스트에서 서비스 설정 매니페스트에서 서비스를 설정할 때 아래처럼 카메라 서비스라는점을 반드시 표기해야 한다 ... 안그러면 백그라운드 진입하면 onError에서 4가 뜨면서 Camera "1" disabled by policy 같은 fatal이 발생하게 된다. 2023. 12. 1.
초간단 카메라2 개념잡기 1. 카메라 열기 카메라를 사용하려면 카메라부터 열어야 한다. 그러면 카메라 매니저를 얻어와야한다 아래처럼 카메라 매니저와, 내가 열고싶은 카메라 id를 가져오자. 보통 0번은 후면 메인카메라고, 1번은 전면카메라, 나머지는 딸려있는 카메라들이다 val cameraManager: CameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManager val cameraId: String = cameraManager.cameraIdList[0]// 카메라 ID 선택 val cameraThread = HandlerThread("CameraThread") cameraThread.start() val cameraHandler = Handler(came.. 2023. 11. 16.
Flutter에서 네이티브 뷰 호출하기 https://docs.flutter.dev/platform-integration/android/platform-views Hosting native Android views in your Flutter app with Platform Views Learn how to host native Android views in your Flutter app with Platform Views. docs.flutter.dev 1. 공식문서를 보기 전에 알아야 할 사실 위 링크의 공식문서는 네이티브 뷰를 호스팅하는 내용이다. 허나 한 가지 알아야할 사실이 있다. 저 링크의 내용은 네이티브 액티비티나 뷰 컨트롤러를 호출하는 것이 아닌, 플러터의 액티비티 or 뷰컨트롤러에 네이티브 뷰를 삽입하는 것이다. 한마디로 예를.. 2023. 11. 1.
반응형