전체 글

개발자 황성진의 블로그 입니다.
· Flutter
Xcode 16 버전 업데이트 이후 제가 겪었던 오류들과 오류들을 어떻게 해결할 수 있는지에 대해 글을 써보려고 합니다 1. clang: error: unsupported option '-G' for target 'arm64-apple-ios13-simulator'이 오류는 Flutter 프로젝트에서 boringssl-grpc 관련 라이브러리에서 발생하는 오류 중 하나입니다.해결을 위해서는 Podfile 파일을 수정해야 합니다. Podfile 수정파일 위치: /rootProject/ios/Podfilepost_install 블록에 아래 코드를 추가합니다post_install do |installer| installer.generated_projects.each do |project| projec..
· Me
글또 10기를 지원하게 되면서 황당한 사전 작성 내용을 받았다.처음 글또에 지원했을때는 큰 생각이 없었다.책임감을 갖고 글쓰면 되겠지 라는 생각이였다.하지만 구글 폼을 작성하고 삶의 지도라는 나에 대해 작성해야 된다는 내용을 보고 깊은 생각을하면서 작성하게 되었다. [대학교 까지의 나]시골에서 태어나 큰 특기도 없었고, 그저 농구하는걸 좋아하고, 컴퓨터 만지는걸 좋아하는 아이였다.누구나 주변에 그런 친구가 있을거라고 생각한다. 그냥 평범한 아이, 중간은 가는 아이가 나를 가장 크게 설명해주는것 같다.학창시절에도 크게 큰 특징없고 크게 튀지도 않았고, 그냥 친구들과 놀면서 다니는걸 즐겼던 것 같다.컴퓨터 공학과도 사실 큰 생각 없었다. 나는 컴퓨터 만지는걸 좋아하니까 컴퓨터공학과 가야지 라는 생각으로 지원..
· Flutter
Flutter 앱에서 iOS와 AOS에서 스크린샷 방지하기혹시 중요한 정보를 다루는 앱을 개발하면서 스크린샷 방지 기능이 필요했던 적이 있으신가요? 뉴스나 은행 앱처럼 민감한 정보를 다루는 앱들은 사용자 개개인의 데이터 보호를 위해 스크린샷을 방지하는 기능이 종종 필요합니다.오늘은 Flutter 앱에서 iOS와 AOS(안드로이드 운영 시스템)에서 스크린샷을 방지하는 방법에 대해 알아보겠습니다. 코드 예제와 함께 설명드리니 천천히 따라오세요!Flutter에서 iOS 스크린샷 방지 iOS에서 스크린샷 방지하기먼저, iOS에서 스크린샷을 방지하기 위해 우리는 AppDelegate.swift 파일을 수정해야 합니다.import UIKitimport Flutter@UIApplicationMain@objc clas..
· Flutter
Flutter를 사용해서 Firebase를 연동하기 Intro이번에는 개인 프로젝트에서 가장많이 사용하는 Firebase의 연동방법에 대해서 알아보려고 합니다.Firebase 관련 아예 처음 한다고 생각하고 최대한 자세하게 설명해보겠습니다~~Flutter 가 기존에 설치되어있다는 조건에서VSCode 기반으로 작성되었습니다 Firebase 프로젝트 만들기일단 Firebase를 연동하기 위해서는 프로젝트를 만들어야 겠죠?https://firebase.google.com/?hl=ko Firebase | Google's Mobile and Web App Development Platform개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase..
· CS
Intro면접때 보면 자격요건 혹은 우대사항에서 제일많이 본 말이 있다.객체지향과 SOLID 라는 단어이다.이번에는 객체지향의 5가지 설계원칙이라고 불리는 SOLID에 대해서 알아보자 What is SOLID? SRP(Single Responsibility Principle) : 단일 책임 원칙OCP(Open Closed Principle) : 개방 폐쇄 원칙LSP(Liskov Subsitution Principle) : 리스코프 치환 원칙ISP(Interface Segregation Principle) : 인터페이스 분리 원칙DIP(Dependency Inversion Principle) : 의존 역전 원칙 SOLID 설계 원칙은 객체지향의 4가지 특징(추상화, 상속, 다형성, 캡슐화)와 더불어, 객체..
· iOS
Intro이번에는 의존성 주입(Denpendency Injection)에 대해서 공부하고 정리해봤습니다.주제의 선정 이유는 최근 본 면접에서 의존성 주입에 대한 질문을 받았는데 명확하게 답변을 하지 못해 자세히 알아보려고 합니다. What is Dependency ( 의존성 ) ?객체 지향 프로그래밍에서 Dependency 즉 의존성은 서로 다른 객체 사이에 의존 관계가 있다는 것을 말해요.즉 의존하는 객체가 수정되면 다른 객체에도 영향을 받는 것을 말해요. struct Drink { func coffee() { print("아메리카노") } func water() { print("물") }}struct Person { var todayDrink: Dr..
· iOS
Intro이번 주제의 선택 이유는 면접때 질문을 받았다.스위프트로 정렬알고리즘을 구현했을때의 시간복잡도와 공간복잡도가 어떻게 되는지?알고리즘 준비를 안하고있던 나는 답이 생각나지 않았다.우선 정렬알고리즘에 대해 알아보기 전에 빅오 표기법(big-O notation)에 대해 알아보자! 빅오 표기법 (big-O notation) 이란?알고리즘 성능을 수학적으로 표기해주는 표기법이다.알고리즘의 실행시간보다는 데이터나 사용자 증가률에 따른 알고리즘 성능을 예측하는게 목표이므로 중요하지 않은 부분인 상수와 같은 숫자는 모두 제거해서 계산한다.즉 빅오 표기법은 불필요한 연산을 제거하여 알고리즘 분석을 쉽게 할 목적으로 사용된다. 여기서 측정되는 복잡성에는 시간 복잡도와 공간 복잡도가 있다.시간 복잡도시간 복잡도의 ..
· iOS
IntroApp내에서 특정 값들을 앱이 꺼진상태에서도 저장하려면 어떻게 해야될까요?Userdefaults와 @AppStorage를 사용해서 저장하면 됩니다.Userdefaults는 기존 UIkit에서 많이 사용했던 방식이고 AppStorage는 SwiftUI에서 iOS 14부터 새로생긴 내용 입니다.이번에는 두개의 개념에 대해 설명하고 두개의 차이에 대해 알아보겠습니다.What is UserDefaultsApple에서는 "App을 실행하는 동안 지속적으로 key-value로 저장하는 사용자의 기본 Database에 대한 Interface"라고 해요. 쉽게 말해 별도의 DB 없이 App에 내가 원하는 값을 어떤 Key와 함께 저장하고, 언제든 그 Key를 통해 값을 불러낼 수 있는 것이죠...
· iOS
Naver API 발급 네이버 클라우드 사이트에 접속하여 회원가입, 로그인을 합니다. 로그인 후 콘솔에 들어갑니다. 네이버 지도는 Products & Services에서 AI-Application Service 하위의 AI·NAVER API에 포함되어 있습니다. 해당 API를 선택합니다. 그 다음 API 등록 버튼을 누르고 현 예제에서는 Mobile Map 만 사용하므로 체크 하고 Bundel ID를 입력해 줍니다. 이렇게 진행하면 Client ID 값을 받을 수 있습니다. 키값 숨기기 보통 로컬환경에서 작업하면 크게 문제가 없지만 깃허브와 같은 환경에 올려 작업하면 키값이 노출되는 문제가 생깁니다. 이것을 방지해주기 위해서는 다음과 같이 config파일을 만들어 줍니다. // Config.xcconfi..
· iOS
Intro 들어가기 앞서 저는 NotificationCenter를 우체국이라고 가정하고 들어갈게요. 우리가 편지를 우체통에 넣으면 어떻게 될까요? 그 과정에 NotificationCenter 와 매우 흡사합니다. What is NotificationCenter? addObserver : 우체부는 우체국에게 '제가 00동으로 가는 우체부입니다'라고 등록을 합니다. Something Happen : 서울의 황성진은 고향의 친구에게 보낼 편지를 썼습니다. post : 황성진은 우체국에 편지를 부쳤습니다. notify : 우체국은 00동에 가는 우체부에게 편지가 왔다고 전달해줍니다. selector : 우체부가 고향의 친구에게 갈 편지를 배송해줍니다. 기본적인 NotificationCenter 이 작동하는 방식..
플러텅
망각의 코딩러