일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- process
- MVVM
- ImageSlider
- 스터디
- UIKit
- GIT
- CS193p
- 프로젝트회고
- 새싹후기
- Masil
- 청년취업사관학교후기
- WidgetTree
- SwiftUI
- UserDefault
- stanford
- xml
- 스위프트
- 오늘의 색상
- colorofdays
- flutter #state # stateful #stateless
- Swift
- 알고리즘
- collectionView
- xcode
- IOS
- 백준
- 프로그래머스
- 코딩테스트
- 조건문
- flutter
- Today
- Total
목록전체 글 (105)
개발을 시작하는 이야기

📋 팀에 QA프로세스가 정립되어있지 않아 앱 업데이트 이후, 잦은 BugFix로 인해 업무에 피로도가 가중되고 있어 팀 내부에 올바른 QA 프로세스 정립을 하기 위해 작성하였습니다. QA의 역할 QA의 프로세스를 이해하기 위해서는 QA의 역할에 대해서 알아야 한다. 사실 이전에만 해도 나는 단순히 개발 완료 후에 기능 테스트를 진행하며 버그를 찾고 리포팅하는 역할로 알고 있었다. 하지만 소프트웨어 산업이 발전해 오면서 개발뿐만 아니라 테스팅 관련 분야도 함께 발전해오면서 지금의 QA 영역은 단순 테스트로부터 훨씬 멀리 뻗어 나갔다. QA의 가장 중요한 역할은 물론 품질이다. 프로덕트 품질의 기준을 제시하고 달성하는 것을 목표로 삼고 활동하는 역할이다. 또한, 분석과 관리 역할을 하며 프로덕트 자체 또는 ..

2021년부터 Swift를 해온 나는 지금껏 Swift Package Manager (aka. SPM)를 사용해서 회사에가서 처음으로 Cocoa Pods을 마주했다. SeSac과정 진행중에 한번 설치하려고 했었으나 그당시 M1이 나오고 몇달 되지 않은 시기라 Homebrew도 겨우 설치했을 때였다. (물론 나의 어설픈 리눅스도 한몫 했지만) 그래서 Cocoa Pods도 마찬가지로 호환이 불안정했고 나를 비롯한 몇몇 M1유저들은 사용하지 못했었다. 아무튼 그런데 기존 프로젝트를 유지보수 및 업데이트를 해오다가 이번에 리팩토링을 추진하는 와중에 StoryBoard와 Code Base를 두고 고민을 하는데, 문득 Cocoa Pods과 SPM은 차이가 있을까? 그리고 혼용해서 사용해도 괜찮을까? 같은 의문이 들..

회사에서 신제품 개발에 사용할 업그레이드된 SDK를 테스트 해달라고 하는데 SDK는 뭐고 어떻게 사용하는지, 그리고 어떤것을 어떻게 테스트를 해봐야 하는건지 몰라서 몹시도 당황했다. 그래서 알아가기 위해 정리해봤다. SDK가 뭘까? 일단 SDK....그거 카카오맵을 사용하려고 했을때 메뉴얼에서 연결 하라고 해서 하긴 했는데... SDK는 소프트웨어 개발 키트(Software Development Kit)는 일반적으로 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 프레임워크, 하드웨어 플랫폼, 운영 체제 등을 위한 응용프로그램 등을 만들 수 있게 해주는 개발 도구의 집합체이다. SDK는 왜 필요할까? SDK가 없다면 기능을 처음부터 만들어야 한다. SDK에는 많은 것들이 미리 구축되어 있기 때문에..

코드에 대한 컨벤션 가이드의 가닥이 잡혀가면 이제는 구조에 대한 컨벤션을 잡아야 한다. 구조에 대해 논의하기 시작한다면 끝이 없겠지만, 일단 가장 중요한건 코딩 패턴에 대한 아키텍쳐를 다루고자 한다. MVC, MVP, MVVM 어떤 패턴이 좋은가에 대해 '앱 개발 디자인은 이 패턴으로 해야 한다!" 라고 과감하게 정의 내릴수는 없다. 앱 규모의 크기에 따라, 구현하는 기능에 따라 사용하기 좋은 패턴이 있지만 가장 선호하고 많이들 언급되는 패턴은 뭐니뭐니 해도 MVVM패턴이다. MVC 패턴은 Controller에 많은 코드가 몰리게되고, 각 모듈별로 의존성이 강해서 변경사항이 발생하면 Model, View, Controller가 모두 변경되어야 한다. MVP 패턴은 Model과 View간의 의존성은 삭제되..

