Framework
-
최근 모바일앱을 개발하며 Text Editor 기능을 추가하게 되었습니다. 앱에서의 에디터 기능 추가는 처음이었는데, 역시나 라이브러리가 잘 되어 있어 어렵지 않게 만들 수 있었습니다.오늘은 Text Editor로 사용한 flutter_quill 사용법에 대해 알아보겠습니다. ※ 테스트 환경Flutter 3.22.3Dart 3.4.41. 패키지 설치현재 개발 중인 서비스에서는 모바일앱에서 에디터를 통해 글을 작성하게 되면 API를 통해 DB에 저장된 후, 웹 브라우저를 통해 보여지게 됩니다.이러한 구조를 위해 아래 3개의 패키지를 설치합니다.flutter_quill: ^9.1.1vsc_quill_delta_to_html: ^1.0.5flutter_quill_delta_from_html: ^1.3.12fl..
[Flutter]Text Editor 적용하기 2025. 1. 5. -
최근 앱 개발을 하면서 항상 추가해왔던 구글 애드몹(google_mobile_ads)을 추가하던 중 아래와 같은 오류가 발생했습니다..Error (Xcode): Undefined symbols:Error (Xcode): Linker command failed with exit code 1 (use -v to see invocation) 다행히 Github에서도 동일한 오류로 질문이 올라온 것을 확인할 수 있었습니다.Google Mobile Ads가 5.x 버전대로 업데이트되면서, Xcode 15.3 이상으로의 업데이트가 필요한 것으로 확인되었습니다.현재 Xcode 버전은 15.2 버전이었고, 업데이트를 진행했습니다. 이후에 디바이스 에러가 발생했지만 podfile, package 업데이트를 통해 오류가 ..
[Error]Linker command failed with exit code 1 (use -v to see invocation) 2025. 1. 2. -
최근 코드드림 프로젝트를 다시 시작하면서 API 명세 작성을 위해 Springdoc을 이용했습니다.이전에 Springfox Swagger를 이용해본 경험이 있어 이번에는 Springdoc을 선택했고, 어떻게 사용하는지 포스팅을 통해 알아보겠습니다. ※ 테스트 환경Spring Boot 2.7.5Springdoc 1.6.10GradleSpringdocSpringdoc은 Spring Boot 프로젝트에 특화된 OpenAPI 3.0 기반 라이브러리입니다. 주요 특징은 다음과 같습니다.Spring Boot와의 강력한 통합 지원Spring MVC 또는 Spring WebFlux 컨트롤러와 자동으로 연동하여 OpenAPI 문서를 생Swagger UI와 OpenAPI 스펙을 기본적으로 포함하여 설정이 간단.Sprin..
[Spring Boot]Springdoc 적용하기 2024. 12. 23. -
Windows 환경에서 Flutter 최초 설치시 발생하는 에러 모음입니다. 1. cmdline-tools component is missingAndroid SDK의 cmdline-tools 구성 요소를 감지하지 못했을 때 발생하는 에러입니다.1-1. Android Studio 실행Customize - All settings 클릭 1-2. Language & frameworks - Andorid SDK Android SDK Command-line Tools 선택 후 Apply 2. Android license status unknownFlutter가 Android SDK와 관련된 라이센스 동의를 감지하지 못할 때 발생합니다.아래 명령어를 통해 에러를 해결할 수 있습니다.flutter doctor --a..
[Error]Flutter 설치 에러 모음 2024. 12. 18. -
오늘은 Naver Map을 활용해 개발 중인 애플리케이션에 지도를 적용해 보았습니다.작업 과정에서는 pub.dev의 flutter_naver_map 라이브러리를 참고했으며, 문서가 잘 정리되어 있어 해당 문서를 참고하시면 도움이 될 것입니다. ※ 테스트 환경Flutter 3.22.3Dart 3.5.4flutter_naver_map 1.3.01. 어플리케이션 등록1-1. Naver Map 사용 등록NCP Console에 접속하여 Application을 등록합니다. 1-2. 네이버 지도 서비스 등록Web Dynamic Map, Mobile Dynamic Map을 선택하고, Android, iOS 패키지명을 입력합니다. 1-3. Client ID 확인 2. Naver Map 위젯 만들기2-1. 지도 초기화...
[Flutter]Naver Map 사용하기 2024. 12. 9. -
최근 팀프로젝트로 회원가입을 통해 몇 개의 이미지들을 저장 받고, 조회가 가능한 기능을 구현하고 있습니다.농실농실과 같이 최소한의 비용으로 서버를 구동시킬 계획으로 Cafe24 호스팅을 염두해두고 있는데요. 아무래도 파일 저장소를 따로 두기에는 비용 가늠을 할 수 없어 이미지 파일을 Base64로 변환해 DB로 저장하기로 했습니다. Cafe24의 호스팅 서비스는 서버 용량내 DB 용량이 무제한이기 때문에 주기적으로 데이터를 정리하며 DB를 활용할 예정입니다. 본론으로 돌아와 이미지를 Base64로 변환하다보니 트래픽 용량을 생각해야 했습니다. 최대 등록 가능한 이미지는 20개로 기획했고, 테스트를 통해 확인했을 때 총 20개의 이미지가 담긴 응답 크기는 455KB( 227ms)로 최적화가 필요한 수준이..
[Spring Boot]압축 전송하기 2024. 12. 6. -
오랜만에 외부 API 연동을 하게 되어 기존에 사용중인 HttpClient 방식이 아닌 WebClient를 사용해보기로 했습니다. 오늘은 HttpClient, WebClient 각각의 사용 예제를 알아보겠습니다. ※ 테스트 환경Spring Boot 2.7JDK 11WebClient는 Spring 5부터 등장한 HTTP 클라이언트 라이브러리입니다.WebClient는 다음과 같은 특징이 있습니다.Spring Boot 지원: WebClient는 Spring WebFlux의 일부로, Spring Boot와 완벽히 통합됩니다.비동기 처리: WebClient는 기본적으로 비동기(reactive)이며, 동기 처리도 지원합니다.간결한 코드: 요청/응답 처리 코드가 간결하며, JSON 직렬화/역직렬화가 기본 지원됩니다...
[Spring Boot]HttpClient와 WebClient 사용해보기 2024. 11. 27. -
최근 약 3만건의 데이터를 저장하는 일이 있었습니다. 이번 포스팅에서는 MyBatis로 대량 데이터 저장할 때 효과적인 방법에 대해 알아보겠습니다. 테스트 환경Spring Boot 2.7JDK11MyBatisOracle대량의 데이터를 저장해야할 때 단건씩 저장하면 매우 많은 시간을 소요하게 됩니다. 때문에 보통 Bulk Insert를 통해 저장합니다.Oracle에서 Bulk Insert시에 사용할 수 있는 쿼리는 2가지로 볼 수 있습니다. INSERT ALLINSERT ALL은 여러 테이블에 동시에 데이터를 입력할 때 사용할 수 있는 구문입니다.INSERT ALL INTO [TABLE] (col1, col2) VALUES ('value1','value2') INTO [TABLE] (col1,..
[Spring Boot]대량 데이터 저장하기 2024. 10. 17.