개발 이슈 14

[Flutter] Xcode 빌드 오류

Flutter로 개발하다가 iOS로 실행해보기 위해 Xcode에서 run 하면 빌드 중에 종종 이런 에러를 마주한다. The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. pod install 이 필요한데, 우린 Flutter를 사용하니까 flutter 명령어를 통해서 실행해주면 된다. 프로젝트 폴더 내에서 flutter build ios 를 입력하면 다음 화면이 나오는데, 이 이후에 Xcode에서 다시 run 하면 문제없이 작동된다.

개발 이슈 2021.03.04

[Flutter] ListView 데이터 추가시 중복값 발생

문제와 현상 Firebase Firestore(NoSQL)에서 데이터를 가져와서 최신순 정렬하여 ListView로 띄움 데이터 추가 새로 추가한 값은 안 들어가고 마지막 값이 중복으로 들어감 마치 이렇게,,, 원인 ListView에서 사용하는 list의 값은 제대로 변경되었지만, 기존 위치의 리스트들은 업데이트가 되지 않았던 것이다. 7번째의 Guava가 새로운 데이터 추가로 8번째로 밀려 8번째에 Guava가 나왔지만, 나머지 1~7번째의 항목은 업데이트되지 않은 것 해결 ListView에 포함되는 item widget에 key: UniqueKey() 항목을 추가해준다. return Container( key: UniqueKey(), child: Text(document['name']) ); 각각의 항..

개발 이슈 2021.02.03

[Flutter] RepaintBoundary 캡쳐 이미지 저화질 현상 (화질구지)

RepaintBoundary를 이용해서 특정 구간의 위젯들을 캡쳐해서 저장하는데, 사진의 화질이 엄청 떨어지는 현상이 나타났다 ... 도저히 눈 뜨고 못봐줄 그런 정도...^^ 해결 방법은 생각보다 간단하다! ui.Image image = await boundary.toImage(pixelRatio: 2.0); pixelRatio 부분을 추가해주면 된다 뒤의 소수점 이커질 수록 해상도가 좋아진다 너무 크게 잡으면 이미지의 크기가 너무 커지니까 적당하게 잡는 걸 추천! (개인적으로는 5.0이 적당한 것 같았다) 참고: https://github.com/flutter/flutter/issues/21269

개발 이슈 2021.01.22

[Notion] 이미지 왼쪽 정렬 / 오른쪽 정렬

노션에서 기본적으로 이미지가 가운데 정렬인데, 이를 왼쪽 정렬로 바꾸고 싶었지만 방법을 찾을 수 없어 꼼수를 써봤다. 빈 블록 하나를 이미지 옆으로 끌어다 놓으면 이렇게 이미지가 왼쪽 정렬이 된다. 같은 방식으로 오른쪽 정렬 역시 가능하다. QnA Q. 이미지가 왼쪽 정렬은 됐는데, 너비가 너무 작아요 ㅠㅠ >> 이미지쪽 문단의 너비를 더 넓혀서 이미지의 최대 너비 값을 더 늘릴 수 있습니다.

개발 이슈 2020.04.10

AWS EC2와 도메인 연결 (가비아)

