전체 글 280

[TIL] Github Action 실습

Github Actions를 이용해서 AWS EC2에 Docker로 배포를 하는 방법 아래 유튜브를 참고했습니다 https://youtu.be/E3i9qt0SS-I 전체적인 Flow 1. 로컬 PC 에서 개발을 한 후 Github 에 푸시 2. 특정 브랜치에 푸시가 되면 (=event trigger) 깃헙 액션이 동작되도록 3. 깃헙 액션이 Github Container Registry 에 소스를 받은 후 도커 이미지로 빌드 4. 빌드된 이미지를 EC2 에 등록된 Runner 가 복사 5. 기존 이미지를 삭제하고 새로운 이미지로 실행 1. 도커 파일 생성 도커 파일 생성 -> touch Dockerfile Dockerfile 에 다음과 같이 작성해줍니다. FROM node:14.19.0 : nodejs ..

👩🏻‍💻 TIL 2023.06.04

[iOS] 전역변수, 클래스간 데이터 전달 - 3

1. 전역변수 설정 및 참조 AppDelegate 에 다음과 같은 globalData 와 같은 전역변수가 있다고 하자. 이를 다른 화면에서 출력해보겠다. @main class AppDelegate: UIResponder, UIApplicationDelegate { // 전역변수 선언하는 부분 - 변수, 배열, 딕셔너리, 구조체, 클래스 var globalData: String = "" 뷰 컨트롤러 쪽이다. AppDelegate 를 참조하는 방법은 다음과 같이 꼭 써줘야 한다. (이게 룰이다) import UIKit class NvMainViewController: UIViewController { // 전역변수를 참조하는 방법 let appDelegate = UIApplication.shared.dele..

🦜 Swift 2023.05.14

[iOS] 뷰 컨트롤러의 수명 주기, 팝업창 띄우기 - 2

뷰 컨트롤러의 수명 주기 // // viewDidLoad : 뷰가 생성될 때 한번만 호출됨. (초기화 용도) // viewWillAppear : 뷰가 화면에 보일 때마다 호출됨. (화면 갱신 용도) // viewDidAppear : 뷰가 화면에 보이고 나서 매번 호출됨. // viewWillDisappear : 뷰가 화면에 사라지기 전마다 호출됨. (데이터 전달) // viewDidDisappear : 뷰가 화면에 사라지고 나서 매번 호출됨. // viewWillLayoutSubviews : 컨트롤(서브뷰)들의 레이아웃을 잡기 전에 호출됨. // viewDidLayoutSubViews : 컨트롤들의 레이아웃을 잡고 나서 호출됨 위와 같은 수명 주기로 ..

🦜 Swift 2023.05.13

미디에이션 어댑터란?

회사가 추구하는 방향성이 광고로 기울어지면서 점점 광고를 붙이는 일이 많아졌다. 처음에 나는 Applovin, Admob 등이 단순히 "광고" 라고 생각했다. 그래서 다음과 같은 의존성을 보고 모두 다 Applovin 이군!!! Applovin 을 설치할 때 Vungle 도 같이 필요한가보군!! ← 이와 같은 생각을 하였다. 하지만 이는 틀렸다. 용어들을 하나하나 정리해가며 이들의 상관성은 무엇인지 한 번 알아보자! 미디에이션이란? 미디에이션은 앱에 광고를 게재하기 위해 사용하는 광고 소스를 한곳에서 관리할 수 있는 기능입니다. 미디에이션을 사용하면 들어오는 광고 요청을 여러 광고 소스에 보내 요청을 처리하는 데 가장 적합한 광고 소스를 찾을 수 있습니다. 즉 미디에이션은 여러 광고 네트워크를 한 데 모..

👩🏻‍💻 TIL 2023.05.13

Failed to prepare the device for development. This operation can fail if the version of the OS on the device is incompatible with the installed version of Xcode. You may also need to restart your Mac and device in order to correctly detect compatibility.

갑자기 iOS 폰을 빌드하다가 이런 에러를 마주쳤다. 이 오류는 iOS 디바이스를 개발할 준비를 하지 못했다는 것을 나타낸다. 이 문제는 Xcode의 설치된 버전과 iOS 디바이스의 운영체제 버전이 호환되지 않을 때 발생할 수 있다. 이 경우, Xcode를 업데이트하여 호환성을 보장하거나, iOS 디바이스의 운영체제 버전을 업데이트하여 호환성을 보장해야 한다. 이게 아니라면 Mac 및 디바이스를 다시 시작하여 호환성을 올바르게 감지할 수도 있다. 불현듯 최근에 iOS 를 업데이트했던 것이 생각났고 Xcode 를 업데이트할 수 밖에 없는건가.. 하는 좌절감이 들었다. Xcode 의 iOS 디바이스 호환성을 확인할 수 있는 링크 > https://developer.apple.com/kr/support/xco..

👩🏻‍💻 TIL 2023.05.08

[TIL] UIView, UIViewController, Delegate

본 블로그 글은 chatGPT 가 준 코드와 iOS 개발 기초 개념들을 chatGPT 를 통해 공부한 글입니다. ChatGPT 90%, 기타 블로그 10% 참고하여 틀린 내용이 있을 수도 있습니다. 틀린 내용 있을 시, 지적해주시면 감사하겠습니다. UIView 와 UIViewController 에 대한 정의를 살펴봅시다. UIView 와 UIViewController UIView 이는 화면을 구성하는 요소들의 기본 클래스이며, 위치와 크기를 갖는 사각형으로, 배경색을 가지고 있고 문자나 이미지 등의 컨텐츠를 가지는 것이 가능합니다. • Label, Image, Button, 기타 인터페이스 요소를 표시하려면, UIKit Framework가 제공하는 뷰 하위클래스를 사용하면 됩니다. UIViewContro..

🦜 Swift 2023.05.05

[iOS] weak var

React 와 Flutter 를 경험해 본 나는 weak var 부터 보자마자 굉장한 낯설음을 느꼈다. 이에 대해 weak var 부터 모르는 것 하나하나 chatGPT 에 물어보았다. 온전히 chatGPT 를 통해 공부해서 정리한 내용을 기록해본다. weak var 선언하는 이유 iOS 개발에서 `weak var`로 선언하는 이유는 메모리 관리와 관련이 있습니다. Swift에서 메모리 관리는 ARC (Automatic Reference Counting)에 의해 처리됩니다. ARC는 인스턴스가 얼마나 많은 참조자를 가지고 있는지 추적하고, 해당 인스턴스가 더 이상 참조되지 않을 때 인스턴스를 자동으로 해제하여 메모리를 해제합니다. 일반적으로 iOS 애플리케이션에서는 강한 참조(`strong referen..

🦜 Swift 2023.05.04

[Dart] mixin

mixin 은 여러 클래스 계층 구조에서 클래스 코드를 재사용하는 방법입니다. 무슨 말인지 이해 안되실 수 있습니다. (괜찮습니다! 저도 그랬으니까요) 천천히 mixin 이 왜 등장하였는지, 다른 클래스와는 어떻게 다른지 저와 같이 한 번 정리해보며 알아보겠습니다!! 1. mixin 등장 배경 class Player { void play() { print("경기하는 중..."); } } class BasketBallPlayer extends Player{ @override void play() { super.play(); print("농구경기 하는 중..."); } } 위와 같이 Player 부모 클래스를 상속받는 BasketBallPlayer 자식 클래스가 있습니다. 여기서 BasketBallPlaye..

🐦 Flutter 2023.04.09