본문 바로가기

분류 전체보기59

Apple Developer 에서 법인 개발자 계정으로 등록하기. 1. Apple ID 생성- 애플 앱 스토어에 앱 등록 및 출시하기 위해서는 애플 개발자 계정이 반드시 있어야 합니다.- 애플 개발자 계정 등록을 위해서는 Apple ID가 필요합니다- 사용하는 Apple ID가 있다면 해당 ID로 개발자 계정을 등록할 수 있으며, 없다면 먼저 Apple ID를 만든 뒤 개발자 계정을 등록할 수 있습니다.1) Apple ID 생성하기 - https://appleid.apple.com/ 접속 - 상단에 있는 ‘Apple ID 생성’ 선택 회사 이메일로 Apple ID 생성ex) dev@company.com이름은 “실제 담당자 개인 이름”으로 하는거.전화번호 : 전화번호 입력※ 암호 분실 시 신원을 확인하고 암호를 재설정하는 데 사용됩니다. 꼭 실무자 번호로 하자. 🚨 D.. 2026. 2. 3.
[iOS]Firebase Remote Config 사용 방법 (FirebaseRemoteConfig) Firebase Remote Config를 이용해 버전별로 dev와 prod 환경 값을 관리하고, 앱 심사 중에는 dev 환경, 이후에는 prod 환경을 적용하는 방법을 사용하게 됨 1. Firebase 프로젝트 설정이미 FCM을 사용하고 있기 때문에 파이어베이스 콘솔에서 앱을 등록이 되어있습니다!2. Firebase 프로젝트에 Remote Config를 추가파이어베이스 콘솔에서 좌측 메뉴에서 Remote Config를 찾아 눌러줍니다.그리고 매개변수 만들기를 클릭  저는 앱 심사 중에는 dev 환경을 사용하고, 심사가 끝나면 prod 환경으로 전환하는 행위를 수동으로 해야할 것 같아서 Bool 타입을 만들었습니다. 이름: (원하는 이름으로 지정)값:false: 개발 환경 (dev)true: 프로덕션 환.. 2024. 9. 14.
[에러] A build only device cannot be used to run this target. 해결방법 갑자기 git에서 Pull을 받았는데 잘되던 시뮬레이터가 작동하지 않음 기존의 블로그의 글들은 시뮬레이터 설치가되어있지 않은 경우라던가 재부팅을 하면 해결되는 경우들이 많았음 -> 실패 다른 프로젝트를 켜본후 다른 프로젝트에서는 시뮬레이터가 잘 작동할 경우 해당경우를 의심해봐야함 Taget 지정이 안되어있을 경우 PROJECT -> Deployment Target 에서 Target의 버전을 시뮬레이터와 맞춰주면 됨 2024. 1. 6.
[WWDC]Understanding Swift Performance 성능에 영향을 미치는 3가지 Memory Allocation : Stack or heap Heap 할당의 문제는 무엇인가? → 할당시 빈곳을 찾고 관리하는 것은 복잡한 과정이다. → 그 과정에서 thread safe 해야한다는 점 but Stack 할당은 스택포인터 변수값만 바꾸는 정도임 Reference Counting : No or Yes 문제 레퍼런스카운팅? -> 어디서에 몇개가 참고하고 있나를 계속 팔로우하는것. 정말 자주 실행 → 변수 카피할때마다 thread safety 때문 Method Dispatch(메소드 호출) : Static or Dynamic Static : 컴파일 시점에 메소드 실제 코드 위치를 안다면 찾는 과정없이 바로 해당 코드로 점프할 수 있음 컴파일러 최적화 → 메소드 인라.. 2023. 12. 7.
[Swift] class/struct 를 언제 사용할까 Class 언제 Class 사용할까? - 번역 Data Model 을 저장하고 다룰때 Class로 구현할지 Structure로 구현할지 고민하는 경우 공식문서에서는 다음과 같이 설명하고 있다. Reference Apple Development Article - Choosing Between Structures and Classes 기본적으로 구조체를 사용해라. (Use structures by default.) Objective-C 하고 상호운영성(interoperability)이 필요할 때 클래스를 사용해라. 데이터의 identity 를 다뤄야 할 필요가 있다면 클래스를 사용해라. 기능 구현을 공유하고 싶다면, (클래스 간의 상속이 아니라) 구조체를 프로토콜과 함께 사용해라.언제애플 공식 문서에서는 아.. 2023. 11. 23.
[알고리즘 / swift] 동적 계획법 (Dynamic Programming) 크고 어려운 문제가 있으면 먼저 잘게 나누어 해결한 뒤에 나중에 전체의 답을 구하는 것 완전 탐색으로 접근했을 때 시간이 오래걸리는 경우 적용 가능한지 확인 메모이제이션 Memoization : 정답을 구한 작은 문제를 메모하고, 다시 그보다 큰 문제를 풀 때 똑같은 작은 문제가 나타나면 앞서 메모해두었던 작은 문제의 결과값을 이용한다. DP를 사용할 수 있는 조건 1. 큰 문자를 반복되는 작은 문제로 나눌 수 있다. 2. 작은 문제에서 구한 정답이 큰 문제에서도 사용된다. 방식 1. 보텀업(bottom-up) 방식 - 작은 문제부터 차근 차근 답을 도출하는 방식 - 반복문 형태 - 다이나믹 프로그래밍의 전형적인 형태 - DP 테이블 : 보텀업(bottom-up) 방식에서 사용되는 결과 저장용 리스트 b.. 2023. 10. 25.
[iOS] swift sort / sorted 우선순위 부여 sort() 와 sorted() 정렬 메소드의 차이 sort 는 원본값에 영향을 주고 리턴값이 없다. sorted 는 원본값에 영향을 주지 않고, 새로운 리턴값을 반환한다. 즉 let 으로 선언한 배열이 있다면, sort 메소드를 사용할 수 없다. 정렬에 아무 조건을 걸지 않는다면 한글 String 에서는 가나다 순서대로, 영문 String 에서는 알파벳 순서대로 '오름차순' 정렬된다. 우선순위를 부여해서 정렬하는 방법 // 튜플의 값 비교를 응용한 정렬의 우선순위 부여 // arr = [[2,4],[3,6],[5,2],[5,7],[2,8]] print(arr.sorted { ($0[0], $0[1]) < ($1[0], $1[1]) }) // String 도 가능 그럼 만약, 1순위 2순위 순서는 유지하.. 2023. 10. 16.
[알고리즘 / swift ] 자주쓰는 알고리즘 정리, 코테준비 공백없는 숫자나 문자입력받기 int배열 -> int 전환 //공백없는 숫자나 문자입력받기 // 12345 배열로 받기 var num = String(n).map {Int(String($0))!} //공백 있는 문자 var arr =n.split(separator: " ").map {Int($0)!} //int 배열 int로 전환 let myArr = [1,2,3,4] let myResult = myArr.map(String.init).joined() // "1234" Int(myResult) reduce // 초깃값이 0이고 정수 배열의 모든 값을 더하는 코드 let numbers: [Int] = [1,2,3,4,5,6,7,8,9,10] var sum: Int = numbers.reduce(0) { $0.. 2023. 9. 4.
[c++]백준 #11170 0의 개수 코드 맨 처음은 카운트할 수를 입력받아야하기 때문에 count 변수로 숫자를 입력받고, 그 수만큼 반복하기 위해 while문을 사용하였다. string str = to_string을 통해 숫자를 문자로 변환한 후 '0'문자열을 가지고있는 경우에만 카운트를 센다. #include #include using namespace std; int main() { int N, M; int count; int a; cin >> count; while(count--){ cin >>N >> M; for(int i = N; i> M; for(int i = N; i 2023. 5. 29.
[c++]백준 #2884 알람 시계 문제 1. 시간과 분을 변수로 지정한다. 2. 분은 60분 단위 시는 24시간 단위이기 때문에 이에대한 예외처리를 한다. 코드 #include using namespace std; int main() { int h, m; cin >> h >> m; if (m < 45) { m = m + 15; h = h -1; if (h < 0){ h = 23; } } else { m = m - 45; } cout 2023. 5. 29.