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