오늘은 새로운 인프런 강의를 뚫었다.. 배우는데 돈 아까워 하지말자 ㅎㅎ SwiftUI를 배우고 있는데 이전과는 달리 중요한 요소 하나하나 조금 자세하게 파고들어 공부하고 싶어서 요즘 다시 기본기를 채우기 위해 자세하게 알아보고 있다. 먼저 SwiftUI에서 Grid는 UIKit에서 많이 사용했던 CollectionView와 거의 흡사하다고 보면 된다. SwiftUI의 CollectionView인 느낌이랄까! Grid라는 의미 자체는 2차원의 행과 열을 구성하는 레이아웃이라는 뜻을 가지고 있다.https://developer.apple.com/documentation/swiftui/grid/ Grid는 두 가지로 나눠져 있다 바로 VGrid , HGrid이다. LazyVGridV라는게 붙은 다른 것과 마..
컴퓨터 구조 지식은 크게 두가지로 나뉜다.컴퓨터가 이해하는 정보 : 데이터와 명령어컴퓨터의 4가지 핵심 부품 : CPU, 주기억장치, 보조기억장치, 입출력장치컴퓨터 구조를 이해하는 이유는 프로그래밍 문법만으로는 알기 어려운 성능, 용량, 비용을 고려한 개발이 가능하게 하며 문제 해결 능력을 향상 시키기 때문이다. 데이터문자 표현컴퓨터는 0과 1만 인식한다. 그러면 한글과 영어, 특수문자는 어떻게 표현될까? ‘A’는 65 (1000001)로 변환되어 표현됩니다. 이를 인코딩이라 하며 유니코드가 가장 널리 사용된다.실수 표현0.625를 2진법으로 표현하면 0.101이 된다. 이를 통해 컴퓨터에서 실수를 표현하는 두 가지 방식이 있다.고정소수점장점 : 표현 방식이 간단하다던좀 : 표현할 수 있는 버위가 적다부..
운영체제란 무엇인가?운영체제란 컴퓨터 전체를 진두지휘하는 핵심 프로그램을 말한다.CPU 스케줄링 : 프로그램들에게 CPU를 어떻게 할당하고 관리할 것인지 결정메모리 관리 : 메모리를 어떻게 할당하고 관리할 것인지 결정프로세스 관리 : 프로세스의 실행을 제어하고 관리파일 관리 : 파일 시스템을 관리입출력 관리 : 입출력 장치를 제어하고 활용운영체제는 커널 영역에서 실행되며, 나머지 프로그램들은 사용자 영역에 적재된다. 주요 운영체제UNIX : 1969년 벨 연구소에서 개발된 운영체제로, 이식성이 좋고 커널 크기가 작으며, 소스 코드가 공개되었다.NINUX : UNIX의 영향을 받은 리누스 토발즈가 개발한 운영체제로, 소스가 공개되어 있다.POSIX : UNIX 운영체제 기반의 인터페이스로 리눅스도 POSI..
이번에 TURTLE VOCA를 출시하면서 단어장에 사진을 넣을 수 있는 부분이 있는데 이 경우 이용자의 사진첩에 접근해야하기 때문에 이를 동의하는 과정이 꼭 필요하다. 이를 위해 이전에 구현되지 않았던 권한 안내를 구현하는 과정을 정리하고자 한다. 먼저 Info.plist파일에 안내가 나갈 문장을 넣어준다.Privacy - Photo Library Usage Description"단어장에 이미지를 추가하기 위해 사진 라이브러리에 접근하려고 합니다."이와 같이 사진처럼 값을 넣어주면 된다. 그 다음 PHPickerView가 등장하는 메서드에 권한 안내가 나오는 알럿이 뜨도록 구현해준다.func didSelectImage() { PHPhotoLibrary.requestAuthorization(for: ..
현재 원더보드에 올라와 있는 게시물을 선택하면 이미지를 불러오는 로딩 속도가 상당히 느려서 이용성이 저하되는 문제가 있었다. 이용자 피드백에서도 해당 내용이 거론되었고 내부적으로도 이 부분은 우선적으로 수정해야하는 의견이 많아 얼른 수정해야 한다.이 점을 개선하기 위해 Kingfisher를 활용해서 이미지 캐싱을 손보고 로딩 속도를 개선하고자 한다. 이미지 로딩 로직 수정먼저 이전의 저장되어있는 이미지를 불러오는 구현을 살펴보면func updateSelectedImages(with mediaItems: [Media]) { selectedImages.removeAll() let group = DispatchGroup() for media in mediaItems { ..
오늘은 SwiftUI를 활용해서 URLSession으로 API의 데이터를 가져오는 과정과 해당 데이터가 변동될때 자동으로 반영되도록 하는 Opserver Pattern을 적용해 보았다. 데이터 모델 정의먼저 데이터를 가질 모델을 정의해야한다. Hacker News API의 JSON 응답을 기반으로 Results , Post 구조의 모델을 만들었다.struct Results: Decodable { let hits: [Post]}struct Post: Decodable, Identifiable { var id: String { return objectID } let objectID: String let points: Int let title: String l..
SwiftUI 를 사용해서 개인 프로젝트를 시작하기 위해 기초적인 작업을 맞춰놨다. 일단 기본적으로 MVVM에서 데이터를 전달하는 방식과 RxSwift 를 활용하는 내용을 실전에 활용해 보기 위해 한번 테스트를 해봤다고 생각 하면서 진행했다. Model 및 ViewModel 생성struct Workout: Identifiable { var id = UUID() var name: String var date: Date var duration: TimeInterval var caloriesBurned: Double}운동 기록을 하기 위해 필요한 데이터를 struct로 생성하였다.import Foundationimport RxSwiftimport RxCocoaclass Workout..
SwiftUI에서 @ObservedObject와 @StateObject는 데이터 흐름을 관리하는 중요한 속성 래퍼이다. 각각의 개념 예시 그리고 차이점에 대해서 알아보자. @ObservedObject먼저 @ObservedObject는 외부에서 생성되고 관리되는 관찰 가능한 객체를 뷰에 연결하는데 사용된다. 이 객체는 ObservedObject 프로토콜을 준수해야 하며, @Published 속성이 변경될 때 즉 객체가 변경될 때 마다 뷰를 자동으로 업데이트 하도록 한다.class UserViewModel: ObservableObject { @Published var username: String = "" @Published var isLoggedIn: Bool = false}struct UserView..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.