반응형

전체 글 229

[웹서버, NginX] NGINX 쿡북

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 서버 배포를 할 때에 초기 세팅을 하는 부분이 가장 어려운 점인데, 그 부분을 1챕터에서 잘 설명해주는 것이 좋았습니다. 그리고 책에 NGINX에 대한 기능을 다 넣다보니, 책에서 설명하는 기능 중 하나가 어디에 쓰이는 것인지 잘 모를 수가 있는데, 문제 - 해결- 논의 단계로 설명해주는 글이 있어서 기능을 어디서 어떻게 활용하고 쓰이는지 알 수 있었습니다. 예를 들면 문제 - 사용자 반응을 보기 위해 버전이 두개 이상인 파일로 분기 해결 - 사용자 요청을 지정된 비율에 따라 분기하여 전달 (자세한 설명) 논의 - A/B 테스트는 전환율을 측정하는데 유용 (자세한 설명) 예시를 들며, NGINX에 대해 처음 접하는 독자도 기능이 어디에 활용될..

iOS/책 2023.02.10

[iOS, Swift] Swift 문법 compactMap 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. nil 값을 가질 수 있는 객체를 뜻하는 Optional은 값을 감싸고 있는 객체입니다.compactMap은 이러한 감싸고 있는 객체를 제거하고 평평하게 (flatMap으로 쓰였으나, 스위프트 4버전 이후로 compactMap으로 불립니다.) 만든 후 컨테이너로 감싸주는 역할을 합니다. let optionalIntArray = [Optional(1), Optional(2), nil, Optional(3)] let result = optionalIntArray.compactMap({$0}) print(result) // [1, 2, 3]

iOS/문법 2023.02.09

[iOS, Swift] Swift 문법 Reduce 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. 컨테이너에서 사용할 수 있는 Reduce 함수는 두가지 종류가 있습니다. initialResult와 nextPartialResult를 쓰는 함수는 초기값이 initialResult에 들어가고 nextPartialResult에 값이 업데이트 되는 함수입니다. let sum1 = [1, 2, 3].reduce(0) { partialResult, next in // partialResult = 0, next = 1 // partialResult = 1, next = 2 // partialResult = 3, next = 3 return partialResult + next } 결과로는 sum1 변수에 6이 저장됩니다. i..

iOS/문법 2023.02.07

[iOS, Swift] UIRefreshControl 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. UIRefreshControl은 UIScrollView를 상속받는 곳에 사용이 가능합니다. 테이블뷰와 콜렉션뷰에서도 사용가능합니다. 이 컨트롤을 추가하면 사용자는 일반적으로 새로고침하는 것 같은 느낌을 줍니다. scroll 가능한 공간을 아래로 내릴때, refresh 화면을 띄어줍니다. var refreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self tableView.refreshControl = refreshControl r..

iOS/코드조각 2023.02.05

[Library, Metal] vertex를 index로 메모리 절약하기

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 기존에 삼각형을 그리려면 변수를 저장하여야하는데, 수많은 삼각형을 그리게 되면, 겹치는 꼭지점이 무수히 많아 메모리가 낭비될 것입니다. 그리하여 겹치는 부분은 제거하고 같은 꼭지점은 index로 접근하는 방법이 있습니다. let vertices: [Float] = [ -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0 ] let indices: [UInt16] = [ 0, 1, 2, 2, 3, 0 ] indices에서 첫번째 줄 0, 1, 2는 vertices[0], vertices[1], vertice[2]의 지점을 사용한다는 의미입니다. indices 두번째 줄 2, 3, 0은 vert..

iOS/라이브러리 2023.02.03

[Library, Metal] 삼각형 그리기 (pipeline)

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 삼각형의 좌표를 저장하는 [Float] 배열을 만들고, 삼각형의 좌표를 구성하는 Buffer를 생성합니다. let vertices: [Float] = [ 0, 1, 0, -1, -1, 0, 1, -1, 0 ] let vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout.size) Shader Function은 GPU를 돌리기 위한 작은 프로그램입니다. Shader Function을 작성하기 위하여 Metal Shading Laungage(MSL)을 사용해야합니다. MSL은 C++로 구성되어 있습니다. .m..

iOS/라이브러리 2023.02.03
반응형