본문 바로가기

728x90

전체 글

(104)
[iOS] UserDefaults 알아보기 앱이 실행되는 동안 키-값 쌍을 지속적으로 저장하는 사용자 기본 데이터베이스에 대한 인터페이스입니다. 샌드박스 저장을 통해 앱이 제거될 때 까지 지속적으로 저장할 수도 있습니다. 개요 런타임중 UserDefaults 객체를 사용하여 앱이 사용자의 기본값 데이터베이스에서 사용하는 기본값을 읽습니다. UserDefaults는 정보를 캐시하여 기본값이 필요할 때마다 사용자의 기본값 데이터베이스를 열지 않아도 됩니다. 기본값을 설정하면 프로세스 내에서 동기적으로 변경되고 영구 저장소 및 기타 프로세스에 비동기적으로 변경됩니다. 샌드박스? UserDefaults에 저장된 데이터는 앱의 샌드박스 내에 저장됩니다. 샌드박스는 각 iOS 앱에 할당된 고유한 파일 및 데이터 저장 공간입니다. 샌드박스라는 개념때문에 iO..
Alert struct ContentView: View { @State private var showing = false var body: some View { VStack { Button("Alert 띄우기") { showing = true } .alert("메시지", isPresented: $showing) { Button("OK", role: .cancel) { } } } } }
Stub, Mock, Dummy 최근 회사 프로젝트에 테스트코드를 넣기 시작했다. 연습으로 테스트 코드를 작성했던것과 달리 조금 더 신경써야 할 부분들이 생겨났고, 나중에 다른 개발자가 보더라도 이해하기 쉬워야할텐데, 아무튼 테스트 코드를 작성하다보니 조금 헷갈리는 부분이 있어서 정리하려한다. 테스트 코드를 작성하면서 의존성이 생기는 경우가 허다하다. A를 검증하기 위해서 B,C,D를 주입시켜줘야 하는 경우인데 B,C,D 가 실제로 동작하지 않아도 되거나 가짜 데이터를 즉시 반환하는 역할을 하기도 한다. 이렇게 검증에 필요한 거짓된 객체를 사용함에 있어서 어떤 경우에 Stub, Dummy, Mock같은 네이밍을 해줘야할지 정리한다. Stub Stub은 호출에 대해 정해진 응답을 하게 만든 객체이다. 아래는 팀원목록을 반환하는 레파지토리..
@Binding 변수 포함된 View의 PreviewProvider 사용 @Binding var name: String 과 같은 변수가 있는 뷰의 경우 struct ContentView: View { @Binding var name: String var body: some View { ZStack { Text(name) } } } struct ContentView_PreviewProvider: { static var previews: some View { ContentView(name: .constant("철수")) } } 위 처럼 쓰면 프리뷰를 볼 수 있다. .constnat는 Binding을 생성하는데 " 뷰가 다른 값을 어떻게 나타내는지 확인하기 위해 ``PreviewProvider``를 사용할 때 유용할 수 있습니다. 어떻게 다른 값을 나타내는지 확인할 때 유용합니다...
맥 주피터 노트북 설치 터미널 키고 파이썬 설치 확인 python -v 없다면 다운로드 https://www.python.org/ 다운로드 위로 커서를 올리면 버튼이 보인다. 눌러서 다운로드 설치 완료 후 주피터 설치 명령어 입력 pip3 install jupyter 실행! jupyter notebook
eraseToAnyPublisher eraseToAnyPublisher는 Publisher프로토콜을 구현하는 타입에서 호출, 해당 Publisher의 타입을 숨기고 AnyPublisher 타입으로 변환합니다. 이 변환을 통해 Publisher의 구체적인 타입정보를 숨기고 API설계 단순화에 도움이됩니다. 예 func fetchData(url: URL) -> AnyPublisher { URLSession.shared.dataTaskPublisher(for: url) .map { $0.data } .eraseToAnyPublisher() } fetchData함수는 URL을 인수로 받아 데이터를 요청하고 결과를 반환하는 역할입니다. API요청을 수행하고 map연산자를 사용하여 데이터만 추출합니다. 그리고 eraseToAnyPublisher메서드..

728x90