👩🏻‍💻 TIL 52

[안드로이드] compileSdkVersion, targetSdkVersion, buildToolsVersion

안드로이드 OS API 나는 아이폰을 쓰고 있기 때문에 안드로이드 OS API 가 뭔지 정확히 몰랐다. 또한 티라미수, 롤리팝..? 들었을 때 이게 뭔소린지 싶었다. 티라미수, 롤리팝..? 안드로이드 운영 체제 버전을 의미한다. 안드로이드 운영 체제 버전은 주로 디저트 이름으로 알려져 있다. 이는 구글에서 안드로이드 버전 코드 네임을 디저트 이름으로 명명하여 사용하는 관행이다. 디저트 이름은 해당 버전의 알파벳 순서에 따라서 지정되며, 알파벳 순서대로 칠러(Cupcake), 도넛(Donut), 이클레어(Eclair), 퓨오리아(Froyo), 진저브레드(Gingerbread) 등 다양한 디저트 이름이 사용되었다. 다음은 안드로이드 버전 순서와 디저트 네임이다. 버전 디저트 명 출시일자 안드로이드 1.0 -..

👩🏻‍💻 TIL 2023.06.25

[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

미디에이션 어댑터란?

회사가 추구하는 방향성이 광고로 기울어지면서 점점 광고를 붙이는 일이 많아졌다. 처음에 나는 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

[iOS] CocoaPod

코코아팟이란 Swift 및 Objective-C 코코아 프로젝트의 종속성 관리자입니다 28,000 개가 넘는 라이브러리를 가지고 있으며 170만개가 넘는 응용 프로그램(앱)에서 사용되고 있습니다 참고로 코코아팟은 Ruby 로 제작되어 있습니다 기본 Ruby 는 OS X(맥북) 사용할 수 있습니다 sudo gem install cocoapods 위의 명령으로 설치가 끝났습니다 이제 우리는 코코아팟을 자유롭게 사용할 수 있습니다 터미널을 이용하여 우리가 코코아팟 라이브러리를 적용하고 싶은 프로젝트 경로로 들어가줍니다. 프로젝트 경로로 간 상태에서 아래의 명령어를 입력해줍니다 pod init 그러고 나서 프로젝트 폴더에 가보면, Podfile 이란 것이 생성되었습니다 우리는 이 Podfile 을 수정해서 라이..

👩🏻‍💻 TIL 2023.01.12

[iOS] Automatically manage signing

Automatically manage signing iOS 앱을 Simulator 로 run 할 때는 그냥 하면 된다 하지만 실제 핸드폰을 연결해서 run 하는 순간 Singing for 'ToCrop..(예시)' requires a development team. Select a development team in the Sigining & Capabilities editor. => 이 뜻은 실제 핸드폰에 연결하려면 Singing 을 해야하고 그럴려면 team 이 필요하단 뜻이다 Automatically 체크해제하고 다시 run 하면 에러가 나오는데 어떤 에러인지 보면 'ToCrop' requires a provisioning profile. Select a provisioning profile in ..

👩🏻‍💻 TIL 2023.01.12

[Java] 추상 클래스와 인터페이스 차이 (2탄)

Interface 나 abstract Class 는 상속(extends)받거나, 구현(implements) 하는 Class 가 Interface 나 Abstract Class 안에 있는 Abstract Method 를 구현하도록 강제하는 공통점을 가지고 있다. 그렇다면 Interface 와 Abstract Class 두 종류가 존재하는건 왜일까? 결론부터 말하자면, Interface 와 Abstract Class 는 존재 목적이 다르다 Interface Interface 는 부모, 자식 관계인 상속 관계에 얽메이지 않고, 공통 기능이 필요할 때 Abstract Method 를 정의해놓고 구현(implements) 하는 Class 에서 각 기능들을 Overriding 하여 여러가지 형태로 구현할 수 있기에..

👩🏻‍💻 TIL 2023.01.04

Xcode Target, Project

workspace TARGETS 는 Xcode에서 Build를 실행하여 생성되는 최종 제품(?)(end product)입니다. project 란 project 는 모든 파일, 리소스, 하나 이상의 소프트웨어를 빌드하는데 필요한 정보의 저장소입니다. 그리고 연관된 Target 의 집합소입니다. (지금 하나의 Target 만 있는데, 프로젝트를 생성할 때 UI Test, Unit Test를 포함했으면 이 또한 Target 이 될 수 있고 또한 빌드를 할 때 각자가 빌드하는 Target 이 설정이 되어 있었을 것입니다.) 즉, 프로젝트는 target 을 하나 이상 포함합니다. 또한, 프로젝트는 모든 target 에 대한 기본 build setting 을 정의합니다. 정리 프로젝트는 연관된 Target 의 집합..

👩🏻‍💻 TIL 2022.12.29

[Flutter] 앱 버전관리 규칙

나는 빌드하면서 계속 앱 버전 관리에 대해서 헷갈렸었다. 버전을 잘못 올리면 어떡하지 하는 걱정, 불안감이 가득했다. 하지만 알고보면 간단하다. 내가 겪은 예시의 상황을 들며 자세히 설명해보겠다. 버전 네임 먼저 버전 네임에 대해서 알아보자. 버전 네임은 다음과 같이 이루어진다. Major.Minor.patch 첫 번째 자리는 메이저한 업데이트, 두 번째 자리는 기능 리뷰얼 정도의 중규모 업데이트때, 세 번째 자리는 자잘한 디버깅 및 약간의 수정 일 때, 이들의 숫자를 하나씩 올린다. 그러면 만약 버전 네임이 v1.5.2 라고 하자 뒤에 + 는 무엇을 의미하는 걸까 이것은 빌드 횟수를 말하는 것이다. 이는 빌드할 때마다 무조건 올려준다고 생각하면 된다. 만약 현재의 버전이 v1.4.2+90 인데 기능 리..

👩🏻‍💻 TIL 2022.12.28

안드로이드 Manifest 파일

뜻(Meaning) 명사 - 적하목록(선박 또는 항공기에 적재된 화물의 목록) 형용사 - 명백한 동사 - 나타나다 안드로이드에서 매니페스트란 "안드로이드 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공하는 목록" 이라고 정의할 수 있습니다. 역할(Role) - Java 패키지의 이름을 지정할 수 있다. 패키지지 이름은 곧 프로젝트의 식별자! 사람으로 따지면 주민등록번호 또는 바꿀 수 없는 이름과 같다. - 후에 알게될 액티비티, 서비스, 브로드캐스트, 리시버 등 앱을 이루는 구성요소들의 클래스 이름을 지정하고 구성요소들이 실행될 수 있는 조건을 기술한다. - 앱이 장치 또는 구성요소들과 상호작용하기 위해 필요한 권한을 설정한다. - 앱이 연결되어야 하는 라이브러리를..

👩🏻‍💻 TIL 2022.12.05