목표) AWS EC2에서 실행중인 웹 서버를 구매한 도메인과 연결하기 (가비아에서 구매한 도메인) 1. 우선 AWS의 Route53 서비스로 이동합니다. (https://console.aws.amazon.com/route53) 2. 두 버튼 중 아무거나 눌러 "호스팅 영역" 페이지로 이동합니다. 2. 새로운 호스팅 영역을 생성해줍니다. 3. 화면 우측에 생긴 입력란에서 도메인 이름을 입력하여 생성을 완료해줍니다. 4. 생성한 호스팅 영역으로 들어와, 레코드 세트 생성을 눌러줍니다. 5. 화면 우측에 생긴 입력란에서, 연결할 EC2 IP 주소를 입력하여 레코드를 생성해줍니다.(서브 도메인 www을 원하는 경우, "이름"란에 www를 입력하여 생성하면 됩니다.) 6. www와 기본 도메인에 대한 레코드 생성..

개발 이슈 2020.03.19

[Node.js] NGINX 프록시 설정과 기본 페이지 제거

AWS EC2에서 Node.js로 Express 앱을 돌리고 NGINX로 proxy 설정으로 구매한 도메인에서 Express 앱으로 연결하는 게 목표였다 하지만, proxy 설정 후에도 계속되는 기본 페이지인 'Welcome to nginx!' 때문에 삽질했다 🤯 설명은 NGINX 설치, 프록시 설정, 기본 페이지 제거 순으로!! (Node.js는 이미 실행하고 있다는 가정) ( 간단한 NGINX 소개 NGINX는 Event-Driven 방식으로 클라이언트의 요청을 처리해주는 비동기 기반의 웹 서버이다. 동시 접속 처리에 특화된 웹 서버 프로그램으로, 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용함으로 효율적이다. 정적파일을 다이렉트로 제공해주기 때문에 백엔드 서버에 부담을 주지 않고, ..

개발 이슈 2020.03.19

[Android] EditText 검색창으로 사용하기 (+ Enter Key Event 제어)

안드로이드의 EditText를 검색창처럼 1. 입력이 한줄만 가능하도록 2. 엔터를 누르면 키보드가 내려가도록 3. 키보드 엔터쪽에 "Enter"라는 글자가 아닌 돋보기 아이콘이 나오게 하도록 하기 위한 방법이다. android:inputType="text"// 없으면 maxLines 가 작용하지 않음 android:maxLines="1"// multiple line 불가능하게 제어 android:imeOptions="actionSearch"// 엔터키쪽에 돋보기가 나타나고 엔터키를 누르면 키보드 내려감 Enter key event 제어 [EditText xml id].setOnKeyListener { _, keyCode, event -> if ((event.action== KeyEvent.ACTION_..

개발 이슈 2019.12.17

[Android] 오픈 API 키 문제 (Retrofit2)

오픈 API를 활용하여 안드로이드에서 요청을 보낼 때 발생했던 문제다.Retrofit2 라이브러리를 사용하여 요청을 보냈는데 아래와 같이 응답이 제대로 오지 않았다. 10INVALID REQUEST PARAMETER ERROR. 문제 )interface NetworkService { @GET("/service/SecndSrtpdFrcstInfoService2/ForecastSpaceData") fun getWeather(@Query("serviceKey")key:String, @Query("base_date")date:String, @Query("base_time")time:String, @Query("nx")nx:Int, @Query("ny")ny:Int, @Query("pageNo")page:Int,..

개발 이슈 2019.10.24

[MySQL] varchar 에서 number로 / 특정 문자 제거

varchar 타입의 column에 가격 정보를 '3,000,000' 와 같이 저장했는데 숫자로 크기를 비교하기 위해 가공을 해야 했다. MySQL의 내장 함수 두 개를 사용하여 이를 해결했다. SELECT MIN( cast( replace(goods_price, ',', '') as unsigned)) as price_min, MAX( cast( replace(goods_price, ',', '') as unsigned)) as price_max FROM GOODS 우선 replace()로 goods_price의 , 를 빈 문자열로 바꿨다. 그리고 cast( X ) as unsigned 로 문자열 숫자 데이터를 숫자로 바꿔주었다.

개발 이슈 2019.07.11

[MySQL] 순위 매기기. MySQL 변수 사용.

오라클 SQL은 ROW_NUMBER(), RANK(), DENSE_RANK() 등의 함수를 이용해 순위를 쉽게 메길 수 있지만 MySQL에서는 지원하지 않는 함수이기 때문에 다른 방법으로 순위를 메겨야 했다. 그래서 발견한 방법이 MySQL 에서 변수를 사용해 순위를 메기는 것이다~~!!!!!!👻 SELECT @x := @x+1 as food_rank, food_idx, food_name FROM FOOD, (SELECT @rownum := 0) as R ORDER BY food_score DESC 이렇게 하면 food_score를 기준으로 food_rank를 1부터 순위를 메길 수 있다.

개발 이슈 2019.07.11