분류 전체보기 161

Keychain을 사용한 민감 정보 처리

이번 포스트에서는 비밀번호, 주민번호 등 민감 정보를 안전하게 처리할 수 있는 Keychain에 대해서 살펴보도록 하겠습니다. 우리는 기존에 데이터를 기기에 저장해두기 위해 UserDefaults를 사용하였었는데 이는 단순 데이터를 저장하기에는 문제가 없으나 비밀번호, 인증서, 개인 정보 등 민감한 정보를 저장하기에는 base-64로 인코딩해서 저장하는 것으로 충분하지 않는가? 라고 생각할 수 있겠지만 이는 보안 상 결코 안전하지 않습니다. 1. KeyChain 이란? 컴퓨터 사용자는 종종 안전하게 보관해야하는 작은 비밀을 가지고 있습니다. 예를 들어, 대부분의 사람들은 수많은 온라인 계정을 관리합니다. 각각에 대해 복잡하고 고유한 암호 (Unique Passwords)를 기억하는 것은 불가능하지만 암호..

클라이언트 2019.12.07

분산 파일 시스템 - Hadoop

이번 포스트에서는 빅 데이터 분산 처리∙분석 오픈소스 데이터 관리 플랫폼중 하나인 Hadoop에 대해 알아보도록 하겠습니다. 1. 분산 파일 시스템 (Distriuted File System) DFS (Distributed File System)는 클라이언트가 자신의 컴퓨터에 있는 것처럼 서버에 저장된 데이터에 액세스하고 처리 할 수 있는 클라이언트 / 서버 기반의 응용 프로그램입니다. 사용자가 서버의 파일에 접근하면 서버는 사용자에게 파일의 복사본을 전송합니다. 이 복사본은 데이터가 처리되는 동안 사용자의 컴퓨터에 캐시 된 후 서버로 반환됩니다. 분산 파일 시스템은 Master / Slave 구조로 되어 있는데 대략적인 구조는 아래 그림과 같습니다. 분산 파일 시스템은 NameNode, Secondar..

컴퓨터공학 2019.12.04

클라우드 컴퓨팅 기술 정리

이번 포스트에서는 클라우드 컴퓨팅에서 사용되는 기술들에 대해 살펴보도록 하겠습니다. 1. Hypervisor (하이퍼바이저) 하이퍼 바이저 (Hypervisor)는 호스트 컴퓨터에서 다수의 운영체제(Operating System)를 동시에 실행하기 위한 논리적인 플랫폼 (Logical Platform) 을 의미합니다. 이를 다른 말로 VMM (Virtual Machine Monitor) 라고도 합니다. 하이퍼 바이저 (Hypervisor)는 대표적으로 두 가지 타입으로 구분되는데 이를 Type1, Type2라고 합니다. 1) Bare Metal Hypervisor (Type 1) Bare Metal은 단어 뜻으로는 그저 맨 쇳덩이라는 뜻이지만 IT 분야에서는 어떠한 Software(소프트웨어)도 담겨있지..

컴퓨터공학 2019.12.03

클라우드 시스템 개요

이번 포스트에서는 클라우드 시스템의 개요에 대해 살펴보도록 하겠습니다. 1. 클라우드 컴퓨팅 (Cloud Computing) 클라우드 컴퓨팅은 하드웨어나 소프트웨어 등 각종 IT 자원을 직접 구축하고 운영하는 기존의 방식과는 달리 네트워크를 통해 접속하여 서비스의 형태로 이용하는 기술을 말합니다. 즉, 어떤 Software를 설치하지 않고 이용하는 것을 클라우드 컴퓨팅(Cloud Computing)이라고 합니다. 비유를 하자면, 예전에는 집집마다 자체 발전기를 구축하여 직접 전기를 생산하여 사용했었다면 현재는 큰 규모의 발전소에서 전기를 생산하여 각 건물로 전기를 공급해주는 방식을 취하고 있습니다. 그리고 전기를 사용하는 사람은 사용한 만큼의 요금을 내게 됩니다. 이것이 바로 클라우드 컴퓨팅과 동일하다고..

컴퓨터공학 2019.12.02

Swift - Error Handling (예외 처리)

