본문 바로가기

전체 글

(207)
[Swift] Anti Pattern이 뭐고? static을 공부하다가 .. singleton을 다시 공부했고 .. 그러다가 나온 anti pattern이라는 것 .. 이것이 무엇인가!??! 덕분에 이 상태였지만 .. 어쩌겠어 .. 공부해야지 .. Anti Pattern 안티패턴이란? 소프트웨어 공학 분야 용어로, 🔵많이 사용되는 패턴이지만 🔴비생산적인 패턴을 의미한다. 1995년 앤드루 케이니그가 디자인 패턴을 참고해서 처음 사용한 말 .. 이라고 한다 .. (누군데. 저도 몰라요.) 그리고 3년 후 '안티 패턴'이라는 책 때문에 '안티 패턴'이라는 말이 많이 알려지게 되었다 .. 고 한다 .. 출처 : 위키 백과 싱글톤 패턴은 안티 패턴? 먼저 간단하게 싱글톤 패턴을 정리하자면, 싱글톤 패턴은 객체의 인스턴스가 한번 만들어진 이후로 해당 객체에 ..
[iOS] Push Notification의 원리/동작 구조 Push Notification 푸시 알림이란? 어떤 전송 요청이 중앙 서버에서 시작되는 정보 전달 방식이다. 예를 들어서, 뉴스/메일링/광고 서비스 등을 생각할 수 있는데 뉴스를 구독하거나 메인 및 광고 수신에 동의하는 절차를 통해서 자동으로 서버에서 클라이언트로 주기적으로 정보를 제공한다. (*반대되는 개념으로 pull이 있는데, 이것은 클라이언트가 먼저 데이터를 얻기 위해 서버에 요청하여 데이터를 받는 것이다. 즉, 정보 취득을 통제하는 주체가 서버인지, 클라이언트인지에 따라서 푸시, 풀이 나뉘게 된다.) Push를 보내는 원리 앱에서 일반적으로 푸시 알림을 보내는 원리는 아래와 같다. (앱의 자체 서버+FCM으로 푸시 알림을 보낸다고 가정하자.) 먼저 사용자들은 푸시 알림을 수신할 것인지 여부를 ..
[Swift] static을 언제 쓰는데? Swift는 method와 property에 static 접두사를 사용해서 인스턴스가 아닌 타입(선언된 타입)과 연결할 수 있도록 한다. Static Property static property의 가장 일반적인 사용 사례는 환경 설정(Configuration)이다. static 키워드를 사용해서 설정(색상, 폰트)들을 관리하는 이유는 namespace(함수, 변수 등과 같은 내부 식별자에 범위를 제공하는 선언적 영역, 유효 범위를 제공하는 영역)를 제공하기 때문이다. 일반적인 예시는 스타일 가이드로 사용하는 것이다. 만약 특정 색상이나 글꼴을 변경하고 싶을 때 프로젝트를 모두 뜯어봐야 한다면 비효율적이고 정확하지 않을 것이다. (빠지는 부분들이 있기 때문에) 따라서, 코드 전체에 값을 분산시키는 것보다 ..
[Swift] class func VS static func Swift로 개발을 할 때 함수를 많이 사용하는데, 이 함수의 종류는 크게 세가지이다. 함수 앞에 붙는 키워드에 따라서 인스턴스(instance) / 클래스(class) / 스태틱(static) 세 종류로 나뉜다. class Sokyte { func sokyteInstanceFunc() { } class func sokyteClassFunc() { } static func sokyteStaticFunc() { } } 첫번째 형태를 많이 보았을텐데 평소에 많이 사용하는 함수가 바로 instance 함수이다. class func vs static func 공통점 두가지 함수의 공통점은 타입 메소드라는 점이다. 두가지 모두 클래스의 객체가 아닌 클래스 그 자체와 연관이 되어 있다. 그러므로 () 생성자로 인스..
[니카내카] Push Notification을 구현해보자. 푸시알림을 구현할 때 가장 많이 사용하는 provider server는 FCM이다. 그러므로 firebase에서 프로젝트를 만드는 것부터 시작해보자! #Firebase Project 생성 firebase의 console로 이동한다. 그리고 나서 아래와 같이 프로젝트 추가를 선택한다. 1개의 앱에 1개의 프로젝트로 연결되는 것은 아니다. 파이어베이스 프로젝트 하나에 여러 앱이 연결되어서 관리할 수도 있다. 그래서 기존에 만들어두었던 SeSAC 프로젝트에 할까? 하다가 .. 혹시 몰라서 니카내카 앱 전용 프로젝트를 만들기로 했다. 위와 같이 프로젝트 이름을 작성하면 된다. 그대로 두고 계속을 누르면 계정을 선택하라고 나오는데, 무료 버전을 사용하기 때문에 Default 계정을 선택한 다음 프로젝트 만들기를 ..
[iOS] Remote Notification (.p8 VS .p12) Notification의 종류 iOS 앱에서 관리하는 알림/Notification의 종류는 크게 두가지이다. local (로컬 알림) : 앱에서 직접 만드는 notification remote (리모트/원격 알림) : 서버 등 원격(remote)에서 만들어지는 notification APNs Apple Push Notification service의 약자로, ✔️ 앱에 notification을 보낼 수 있도록 애플이 만든 서비스이다. ✔️ 원격으로 앱에 알림을 보내고 싶다면, 무조건 APNs를 거쳐야 한다. (local 알림은 거치지 않아도 된다.) 🤔 왜 원격의 경우에는 APNs를 거쳐야 하는가? 개발자/서비스가 보내려는 알림을 특정 사용자의 기기로 전달하는 역할을 해주기 때문이다. 동작 구조 동작 구..
[iOS 16+] 개발자모드 (Developer Mode) 아이폰을 16으로 업데이트 하고 나서, 엑스코드에서 작업을 하고 빌드를 하려고 할 때 아래와 같은 상황을 만날 수 있다. ✅ Unavailable Device Xcode 14에서 iOS 16 기기를 연결하고 Scheme Selector에서 Unavailable Device(= 사용할 수 없는 기기)라고 나오는 경우이다. ✅ iPhone does not have Developer Mode enabled. ~ .. 위의 상황을 그냥 무시하고 빌드를 하면 아래 이미지와 같이 경고창이 나타나고 빌드를 할 수 없다. 응 ~ 너 아이폰 개발자 모드 안켜져 있음 ~ 이라는 경고창이 나타난다. 🍋 개발자 모드를 키자. 해결 방법은 간단하다. 개발자 모드가 안켜져 있어서 빌드가 안되는 것이었기 때문에 개발자 모드를 키면..
[Git] push한 commit message 수정 알고리즘을 풀다가 .. 이렇게 [BJ]로 작성해서 커밋을 했는데, 백준의 경우는 .. Backjoon Online Judge이기 때문에 .. BOJ로 커밋을 했어야 했다 .. 그래서 이미 커밋한 커밋 메시지를 수정하기로 했고 .. 다음과 같은 방법으로 수정하면 된다. 1. 터미널에서 rebase를 사용해서 수정 모드로 바꾼다. 이를 위해서는 rebase 명령어를 사용해야 하는데 rebase명령어는 branch의 base를 다시 설정하여 master브랜치와 merge commit생성을 방지하여 깔끔한 커밋을 남길 수 있도록 도와주는 명령어이다. (rebase 명령어도 다양하게 쓰일 수 있기 때문에 여기서는 이정도만 알면 된다.) git rebase HEAD~1 -i rebase에서 -i 옵션을 주면 reb..