Coding Convention 코딩 컨벤션(Coding Convention)은 가독성 있는 코드를 작성하고 협업을 원활하게 진행하기 위한 공통의 코드 작성 가이드라인이다. 한국인들은 한국어로 소통하고, 일본인은 일본어로 소통하고, 미국인은 영어로 소통하듯 개발자들끼리 소통을 하기 위해서는 코드로 소통해야 한다. 하지만 우리 팀은 서로 다른 언어를 갖고 있다. iOS 개발자는 Swift, AOS개발자는 Kotlin, Front개발자는 React까지 서로 다른 언어를 갖고 있다. 그러면 우리는서로 소통할 수 없을까? 여행지에서 세계 각국의 사람들이 모이면 자연스럽게 암묵적으로 하나의 언어를 사용해 소통하게 된다. 이처럼 자연스럽고 암묵적인룰이 팀에 정착할 수 있도록 도와주는 가이드라인이 코딩 컨벤션이라고 ..
장마의 시작과 함께 인터넷이 나갔다. 토요일 와이파이가 끊어지길래 공유기 문제인가 싶었더니 결국은 외부의 단선이 문제였다. 문제는 이 문제를 해결하기 위해서는 전신주를 올라야 하는데 장마철엔 위험하기 때문에 장마가 끝나야 가능하다고 한다. 지금 예보상으로는 7월 12일까지 비, 뇌우, 산발적 뇌우로 가득한 상황에서 언제 수리가 될지 모르는 상황.... 뉴스에서 보면 사람의 안전이 경시되는 뉴스들을 보면서 왜 저럴까 싶었는데 이런 상황에 처하니까 이정도면 괜찮지 않나? 라는 생각이 들면서 내 편리함을 찾게 된다. 뭐 아무튼 아이맥을 쓰고 있는 관계로다가 카페를 갈 수도 없어서 집에선 강제로 휴식중 (이틈에 겜이나 해야지 하면서 문명을 켰는데... 스팀에 접속이 안되서 못함...) 그나마 취준하며 매일 집에..

원래는 카카오맵 연동을 먼저 쓰려고 했는데 연동까지는 했는데 그 활용이 아직은 좀 더 해봐야 해서 일단 먼저 작성한 전화 연결을 먼저 작성해봄. iOS는 URL Scheme를 활용하여 메일, 전화, 문자 FaceTime등을 연결할 수 있었다. Apple Developer Documentation developer.apple.com URL Scheme 적용 방법 URL Scheme 문자열을 통해 URL 인스턴스를 만들어주고, canOpenURL(_ :) 메서드를 활용해서 URL 체계를 처리할 수 있는지 여부를 확인한다. let url = ... func canOpenURL(_ url: URL) -> Bool Apple Developer Documentation developer.apple.com 사용 가능..

지난번 글에 이어서 ProgressView 부터 이제는 ProgressView에서 Cell의 순서에 맞게 표시해주도록 설정을 해주어야 한다. Apple Developer Documentation developer.apple.com 일단 progress에서 현재 상황을 알려줄 변수를 하나 작성해주었다. //MARK: - Data var progress: Progress? 그리고 이제 진행상황에 맞추어 completedUnitCount를 업데이트 해주면 된다. 하지만 이때 주의할점은 최초 로드시에는 0이 아닌 1이여야 한다. 처음 로드하게 되면 첫 페이지가 보여지고 있어야 하기 때문이다. private func configureProgressView() { progressView.progress = 0.1 ..

면접에서 내 프로젝트들을 보시곤 이미지 슬라이드를 해본적은 없냐는 질문을 받아서 아직 이미지를 대량으로 받은 적이 없어서 적용을 안해보았고, 웹으로는 해보았다고 말씀드렸었다. 그래서 이번에 프로젝트를 생각할 때 슬라이드를 해봐야 겠다고 생각했지만, 웹과 앱은 달랐기 때문에 제로 베이스에서 다시 생각해서 작성했다. 일단 웹에서 슬라이드를 만들 때는 이미지 만큼의 div를 만들어서 회전시키는 방식으로 작성했는데, 앱에서는 그렇게 해주기 보다는 CollectionView를 사용하기로 했다. 그래서 일단은 ViewController에 CollectionView, 그리고 슬라이드 위치를 표시해줄 ProgressView를 만들어주었다. private var collectionView: UICollectionView..

Swift Study 이주의 문제 2 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력..