이번 포스트에서는 Swift에서 예외를 정의하고 발생하는 방법에 대해 알아보도록 하겠습니다. Swift에서는 예외(Exception)를 Error라고 표현합니다. Swift에서 에러는 Error Protocol을 따르는 타입의 값으로 표현할 수 있습니다. Enum을 사용하여 예외를 정의할 수 있습니다. enum AppError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } 예외를 발생시킬 때는 아래처럼 사용할 수 있습니다. throw AppError.insufficientFunds(coinsNeeded: 4) 예외/에러 핸들링 (Exception/Error Handling) Swift에서는 ..

클라이언트 2019.11.29

Struct vs. Class에 대한 정리

이번 포스트에서는 Struct와 Class에 대하여 정리해보도록 하겠습니다. 아무 생각 없이 쓰다가 문득 이런 생각이 들 수도 있는데요 둘이 비슷한 것 같은데 왜 굳이 만들어 놓았을까? 과연 정말 비슷하면 만들어 놓았을까요? Swift에서는 Value-Type(값 타입), Reference-Type(참조 타입)을 제공하고 있습니다. JAVA에서도 이런 비슷한 이야기를 들은 적이 있을텐데 Call-By-Value, Call-By-Reference 가 그것입니다. 단순히 구조적인 차이부터 시작해서 실제 프로그램이 구동할 때 어떤 차이가 보이는지 알아보도록 하겠습니다. 차이점 1. 구조체는 Value-Type, 클래스는 Reference-Type struct Structure { var structValue ..

클라이언트 2019.11.27

Content Hugging vs. Content Compression Resistance

이번 포스트에서는 Content Hugging 속성과 Content Compression Resistance에 대해 알아보도록 하겠습니다. iOS Application을 개발하다보면 Auto Layout을 적용할 때가 있는데 여기에 Content Hugging Priority와 Content Compression Resistance Priority가 있습니다. Content Hugging : 최대 크기에 대한 제한 Content Compression Resistance : 최소 크기에 대한 제한 즉, Content Hugging은 Intrinsic Content Size를 최대 크기로 하여 제한한다는 것을 의미하고 Content Compression Resistance는 Intrinsic Content ..

클라이언트 2019.11.25

[APP] Notissu - 숭실의 모든 공지사항

2019년 11월 15일 Notissu 앱 출시 심사를 올렸다. 우리 학교의 모든 학부의 공지사항을 한 번에 볼 수 있는 어플리케이션이다. Swift 5 기반으로 구현되었으며 MVP 패턴으로 개발하였다. 조만간 ReactorKit으로 아키텍처 변환을 진행할 예정이다. 정말 정보 제공을 목적으로 한 앱이라 수익 모델 하나 없으며 개인정보를 일체 취급하지 않아 이용자가 부담 없이 사용할 수 있는 어플리케이션이라고 생각한다. 2019년 11월 17일 앱스토어 심사 승인 완료 심사가 나는 대로 스토어 링크를 걸도록 하겠다. GitHub Link (Open Source Application for iOS) https://github.com/della-padula/Notissu della-padula/Notissu..

클라이언트 2019.11.15

Notissu-개인정보취급방침

1. 개인정보의 처리 목적 (‘https://terry-some.tistory.com’이하 ‘개인사이트’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간① (‘https://terry-some.tistory.com’이하 ‘개인사이트’) 은(는) 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유․이용기간 또는 법령에 따른 개인정보 보유․이용기간 내에서 개인정보를 처리․보유합니다.② 구체적인 개인정보 처리 및 보유 기간은 다음과 같..

클라이언트 2019.11.15

[라이브러리] Elliotable - 시간표 라이브러리 개발

https://github.com/della-padula/Elliotable della-padula/Elliotable Contribute to della-padula/Elliotable development by creating an account on GitHub. github.com GitHub Star 하나씩 부탁드립니다 :) iOS 개발 시 사용할 수 있는 라이브러리를 개발하였다. 해외 대학교도 비슷하겠지만 강의 정보를 리스트(배열)로 전달해주면 해당 아이템들이 시간표에 추가되어 보여주는 라이브러리다. 선 색, 선 두께, 배경, 각 강의별 폰트 크기, 폰트 굵기, 요일 개수, 요일 구성 등 다양한 커스텀 옵션들을 제공해준다. 언어는 Swift 5.1 버전을 사용하였으며 iOS 11.0이상 버전의..

클라이언트 2019.11.04