적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

초보 iOS 개발자의 일상/개발 업무 99

DBeaver로 db 수정해보기

바로상담 리뉴얼하면서 기존에 있던 화면이 없어지고, 다른 화면으로 통합되면서 로직이 제대로 작동하는지 테스트가 필요했다.그런데 바로상담은 한 번 진입하면 다른 유저들이 동시에 들어오지 못하도록 5분 간 lock 이 걸리기 때문에, 기능 테스트를 자유롭게 하기 위해서는 테스트할 때마다 개발 db에서 lock 데이터를 지워줘야 했다.  1. Table 조회- 원하는 테이블을 찾아서 열고2. Sort- registered_time column을 ordered by DESC 내림차순으로 설정해 최신순으로 정렬해준다.3. Delete Row- 내가 테스트 중인 user id 값 중 가장 최신 로우를 삭제해준다.4. Save- 하단의 save 버튼을 눌러야 저장이 됨이렇게 하면 lock 을 수동으로 지워주고 마음껏..

DBeaver 설치 및 실행해보기

개발 서버에서 마음껏 테스트 해보려면 db를 조작해야할 일이 종종 생기더라세 달 쯤 전부터 DB 권한을 받고 DBeaver를 조금씩 사용해보고 있다. https://dbeaver.io/ DBeaver Community | Free Universal Database ToolDBeaver Universal Database Tool DBeaver Community is a free cross-platform database tool for developers, database administrators, analysts, and everyone working with data. It supports all popular SQL databases like MySQL, MariaDB, PostgreSQL, SQL..

비동기 Task 병렬 실행 (TaskGroup vs. async let)

커뮤니티 사연 불러오기 전에 contents 를 먼저 받아와야 한다. Task { await fetchBanners() // 첫 번째 API 호출 (비동기적으로 실행, 완료될 때까지 대기) await fetchEmpathyStories() // 두 번째 API 호출 (첫 번째가 끝난 후 실행) await fetchMacasPickStories() // 세 번째 API 호출 (두 번째가 끝난 후 실행) await fetchHashtags() // 네 번째 API 호출 (세 번째가 끝난 후 실행) process(.fetchStories) // 모든 작업이 완료된 후 실행}이렇게 하면 비동기로 네 개 동시에 실행하고 마지막에 사연..

웹뷰 이미지 첨부

웹뷰에 이미지를 보내야한다... 웹뷰 이미지 첨부채팅방에서 사진 첨부하는 기능이 추가되었다. JSON 객체로 보내고 싶었지만 결국 실패.. 안되는게 맞다고 한다.  Swift에 맞게 보내주면 웹에서 못받아오고웹에 맞춰서 보내주려니 앱에서 보낼 때 에러나고. 그냥 문자열은 잘 보내진다. let aaa = String(repeating: "a", count: 1000)짤라서 보내도된다. base64String = String(base64String[base64String.startIndex..100자 정도 짤라서 보내면 되는데 full string 은 에러나길래 너무 길어서 문제인가 했더니 그건 아니고 에러나서 base64String 이 문제인가다 변환 해줘야댐base64String = base64Strin..

[iOS] 웹뷰 파일 및 사진 첨부 구분하기

웹에서 input 태그를 만들면 보통 사진 첨부, 파일 첨부 할 수 있는 세 개의 선택지가 뜬다.  웹뷰에서 파일 또는 사진 업로드 버튼을 따로 제공하기 위해 다음과 같이 두 개의 태그를 만들어 각각의 버튼이 특정 파일 형식만 첨부 가능하도록 설정해보았다. 이런식으로 설정해주면 파일을 선택할 수 있는 화면이 바로 열린다.   하지만 사진은 안댐 ㅠㅠ 흑 따로 커스텀 해주어야 한다.

프로젝트 별 spm 설정 초기화 (설정값 주입? or 환경변수 설정?)

디자인 모듈을 만들었는데, 프로젝트마다 primary color 가 바뀌도록 초기 설정을 해주어야 한다.  일단 요러케 프로젝트 타입을 정의해두고public enum AppType { case main case sub}  SPM 모듈 내에서 각 프로젝트마다 다르게 초기화되는 값을 설정하는 방법 1. Dependency Injection 사용하여 설정값 직접 주입받기다음과 같이 SPM 모듈 내에 초기화 구조체 정의public struct DesignConfiguration { public static var shared = DesignConfiguration() public let appType: AppType public init(appType: AppType =..

Unlisted app distribution 등록되지 않은 앱 배포 (+ Enterprise 배포를 하지 못한 이유)

https://developer.apple.com/support/unlisted-app-distribution/ Unlisted App Distribution - Support - Apple DeveloperFeedback Assistant Submit feedback, report bugs, and request enhancements to APIs and developer tools. Send us feedbackdeveloper.apple.com 보통 조직 내부에서 사용하는 전용 앱은 Enterprise Program 을 통해 직원에게만 비공개 배포가 가능하다. 예전 회사에서는 고객사에 전달할 앱을 엔터프라이즈 배포로 진행을 했었는데,현재 진행 중인 프로젝트의 경우, 고객사 직원들을 대상으로 하는 ..

Create and publish Swift Package Manager (SPM 생성하는 법 + Package 구성 추가)

SPM 을 직접 만들어보자디자인 모듈을 spm으로 따로 만들고 있는 중이다.. 혹시 또 사용할 일이 있을까봐 정리해둠 ㅎ 1.  패키지 생성 Create Package1) GUI - Xcode 에서 생성하기Xcode 에서 File > New > Package > Library 로 생성을 해줄 수 있다. 2) CLI - 터미널에서 생성하기mkdir MyPackagecd MyPackageswift package init --type library 하면 프로젝트가 생성이 됨 2. Publish PackageGithub에 새로운 repository 생성해주고Xcode > Integrate > New Git Repository 로 local 레퍼지토리 생성해준 후 다음과 같이 원격, 로컬 레퍼지토리를 연결시켜준다..

728x90
반응형