본문 바로가기

전체 글

(157)
ISMS-P 개인정보 유출 통지 비교 2023.7월 현재 시행되고 있는 법을 기준으로 작성(개정될 예정인 법 등 제외) 개인정보 유출 통지 등 비교 개인정보처리자 정보통신서비스 제공자 1. 개인정보 유출 시(인지) 정보주체에게 알려야할 사항 1) 유출된 개인정보의 항목 2) 유출된 시점과 그 경위 3) 유출로 인하여 발생할 수 있는 피해를 최소화하기 위하여 정보주체가 할 수 있는 방법 등에 관한 정보 4) 개인정보처리자의 대응조치 및 피해 구제절차 5) 정보주체에게 피해가 발생한 경우 신고 등을 접수할 수 있는 담당부서 및 연락처 1) 유출등이 된 개인정보의 항목 2) 유출등이 발생한 시점 3) 이용자가 취할 수 있는 조치 4) 정보통신서비스 제공자등의 대응 조치 5) 이용자가 상담 등을 접수할 수 있는 부서 및 연락처 2. 개인정보 유출 ..
꿈을 꾸는자 블로그05 macOS - m1에서 아이폰 앱(iOS) 설치하기 M1 맥 미니를 사용하고 있습니다. 같은 ARM 기반의 프로세서를 사용하고 있기 때문에 아이폰 앱을 설치해서 사용할 수 있는데요. 아주 반가운 소식이 아닐 수 없네요. 그래서 저도 폭풍 검색을 해서 여러 가지 방법을 알아보았는데요. 특히 iMazing을 설치한 후, 아이폰을 맥에 연결해서 iPA파일을 다운받아서 강제로 설치하는 방법이었습니다. 그런데 제가 조금 해보니까 설치가 되긴 되는데 실행이 안되는 것들도 엄청 많더라고요. 결과적으로 iMazing을 굳이 사용하지 않고 설치하는 간단한 방법이 있었습니다. 맥에서 Apple Store를 실행하면 위와 같은 화면이 뜨는데요. 로그인 한 상태라면 왼쪽 하단 빨간색 네모 박스를 클릭하게 되면 자신의 계정으로 이동하게 됩니다. 그럼 계정이란 탭이 나오고 Mac..
꿈을 꾸는자 블로그05 SwiftUI - GeometryReader(지오메트리 리더) GeometryReader는 SwiftUI에서 제공하는 여러 컨테이너 뷰 중의 하나이며, 자식 뷰에게 부모 뷰와 기기에 대한 전반적인 정보를 전달하는 역할을 합니다. 먼저 그 정의부터 살펴보고 내용을 하나씩 알아보도록 하겠습니다. GeometryReader 구조체는 View 프로토콜을 채택하고 있습니다. 그리고 제네릭으로 선언된 Content 역시 반드시 View 프로토콜을 채택해야만 한다고 강제하고 있습니다. content 프로퍼티는 그 타입이 클로저(함수 형태)인데요. 풀어서 GeometryProxy 타입의 인자를 1개 받아서 Content 타입(뷰 프로토콜을 채택하는)을 반환하는 클로저 타입입니다. 생성자에는 content 매개변수에 @ViewBuilder 속성이 선언되어 있으므로, 뷰를 전달받아 ..
꿈을 꾸는자 블로그05 SwiftUI - @State와 @Binding 알아보기 SwiftUI에서는 기본적으로 구조체에서 View프로토콜을 구현하여 View(사용자 화면)를 다룹니다. Xcode에서 프로젝트를 만들 때 SwiftUI를 선택하면 ContentView 구조체가 생성되고 여기서 뷰를 다룹니다. 그런데 이 ContentView 구조체 안에서 var 키워드로 선언한 프로퍼티의 값을 구조체 내(보통 body 프로퍼티)에서 변경하려고 하면 에러가 뜹니다. 즉, 변경할 수 없다는 것인데요. 왜 그런 것일까요? Swift의 구조체에서 mutating으로 선언되지 않은 연산 프로퍼티는 구조체 내부에서 그 값의 변경이 불가합니다. 그러면 연산 프로퍼티인 body를 mutating으로 선언해주면 될까요? 안됩니다. View 프로토콜의 body 프로퍼티는 { get } 으로 되어 있으며, ..
꿈을 꾸는자 블로그05 SwiftUI - 커스텀 버튼 스타일 만들기(ButtonStyle, PrimitiveButtonStyle) SwiftUI에서 제공하는 버튼(Button) 스타일은 2가지가 있습니다. 바로 BorderlessButtonStyle과 PlainButtonStyle인데요. 그럼 이 2가지 외의 스타일은 만들 수 없는 것일까요? 아닙니다. SwiftUI에서는 친절(?)하게 이 2가지 외에 우리가 직접 버튼 스타일을 만들 수 있도록 하고 있습니다. 그럼 어떻게 만들어야 하는지 살펴보기 전에 기존 스타일들을 어떻게 적용했었는지 살펴볼게요. 그림) 커스텀 버튼 스타일(1) 빨간 박스를 보시면, buttonStyle 수식어를 적용하면서 위에서 말씀드렸던 2가지의 스타일을 인자로 전달하고 있습니다. 즉 우리가 원하는 버튼 스타일을 만들게 되면 아래와 같이 사용하게 됩니다. 그렇다면 buttonStyle 수식어를 사용해서 우리의..
꿈을 꾸는자 블로그05 SwiftUI - ViewModifier(커스텀 뷰 수식어) 만들기 SwiftUI에서 View를 조금 더 간편하게 사용할 수 있도록 돕는 ViewModifer 프로토콜에 대해서 살펴보겠습니다. 보통 SwiftUI에서 View를 우리의 입맛대로 꾸미기 위해서 수식어를 적용합니다. 위의 그림과 같이 말이죠. 그런데, 문득 반복적으로 사용하는 뷰와 그에 따른 수식어들이 있다는 것을 느낍니다. 그때마다 똑같은 수식어들을 작성해주는 것은 코드의 양이 많아져 보기에도 좋지 않을 뿐만 아니라, 스트레스(?)를 유발하지요. 그때 바로 ViewModifer 프로토콜을 적절히 사용하면 아주 편리한데요. 그렇다면 ViewModifer 프로토콜은 어떻게 생겨먹은 물건(?)인지, 그 모습을 보면 아래의 그림과 같은데요. 보기만 해도 현기증이 나지 않나요? 아직 SwiftUI가 익숙하지 않은 분..
꿈을 꾸는자 블로그05 Swift(스위프트) - Property Wrappers(프로퍼티 래퍼) 알아보기 Swift 문법을 공부하다 보면, 또는 누군가가 작성해놓은 프로그램을 보다 보면 프로퍼티 앞에 @가 붙은 어떤 선언 속성을 접하신 적 있으시지요? 바로 그 @가 붙은 Property Wrappers에 대해서 알아보도록 하겠습니다. 보통 Property Wrappers 쉽게 코드를 재사용하거나, 반복되는 코드를 제거하기 위해 많이 사용합니다. 위 그림처럼 커스텀 Property Wrappers를 만들려면 @Property Wrappers 붙여주면 되는데요. 아래의 예제를 작성하면, 결과적으로 @StandardWeight를 프로퍼티 앞에 붙여 사용할 수 있게 됩니다. 자, 그런데 익숙하지 않은 wrappedValue 변수가 하나 있는데요. 이 변수는 커스텀 Property Wrappers를 구현할 때 필수로..
꿈을 꾸는자 블로그05 SwiftUI - Text(문자열 뷰)의 주요 수식어 살펴보기 SwiftUI의 가장 기초적인 뷰의 종류의 하나인 Text에 대해서, 또 Text의 수식어에 대해서 살펴보겠습니다. 여기서 수식어라는 것은 뷰가 가지고 있는 함수들을 일컫는 말이라고 합니다. UI를 자신이 원하는데로 꾸미기 위해서는 이 수식어들을 정확하게 알 필요가 있습니다. Text가 가지고 있는 주요 수식어들이 어떠한 역할을 하는지 차례차례 차근차근 살펴보도록 하겠습니다. 1. Text의 수식어 1.1 font는 글자의 크기, fontWeight는 글자 굵기 그림 "font 수식어" 에 Text 뷰에서 엔터 키를 친 후 .을 찍으면 여러 가지 수식어가 나오는데, 그 중에서 font를 선택합니다. 다시 괄호 안에 ,을 찍게되면 여러 가지 프로퍼티들을 선택할 수 있습니다. V로 표시된 프로퍼티들을 적용하..