일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- caffemodel
- IOS
- 아파치 스파크
- 아파치 카프카
- Kafka
- iOS부트캠프
- SeSAC
- Yolo5 custom dataset
- train data
- 얼굴 비식별화
- 내채공만기
- 준지도학습
- 파이썬
- 비식별화
- Yolo5
- opencv
- scenedelegate
- Apache Spark
- 앱생명주기
- Apache Kafka
- 스파크
- yolov5
- roboflow
- 카프카
- python
- Swift
- face blur
- YOLO
- SPARK
- 내일채움공제만기
- Today
- Total
목록다혜찡 (30)
봉식이와 캔따개
기본 폰트를 보다보면 너무 못생겨서 화난다. 0. 폰트 다운받기 원하는 폰트 파일(OTF or TTF )을 다운받아준다. 폰트 종류는 눈누가 제일 많은 것 같다. https://noonnu.cc/ 눈누 상업용 무료한글폰트 사이트 noonnu.cc 1. 폰트 파일을 프로젝트로 가져온다. 나는 욕심이 많아서 폰트를 와장창 다운받는 바람에 Fonts 라는 그룹을 만들어서 안에 넣어주었다. ⭐️⭐️⭐️⭐️⭐️ 중요 ⭐️⭐️⭐️⭐️⭐️ Add to targets 체크를 안해주면 프로젝트에서 폰트 파일을 인식 못한다. 2. Info.plist에 폰트 파일 정의 위에서 추가한 폰트들을 모두 Fonts provided by application 하위에 등록해준다. ⭐️⭐️⭐️⭐️⭐️ 중요 ⭐️⭐️⭐️⭐️⭐️ 폰트 파일..
어렴풋이 이해하고 넘어가서 자꾸 헷갈리는 부분이 생긴다 😢 클로저의 강한 순환 참조를 해결하는 법을 공부하다가 캡처 리스트와 weak가 급 헷갈리기 시작했다. 일단 closure의 capturing value부터 다시 살펴보자. ✅ capturing value 클로저는 자신이 정의된 주변 context로 부터 변수, 상수를 캡쳐 할 수 있다고 한다. 심지어 상수와 변수를 정의한 original scope가 더이상 존재하지 않더라도, 클로저는 그 값을 참조하거나 변경할 수 있다. 호엥...🫢 공식 문서의 예제를 참고해보자. HTML 삽입 미리보기할 수 없는 소스 makeIncrementer 함수는 ( ) -> Int 형식인 incrementer 함수를 반환하고 있다. incrementer 함수는 매개변수 ..
API를 사용하고 네트워크 통신을 시작하니, 동기 비동기가 뭔지 공부하기 전에 관련한 문제와 맞닥뜨렸다😩 🥲 첫 번째 만남... 간단한 번역 앱인데, 내가 작성하는 언어를 감지 → 선택한 언어로 번역 해주는 기능을 구현했다. 원래 한국어 → 영어로 번역해주는 기능만 구현해놓았던 것을 수정하기로 한 것인데 그래서 기존 코드는 이런 구조였다. @IBAction func buttonClicked() { // 한 -> 영 번역해줘 AF.request().validate().responseJSON { response in //가져온 결과값 TextView에 적용 } } 번역하기 버튼을 누르면 파파고 번역 API를 호출해서 결과값을 TextView에 보여주는 방식. 아무것도 몰랐던 나는... 저걸 수정해서 이렇게 ..
지금까지 만들었던 앱 중 제일 규모 (라는 단어를 쓰기에 조금 뭐하지만 ㅎㅎ) 있고 완성도 있는 어플을 만들었다는 것에 뿌듯하면서도... 공부한 내용을 100퍼센트 완벽하게 녹여내지 못한것 같아서 아쉽고 코드가 지저분해서 속상 😢 다음에 또 이런 프로젝트를 진행하게 되면 이런건 더 신경써야지! 하는 부분을 남겨놓으려고 쓰는글... ✅ 무조건 설계부터... 기능을 빨리빨리 구현하고 그 뒤에 리팩토링 해나갈 수 있을 거라고 생각했는데 전혀 아니였다 🤷🏻♀️ 물론 가능하긴 했겠지만 시간이 너무너무너무 많이 든다. 그리고 수정할 부분이 많아서 그냥 안하고 싶어짐... 다음부턴 차근차근 설계부터 하고 코드를 짜 봐야겠다. ✅ 확장 가능성 생각하기 주어진 기능만 딱 구현하려고 생각하지 말고 후에 추가될 수 있는 ..
⚒️ 구현 하고자 한 것 1. 왼쪽 화면에서 원하는 기분 버튼을 누르면 오른쪽 화면에서 누적 클릭 횟수를 확인할 수 있다. → UserDefaults를 사용하여 구현 2. 리셋버튼을 눌러 누적 클릭 횟수 초기화 오른쪽 화면의 viewController코드에 UserDefaults 값을 가져오는 loadData() 라는 함수를 만들었고, 처음엔 자연스럽게 viewDidLoad 함수 안에서 loadData()를 호출하도록 작성했다. 실행 결과는.. 이전에 눌렀던 값들은 잘 가져오지만, 왼쪽 화면에서 아무리 클릭해도 값이 적용되지 않았다. ✅ viewDidLoad는 한 번만 호출.. 두 화면 모두 탭 바 컨트롤러로 연결된 네비게이션 컨트롤러의 rootView 이기 때문에 viewDidLoad는 한 번만 호출된..
RGB의 요소 3가지 R(빨강), G(초록), B(파랑)는 각각 0부터 255까지 총 256개(2^8)개의 범위를 가질 수 있고 이 값을 조합하여 하나의 색상을 표현한다. UIColor의 생성자 중 하나를 보면 이렇게 R,G,B에 각각 CGFloat값을 주어서 UIColor값을 생성할 수 있다. 그래서 랜덤한 CGFloat값을 3개 생성하고 UIColor 생성자의 red, green, blue에 각각의 값을 넣어주는 방법을 생각해보았다. let randomRed = CGFloat.random(in: 0...1) let randomGreen = CGFloat.random(in: 0...1) let randomBlue = CGFloat.random(in: 0...1) let randomColor = UICo..
✅ iOS13 이전 iOS13 이전 까지는 AppDelegate에게 두 가지의 책임이 있었다. 1. Process LifeCycle 앱이 켜지고 (App Launced), 앱이 꺼지는 (App Terminated) 이벤트 처리 2. UI LifeCycle UI의 상태 변화 (Foreground, Background 상태 등) iOS13 이전 버전에서 하나의 애플리케이션은 하나의 프로세스와 하나의 UI 인스턴스, 즉 하나의 window를 가질 수 있었다. 그러나 iOS13에서 iPadOS와 멀티 윈도우 기능이 등장하며, 하나의 애플리케이션이 여러 window를 가질 수 있게 되어 애플리케이션이 여러 개의 window를 지원해야 하게 되었다. ✅ iOS13 이후 그렇게 Scene Delegate라는 개념이 ..