import Combine import Foundation import MessageUI import SwiftUI struct EmailSender: UIViewControllerRepresentable { @Environment(\.presentationMode) var presentationMode func makeUIViewController(context: Context) -> MFMailComposeViewController { let mail = MFMailComposeViewController() let contents = """ // TODO: body 채우기 """ mail.setSubject("제목제목") mail.setToRecipients(["abcde@naver.com"]) ma..
summerofcode.withgoogle.com Google Summer of Code summerofcode.withgoogle.com projects.apache.org Apache Projects Directory Welcome to the Apache Projects Directory This site is a catalog of Apache Software Foundation projects. It is designed to help you find specific projects that meet your interests and to gain a broader understanding of the wide variety of work currently und projects.apache.o..
중앙대학교 소프트웨어대학 김효수교수님의 "오픈소스SW프로젝트(Opensource SW Project)" 과목을 듣는 과정에서 작성한 포스트입니다. Linux가 GNU GPL v3이어서, 그 위에서 만들어진 레드햇 등 OS들도 전부다 (강제로) 소스 공개를 하고 있다... glibc를 사용한 c코드들도 무조건 공개하는것을 피하기 위해서 LGPL이 생겼다. Apache는 조건도 완화되어 있다. 법적 책임, 보증 X 하지만 Trademark는 보장된다. 다른 사람은 TensorFlow, Android라는 이름을 사용할 수 없다. 하지만 이 코드를 가지고 다른 OS등을 만드는것도 가능하다. 학술적으로 주로 MIT를 자주 사용한다. 특허로 사용할 수 없기 때문에 학술적인 용도로 많이 사용된다. 꼭 어떤 라이센스를..
중앙대학교 소프트웨어대학 김성권교수님의 "정보보호이론(Information Security Theory)" 과목을 듣는 과정에서 작성한 포스트입니다. DES는 Data Encryption Standard의 줄임말로, 현대 대칭키 블록 암호중 하나이다. 1973년 NIST 미국 표준 대칭키 암호 공모를 통해 탄생했으며, IBM의 Lucifer였는데 DES로 이름이 바뀌었다 .1975년 미국 표준이 되었고 현재는 표준은 아니지만 자주 사용된다. 대칭키 암호(Symmetric key)란 암호문을 생성(암호화)할 때 사용하는 키와 암호문으로부터 평문을 복원할 때 사용하는 키가 동일한 암호 시스템이다. * confusion, diffusion이라는 성질을 만족시키기 위해 Feistel(피스텔)암호를 어떻게 사용했..
sceneDelegate에서 받아와서, public으로 저장하고 쓰고 있당 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. // This ..
처음에는 간단하게 if date < Date() { return false } else { return true } 이렇게 하면 될거라고 생각했는데 아니다. 왜냐면 Date()형은 시분초 정보도 갖고 있기 때문 오늘과 같을 때에는 예외처리를 해줘야 한다. let now = Date() if date.toYYYYDotString() == now.toYYYYDotString() { return true } else if date < Date() { return false } else { return true }
SwiftUI에서 기존의 UITextView같은 역할을 하는 TextEditor!! 근데 10년이 지난 지금도 역시나 TextEditor에 Placeholder는 없다...애플 대체 뭐함?????????? import SwiftUI struct ContentView: View { @State private var text = "Hello world" var body: some View { TextEditor(text: $text) } } 구현은 매우 간단하다. 나처럼 Placeholder가 필요한 사람은.. @State var placeholderText: String = "여행 꿀팁을 입력해주세요" @State var content: String = "" ZStack { if self.content.i..