발단 Cloud_Firestore 패키지를 설치하고 나서 데이터베이스에 생각한 대로 데이터가 잘 들어가는지 확인하기 위해 디버깅을 했는데 아래와 같이 에러 문구가 나왔다. Log (스크롤 주의) 더보기 LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle, 0x0009): tried: '/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Library/Rub..
개요 동기와 비동기, 프로그래밍을 공부하다보면 항상 등장하는 개념이다. 중요한 개념이고 꼭 알아야한다고 하지만 이게 왜 중요한 개념인지 잘 이해하지 못하고 넘어간 적이 많다.▼ 하지만 동기, 비동기라는 것은 사실 엄청나게 거창한 것은 아니고 우리의 상식 선에서 충분히 생각해 볼 수 있는 개념이다. 컴퓨터 공학과 학생이라면 아마 CS수업 중에서 이미 이와 비슷한 이야기를 듣기도 했을 것이다. 컴퓨터 전반에서 사용되고 있는 개념이면서 이해하고 보면 아주 당연한 이야기이기에 쉽게 이해할 수 있을 것이다. 동기(Synchronous) 동기란? 동기는 영어로 Synchronous이고, 다르게 번역하면 동시에라는 의미이다. 그렇다면 무엇을 동시에 수행하는 것이길래 `동기`라고 부르는 것일까? 그 답은 요청과 결과가..
보일러플레이트 코드를 피하자 보일러 플레이트 Flutter로 코드를 짜다보면 반복적인 코드가 등장하게 된다. 이런 반복적인 코드를 프로그래머들은 보일러플레이트 코드라고 부른다. 보일러플레이트 코드? 보일러 플레이트(Boilerplate)는 신문사업에서 납 대신 강철로 인쇄물을 찍기 시작하면서 나온 그 강철을 말한다. 보일러 플레이트 코드는 최소한의 변경으로 여러 곳에서 재사용 되며, 반복되는 형태를 띄는 코드를 말한다. 역사적으로 이런 반복되는 코드를 피하기 위해 함수란 개념이 나왔는데, 이 함수 조차도 반복될 수 있다는 것이다. 보일러플레이트 코드는 없어져야 한다 최소한의 변경으로 반복되는 코드는 실용적이지도 않고, 코드의 길이는 길어지며, 길어진 코드는 가독성을 해치게 된다. 개발자는 이런 상황을 막..
개요게임 개발을 공부하다가 슬럼프인지 뭔지 공부 속도가 너무나도 늦어지기도 하고 의욕도 안나고 프로젝트도 망하고 해서 다시 앱 개발로 돌아왔다. 위의 실패로 느낀것은 뭐든 정말 빠르게 만들고 봐야 의욕이 나는구나였고, 네이티브보다 더 빠르게 개발이 가능한 크로스 플랫폼 개발환경인 Flutter를 공부하게 되었다. (GDSC들어가서 하게 된 것도 있다.)네이티브 개발환경이 성능상으로는 훨씬 좋은건 사실이지만, 안드로이드와 iOS 모두를 개발하는 입장에서는 정말 곤란 그 자체다.그럼에도 iOS 네이티브 개발이 더 끌리는 것은 사실이지만, UIKit과 SwiftUI의 세대 교체중인 과도기라서 SwiftUI나 UIKit이나 둘 중 하나가 완벽하게 자리를 잡는 때에 돌아가도 늦지 않다고 결론을 내렸다.플러터 외에..