일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Protocol
- GOMS
- weak
- xcode
- breakpoint
- Async
- Swift
- regex
- UIKit
- pop
- RenderingMode
- unowned
- 광주소프트웨어마이스터고등학교
- ReactorKit
- ios
- MVVM
- UISheetPresentationController
- UIImage
- keychain
- DI
- Sync
- 회고록
- Clean Architecture
- 회고
- 순환참조
- 정규식
- Today
- Total
목록전체 글 (15)
minaje

언제 쓰냐? 안녕하세요! 오늘은 Xcode의 기능 중 하나인 BreakPoint에 대해서 알아볼 것인데요! 이 BreakPoint라는 놈을 언제 쓰냐? 만약에 API 통신을 하다가 에러가 났지만 어디서 에러가 난지 모르겠고.. 어디 함수부터 잘못된지 모르겠다! 어디로 잘못 들어간지 모르겠다..! 그런 상황에 특정 넘버라인에서 멈추기 위해 사용하는 것입니다! 어떻게 사용해? 사용법은 아주 간단합니다. 그저 멈추고 싶은 넘버라인을 클릭해주기만 하면! 이렇게 BreakPoint가 활성화가 된 모습을 볼 수 있습니다. 빌드중에 이렇게 BreakPoint가 표시된 곳을 지나가게 된다면 브레이크 포인트에서 초록색 표시가 뜨면서 코드 진행이 일시정지가 됩니다. 어떻게... 풀어요..? 코드 진행을 멈추었다면 다시 진..

글에 들어가며 프로젝트를 하다보니 어드민 계정일때 UIImage의 색상을 변경해야하는 상황이 생겼다. 그래서 처음에는 이미지를 따로 만들어서 바꿔 끼우는 형식으로 했었는데 너무 비효율적이라는 생각이 들어 이미지 자체의 색을 바꾸는 방법을 찾아보니 UIImage RenderingMode라는 기능이 있어서 공부하게 되었습니다! UIImage RenderingMode란? UIImage의 색상 값을 결정하는 것이다. automatic: 컨텍스트의 기본 모드를 선택하며 지정해주지 않을 경우 디폴트 값 사용(보통 alwaysOriginal) alwaysOriginal: 원본 Image 색상 사용 alwaysTemplate: 원본 Image 색상을 제거 후 지정한 tintColor로 변경 코드 예시 let examp..

개요 오늘은 DI - Dendency Injection! 단어만 들었을 때는 아주 무섭죠..! 하지만 객체지향을 한다면 자주 사용하고 꼭 알아야하는 녀석이죠. Dendency?? Dependency 즉! 의존성이란? 객체 지향 프로그래밍에서 서로 다른 객체 사이에 의존관계가 있다는 것을 말한다! 말이 어려우니까 풀어서 설명하자면 A 객체가 B 객체를 의존한다고 가정해보자! 이때 B 객체가 수정이 되면 A 객체까지 영향을 받는 것이다! 이것이 의존성이다. 자 코드로 살펴보자 import UIKit struct Study { func swift() { print("스위프트") } func kotlin() { print("코틀린") } } struct Minaje { var todayStudy: Study f..

버전 관리 규칙? 앱을 배포하고 유지보수를 할 때 버그를 수정하거나, 새로운 기능을 추가하는 상황에서 상당히 많이 보게되는 버전! ex) 1.2.0 오늘은 이 버전 관리 규칙에 대해 알아보자! 첫번째 숫자 가장 먼저 나오는 숫자는 주 Major 역할을 한다! 기존 버전과 호환되지 않는 대규모 업데이트를 했을 때 하나 씩 올린다! 예를 들어 3.4.1이면 3번의 대규모 업데이트를 진행했다는 것이다! 그리고 버전을 올리는 경우 그 뒤 숫자들을 0이된다. 두번째 숫자 두번째 숫자 즉 가운데 숫자는 부 Minor 역할을 한다. 기존 버전과 호환되지만 새로운 기능을 추가하는 경우 하나 씩 올린다. 3.4.1에서는 4번의 기능이 추가되었다는거다. 마지막 숫자 마지막 숫자는 patch이다. 버그를 수정하거나 여러 오..

프로젝트 영입 평화롭게 Daily라는 프로젝트를 진행하던 중 평소에 친하게 지내던 서버 개발자 친구에게 갑자기 연락을 받았다. 그 당시에는 Daily 프로젝트가 그렇게 급하지도 않아서 '금방 끝나겠지'라는 생각을 가지고 프로젝트에 참여했다. 디자인의 부재 저희 학교 특성상 디자인을 전공으로 하는 친구들이 많지 않다보니 프로젝트를 할때마다 디자이너를 영입하기 매우 힘들었다. 다행히도 부전공으로 디자인하는 친구를 영입하긴했지만 부전공인만큼 다른 프로젝트를 하느라 바빠서 iOS 디자인은 내가 하겠다고 했다. 클라우드 타입 로그인 구현 당시에 서버는 클라우드 타입을 사용하여 배포가 된 상태였다. 하지만 어떤 이유에서인지 토큰을 못 받아오는 오류가 발생했다.. 이 오류의 원인을 찾기 위해 코드를 다시 짜거나 서버..

전 포스팅에서 메모리 누수, 순환참조에 대해서 공부를 해봤으니 이번 포스팅은 메모리 누수를 방지하는 방법을 알아보자! Weak Weak를 사용하여 강한 참조가 아닌 약한 참조를 만들어 메모리 누수를 방지할 수 있다! class TestClass{ weak var testClass: TestClass? = nil // 약한 참조 init(){ print("init") } deinit(){ print("deinit") } } var testClass1: TestClass? = TestClass() var testClass2: TestClass? = TestClass() testClass1?.testClass = testClass2 testClass2?.testClass = testClass1 testClas..

Swift의 메모리 관리 Retain Cycle(순환참조)을 살펴보기 전에 Swift의 메모리 관리에 대해 알아야한다! 다행히도 ARC (Auto Reference Counting)는 대부분의 메모리 관리를 자동으로 해줍니다! 자! 그러면 ARC가 어떤 원리인지 알아봅시다. ARC의 원리 기본적으로 클래스의 객체를 가르키는 각각의 reference는 강한 참조입니다! 그리고 최소 하나의 강한 참조가 있는 이상 객체는 메모리에서 해제되지않습니다. class TestClass { init() { print("init") } deinit() { print("deinit") } } var testClass: TestClass? = TestClass() testClass = nil 자 이렇게 그림을 보면 test..

글을 시작하며 우선.. 정규식에 대한 글을 쓰게 된 이유는 코딩테스트에서 정규식 문제가 나와서.. 제대로 못 풀었기 때문에 다시 공부하게 되었다.. 🥹 Swift의 정규식 Swift에서 \ (역 슬래쉬)는 연산자 역할을 하므로, \ 를 문자 자체로 사용하고 싶을 때는 \\ 이렇게 두 개로 사용해야한다! 문자열 일부가 일치하는 지 확인하는 방법! (첫 번째로 일치하는 지) let regex = "[0-9]" let check = "abcdefg".range(of: regex, options: .regularExpression) != nil // 출력 값 : false 이렇게 문자 일부가 일치하는 지 확인할 수 있다. 문자 범위는`[]` (대 괄호)를 사용한다. 문자열 전체가 일치하는 지 확인하는 법! le..