전체 글 88

[Swift] 구조체(struct)와 클래스(class)의 차이 정리

구조체와 클래스의 정의 및 구문 Swift에서 구조체와 클래스 모두 사용하여 사용자 정의 데이터 유형을 정의할 수 있습니다. 구조체를 정의하는 구문은 다음과 같습니다: struct MyStruct { // properties and methods } 클래스를 정의하는 구문은 유사합니다: class MyClass { // properties and methods } Reference vs Value Type 구조체와 클래스의 가장 중요한 차이점 중 하나는 메모리 처리 방식입니다. 구조체는 값 유형이므로 구조체 인스턴스를 만들 때 복사됩니다. 이는 각 구조체 인스턴스가 데이터의 자체 복사본을 갖게 되어 한 인스턴스의 수정이 다른 인스턴스에 영향을 미치지 않는다는 것을 의미합니다. 반면에 클래스는 참조 유형입..

iOS/Swift 2023.03.01

WCSession / WCSessionDelegate 정리

WCSession은 WatchConnectivity 프레임워크에서 제공하는 클래스로, iOS 앱과 Apple Watch에서 실행되는 watchOS 앱 간의 통신을 가능하게 합니다. 이 클래스는 두 기기 간에 데이터를 주고받을 수 있는 메서드와 통신 세션의 상태를 관리하는 메서드를 제공합니다. WCSessionDelegate는 iOS 앱과 watchOS 앱 간의 통신 세션과 관련된 이벤트를 처리할 수 있는 메서드를 정의하는 프로토콜입니다. 이 프로토콜의 메서드는 WCSession 객체에 의해 호출되며, 세션이 활성화되거나 비활성화되거나, 메시지를 수신하는 등의 이벤트에 대응합니다. WCSession의 주요 메서드 activate() iOS 앱과 watchOS 앱 간의 세션을 활성화합니다. 데이터를 보내거나..

iOS/Swift 2023.02.28

UIScrollView / UIScrollViewDelegate 정리

UIScrollView UIScrollView는 iOS에서 화면의 표시 영역보다 큰 콘텐츠를 스크롤하여 볼 수 있게 해주는 뷰입니다. UIScrollView는 UIView의 하위 클래스이며, 수직 또는 수평으로 콘텐츠를 스크롤하고 콘텐츠를 확대하거나 축소하는 인터페이스를 제공합니다. UIScrollView의 중요 프로퍼티 contentOffset: 이 속성은 현재 보이는 콘텐츠의 위치를 스크롤 뷰의 원점에 상대적으로 지정합니다. 이것은 콘텐츠의 x와 y 오프셋을 나타내는 CGPoint 값입니다. 이 속성을 사용하여 콘텐츠를 프로그래밍 방식으로 스크롤하거나 동적 효과를 위해 다른 뷰에 바인딩할 수 있습니다. contentSize: 이 속성은 스크롤 뷰 내에서 스크롤 가능한 콘텐츠 영역의 크기를 지정합니다...

UICollectionView 섹션에 배경 색상을 적용하기

UICollectionView는 iOS 앱에서 데이터를 표시하는 데 자주 사용되는 컴포넌트 중 하나입니다. UICollectionView의 각 셀은 일반적으로 특정 데이터 항목을 나타내며, 해당 셀의 배경 색상을 지정할 수 있습니다. 그러나 UICollectionView의 섹션에 배경 색상을 적용하는 것은 조금 더 복잡합니다. 이번 글에서는 UICollectionView의 섹션에 직접 배경 색상을 적용하는 방법에 대해 알아보겠습니다. willDisplay(_:forItemAt:)에서 셀에 직접 backgroundColor 주입 UICollectionViewDelegate의 willDisplay(_:forItemAt:) 메서드를 사용하여 셀이 표시될 때마다 해당 셀의 배경 색상을 설정할 수 있습니다. 이 ..

iOS/Swift 2023.02.23

클레이튼(Klaytn) 네트워크란 무엇인가

클레이튼(Klaytn)은 대한민국의 블록체인 기술 기업인 Ground X(그라운드엑스)가 개발한 고성능 엔터프라이즈 블록체인 플랫폼이다. 클레이튼은 기존의 블록체인에서 발생하는 문제점들을 해결하고자 개발되었으며, 기업의 블록체인 적용을 쉽게 하기 위한 다양한 도구들을 제공한다. 클레이튼 네트워크는 기존의 블록체인과 달리, 합의 알고리즘에 PoA(Proof of Authority)와 PoS(Proof of Stake)를 혼합한 새로운 합의 알고리즘을 채택하였다. 이러한 합의 알고리즘은 블록생성 속도가 빠르고 안정적인 거래를 보장한다는 장점이 있다. 클레이튼은 기업들이 블록체인 기술을 적용하기 쉽게 하기 위해 다양한 도구들을 제공한다. 클레이튼 베이직(Klaytn Basic)은 블록체인 기반으로 서비스를 개..

Etc./Block Chain 2023.02.23

PoW와 PoS에 대한 공부

블록체인 기술에서는 분산된 컴퓨터들 간의 합의를 이루기 위한 합의 알고리즘으로 Proof of Work(PoW)와 Proof of Stake(PoS)를 사용한다. 이 두 합의 알고리즘은 블록체인 기술에서 중요한 역할을 하며, 블록체인의 보안성과 효율성을 높이는 데에 기여한다. Proof of Work (PoW)는 가장 먼저 비트코인에서 사용되었으며, 블록체인에서 가장 보편적으로 사용되는 합의 알고리즘 중 하나이다. PoW는 컴퓨팅 자원을 사용하여 새로운 블록을 생성하고 블록체인에 추가할 수 있는 권한을 얻을 수 있다. 이를 위해 채굴자들은 높은 수준의 컴퓨팅 파워를 사용하여 암호 해싱 문제를 해결한다. 이 과정에서 체인에 참여한 노드들은 매우 많은 계산 작업을 수행하게 되므로 블록체인 전체 시스템의 보안..

Etc./Block Chain 2023.02.23

[Swift] Opaque Types 찍어먹기

doc: https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html Opaque Types Opaque Types을 사용한 fuction이나 method는 리턴되는 값의 타입에 대한 정보를 숨기는 타입으로 반환된다. 함수의 반환 타입으로 구체적인 타입을 제공하지 않고, 반환 값이 채택하는 프로토콜로 묘사된다. 프로토콜 타입을 반환하는 것과 다르게 Opaque Types은 타입 정보를 보존한다. => 컴파일러는 타입 정보에 접근할 수 있지만, 모듈의 클라이언트는 그렇지 않다. Opaque Type을 사용하지 않을 시 protocol Weapon { func attack() } struct NoTypeWeapon: Weapon { func attack..

iOS/Swift 2022.02.16

[UIKit] draw(_:) 개발문서 번역

Instance Method - draw(_:) 전달된 직사각형(rect) 내에 리시버들의 이미지를 그린다. Declaration func draw(_ rect: CGRect) Parameters rect 뷰들 bounds 중 업데이트가 필요한 부분 이다. 처음 뷰를 그릴 때 이 rect는 일반적으로 뷰의 전체 visible bounds 이다. 하지만, 이후 그리기 작업 중에는 , rect가 뷰의 일부만 지정될 수 있다. Discusstion 이 메서드의 기본 구현은 아무 동작도 없다. Core Graphics와 UIKit과 같은 기술을 사용하여 자신의 콘텐츠를 그리는 서브클래스는 이 메서드를 오버라이드 하고 해당 서브뷰의 draw 코드를 구현해야 한다. 너의 뷰(UIVIew의 서브클래스)가 다른 방법으..

[UIKit] UIResponder 개발문서 번역

UIResponder 이벤트에 응답하고 처리하기 위한 추상 인터페이스 Declaration class UIResponder : NSObject Overview 리스폰더* 객체(UIResponder의 객체)는 UIKit 앱의 이벤트 처리 뼈대를 구성한다. UIApplication 객체, UIViewController 객체 및 모든 UIView 객체(UIWinow 포함)를 비롯한 많은 주요 객체도 리스폰더 객체이다. 이벤트가 발생하면 UIKIT은 해당 이벤트를 앱의 responder 객체로 보내서 처리한다. *리스폰더 - 한국 말로 표현하자면 "응답자" 혹은 "응답 대상"이 가장 적절할 것 같다. 이벤트에는 터치 이벤트, 모션 이벤트, 원격 제어 이벤트 및 프레스 이벤트를 포함한 여러 종류의 이벤트가 있다...

[UIKit] cancelInteractiveMovement 개발문서 번역

cancelInteractiveMovement() 대화형(interactive) 이동 추적을 종료하고 아이템의 원래 포지션으로 되돌린다. -> 여기서 원래의 포지션은 마지막으로 이동을 완료한 좌표이기도 하다. Declaration func cancelInteractiveMovement() Discussion 아이템의 이동을 추적하는것을 취소(종료) 하고, 원래의 위치로 되돌리기 위해 이 메서드를 호출한다. 예를들어, gesture recognizer를 사용하여 상호 작용을 추적할 때, 제스처가 취소(종료)되는 시점에 이 메서드를 호출하면 된다. 해당 메서드를 호출하면, 컬렉션 뷰에서 추적하던 프로세스를 종료하고, 아이템을 원래 위치로 반환할 수 있다.