🙂 이미지 선택 구현아래와 같은 PhotosPicker를 통해 이미지를 선택하는 화면을 구현했다.코드는 아래와 같이 간단하게 구현했다. PhotosPickerItem에서 이미지는 여러 가지 방법으로 가져올 수 있었지만 우선 아래와 같이 최대한 가로로 짧은... 방식으로 구현했다.struct ContentView: View { @State private var selection: PhotosPickerItem? @State private var image: UIImage? var size: CGFloat = 180 var body: some View { PhotosPicker(selection: $selection) { Group { ..
🥸 해결하고자 하는 상황만약 아래와 같은 간단한 NavgationStack이 있다고 해보자. 여기서 부분이 맘에 안들어서 이 부분을 바꾸고 싶다고 하자.물론 다양한 방법으로 커스텀이 가능하지만 아래와 같은 방법으로 바꿔보았다고 하자. 뒤로가기 버튼을 숨기고 툴바아이템을 추가해주었다. 액션은 dismiss를 활용했다.struct NextView: View { @Environment(\.dismiss) private var dismiss var body: some View { Text("Some View") .navigationBarBackButtonHidden() .toolbar { ToolbarItem(p..
지난 글지난번엔 ReactiveX 홈페이지를 아주 간단히 살펴봤다. 사실 살펴보면서 직접 사용해 봐야겠다는 생각이 들었다. [Programming] 반응형 프로그래밍 - 2. ReactiveX📝 지난 글 [CS] 반응형 프로그래밍 - 1. 기본 개념🧑🏻💻 내가 반응형 프로그래밍을 공부하게 된 이유갑자기 채용공고들을 올려서 이게 뭐지 싶겠지만, 여기서 우대 사항, 참고 사항에 들어swift-library.tistory.comReactiveX는 RxSwift를 통해 Swift를 지원한다! 나는 이번에는 SPM을 통해 RxSwfit를 사용해 볼 예정이다. GitHub - ReactiveX/RxSwift: Reactive Programming in SwiftReactive Programming in S..
📝 지난 글 [CS] 반응형 프로그래밍 - 1. 기본 개념🧑🏻💻 내가 반응형 프로그래밍을 공부하게 된 이유갑자기 채용공고들을 올려서 이게 뭐지 싶겠지만, 여기서 우대 사항, 참고 사항에 들어가는 내용 중에 공통으로 보이는 키워드는 반응형swift-library.tistory.com지난 글에서는 간단하게 반응형 프로그래밍의 기본 개념에 대해서 알아보았다. 이번에는 반응형 프로그래밍하면 연관 깊은 ReactiveX에 대해서 알아보고자 한다.🦐 ReactiveX 톺아보기ReactiveX(Rx, Reactive Extensions)는 마이크로소프트에서 반응형 프로그래밍을 구현하기 위해 만든 라이브러리 집합으로 2011년에 공개된 오픈소스 프로젝트이다. 그만큼 역사와 전통을 가지고 있는... 라이브러리..
🧑🏻💻 내가 반응형 프로그래밍을 공부하게 된 이유갑자기 채용공고들을 올려서 이게 뭐지 싶겠지만, 여기서 우대 사항, 참고 사항에 들어가는 내용 중에 공통으로 보이는 키워드는 반응형 프로그래밍, RxSwift가 주로 보인다. 반응형 프로그래밍에 대해서 제대로 공부해 봐야겠다는 생각이 들었던 가장 큰 이유는 필요해 보이기 때문이 컸다. 왜냐하면 신입 개발자 입장에서 반응형 프로그래밍이 최고이니 공부해 봐야겠다. 이런 식으로 판단을 내릴 수는 없다고 생각하고 위처럼 굵직한 기업들이 그 방식을 채택하고 있다면 충분히 공부할 가치가 있는 수준... 이 아니고 알아야 한다고 생각한다. 물론 기존에 Combine을 사용하면서 느낀 점은 데이터가 복잡해지고, 비동기 개념이 나오고... 변경되는 데이터 시점을 알..
데이터가 0101으로 전송된다는 것은 어렴풋이 알 고 있었지만 정확히 어떤 과정인지 짚고 넘어가 보고 싶어서 이렇게 글을 작성한다.➡️ 데이터의 전송 과정만약 A라는 데이터를 보낸다고 생각해보자.컴퓨터는 A를 보낼 수 없다. 0100 0001로 보내게 된다. 이건 ASCII 코드로 변환된 값이다.하지만 숫자를 그대로 보내진 않을 테니 위의 2진수를 전기신호로 바뀌면 아래와 같이 된다. 결국 아래와 같은 신호를 보내게 된다.하지만 위와 같은 전기신호로 보내게 되면 0이 몇 개인지 알 수가 없다. 따라서 아래와 같이 타이밍을 정해준다(클럭).이것을 전송 속도라고 한다. 단순히 이렇게 타이밍을 맞춘다고 다 해결되는 것이 아니라고 한다. Ethernet같은 경우는 클록신호와 XOR연산을 하여 만드는 맨체스터 코..
⚙️ 벨먼 포드 (Bellman-Ford) 알고리즘최단거리를 구할 수 있는 아름다운? 알고리즘이다. 이런 알고리즘은 일단 코드로 보고 어떻게 돌아가는지 아는 게 중요하다고 생각해서 바로 Pseudo code를 가져와 봤다. 위키백과 영어버전에서 가져왔다.function BellmanFord(list vertices, list edges, vertex source) is distance := list of size n // Step 1: initialize graph for each vertex v in vertices do distance[v] := inf // The distance from the source to itself is zero distanc..
다익스트라 알고리즘을 공부하다보면 나오게 되는 플로이드-워셜 알고리즘! 정말 이 알고리즘을 볼 때마다 감탄이 나오는 것 같다. [Algorithm] 다익스트라 알고리즘🕸️ 다익스트라 알고리즘그래프의 한 정점에서 모든 정점까지의 최단거리를 구하는 알고리즘이다.각 정점을 방문하면서 그 정점에 도달하는 최소값을 갱신해주는 방식이다. 다음 정점을 선swift-library.tistory.com🌐 Floyd-Warshall 플로이드-워셜 알고리즘그래프에서 가능한 모든 정점 쌍에 대해 최단 거리를 구하는 알고리즘이다. 시간복잡도는 O(V^3)이지만 모든 노드 쌍에 대해 최단 거리를 구할 수 있다. 특히 다익스트라 알고리즘은 음의 가중치를 가지는 그래프에서 쓸 수 없는데, 플로이드-워셜은 쓸 수 있다.🔥 Swi..