본문 바로가기

전체 글282

[DB - 데이터베이스 개론] Chapter 04. 데이터 모델링 목차 01. 데이터 모델링과 데이터 모델의 개념 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정을 데이터 모델링(data modeling)이라 한다. 하지만 현실 세계에 존재하는 엄청난 양의 데이터를 데이터베이스에 옮기는 것은 쉽지 않다. 데이터베이스에 저장하여 관리할 만한 가치가 있는 중요 데이터를 찾아내는 것을 추상화(abstraction)라고 한다. 현실 세계에서 대상에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업을 개념적 모델링(conceptual modeling)이라고 한다. 그리고 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업을 논리적 모델링(logical modeling)이라 한다. 데이터 모델링을 쉽게 할 수 있도록.. 2022. 1. 17.
[DB - 데이터베이스 개론] Chapter 03. 데이터베이스 시스템 목차 01. 데이터베이스 시스템의 정의 데이터베이스 : 데이터를 저장해두는 곳 데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할을 한다 데이터베이스 시스템 : 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템 02. 데이터베이스의 구조 1. 스키마(schema) 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이 인스턴스(instance)다. 보통 스키마는 한번 정의되면 자주 변경되지 않지만, 인스턴스는 계속 변하는 특성이 있다. 2. 3단계 데이터베이스 구조 2.1 3단계 데이터베이스 구조의 개념 3단계 데이터베이스 구조는 하나의 데이터베이스.. 2022. 1. 15.
[고득점 Kit(스택/큐)] 기능개발 (Swift, Python) 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 입력으로 주어진 progresses를 순차적으로 탐색하며 작업 진도가 얼마나 남았는지를 체크한다. 현재 작업을 배포하기 위해서 며칠이 필요한가를 체크하고 다음 작업이 해당 일 수만큼 작업했을 때 배포가 가능한지 체크한다. 배포가 불가능한 작업을 만날때까지 카운트를 하고 불가능한 작업을 만나면 다시 새롭게 위 과정을 반복한다. 코드 [Swift] import Foundation func solution(_ progresses:[Int], _ speed.. 2022. 1. 15.
[DB - 데이터베이스 개론] Chapter 02. 데이터베이스 관리 시스템 목차 01. 데이터베이스 관리 시스템의 등장 배경 과거에는 데이터를 관리하기 위해 파일 시스템(file system)이라는 소프트웨어를 이용하였다. 필요한 데이터를 별도의 파일로 관리하는데 별도의 구매 비용이 들지 않는다는 장점이 있지만 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 다음과 같은 문제가 발생한다. 같은 내용의 데이터가 여러 파일에 중복 저장된다. -> 데이터가 중복되면 저장 공간이 낭비될 뿐 아니라 데이터 일광성과 데이터 무결성을 유지하기가 어렵다. 응용 프로그램이 데이터 파일에 종속적이다. -> 사용하는 파일의 구조가 변경되면 응용 프로그램도 함께 변경해야 한다. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다. 응용 프로그램을 개발하기 쉽지 않다. 02. 데이터베이스.. 2022. 1. 15.
[iOS] Firebase를 활용한 로그인 Firebase란? 모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API등 모든 것을 개발해야 한다. 하지만 모바일 서버는 이런 모든 것을 구성하는데 구성하는 범위가 매번 새로운 앱들과 차이 나지 않기 때문에 리눅스를 설치하고, FTP를 설치하고, 데이터베이스를 설치하는 등 이런 반복적인 작업을 앱을 개발 할 때마다 하는 것은 엄청난 시간낭비라고 볼 수 있다. Firebase는 이 모든 플랫폼을 프로젝트 구축 시 자동적으로 만들어 준다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요도 없고 개발하는 동안에는 서버를 구입할 필요도 없다. Firebase에는 인증, 데이터베이스, 스토리지, 원격 구성, 푸시 알람등의 대표적인 기능이 있는데 .. 2022. 1. 13.
[DB - 데이터베이스 개론] Chapter 01. 데이터베이스 기본 개념 목차 01. 데이터베이스의 필요성 1. 데이터와 정보 정보와 데이터는 명확히 구별해야 되는 개념이다. 데이터(data) : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실(fact)이나 값(value)으로, 자료라고도 한다. 정보(information) : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물 데이터에서 정보를 추출하는 과정 또는 방법을 정보 처리(information processing)라 한다. 즉, 정보 처리는 데이터를 상황에 맞게 분석하거나 해석하여 데이터 간의 의미 관계를 파악하는 것이다. 2. 정보 시스템과 데이터베이스 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 의사 결정이 필요할 때 처리하여 유용한 정보를 만들어주는 수단을 정보 시스.. 2022. 1. 12.
[LeetCode] 611. Valid Triangle Number (Swift, Python) Valid Triangle Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 먼저 삼각형을 만들기 위해서는 가장 긴 변의 길이가 나머지 두 변의 합보다 작아야 한다. 즉, 가장 긴 변을 c라고 하고 나머지 변들을 a, b라고 한다면 a + b > c를 만족해야만 삼각형을 만들 수 있는 것이다. 입력으로 주어진 nums를 오름차순으로 정렬해주고 for문으로 배열의 인덱스 2부터 끝까지 진행한다. for문에서 선택되는 변은 c에 해당하고 나머지 두.. 2022. 1. 11.
[iOS] URLSession을 사용한 통신 URLSession은 iOS 앱 통신에서 서버와의 데이터 교류를 위해서 사용되는 API이다. URLSession은 HTTP를 포함한 몇 가지 프로토콜을 지원하고, 인증, 쿠키 관리, 캐시 관리 등을 지원한다. 기본적으로 request, response 구조를 가지고 있다. URLSessionConfiguration URL 세션에 대한 동작 및 정책을 정의하는 객체이다. Configuration을 생성할 때는 URLSession 정책에 따라 default, ephemeral, backgorund 3가지 형태로 생성할 수 있다. default : 기본적인 session으로 디스크 기반 캐싱을 지원한다. ephemeral : 어떠한 데이터도 저장하지 않는 형태의 세션이다. 쿠키나 캐시를 저장하지 않는 정책을 .. 2022. 1. 11.
[iOS] DispatchSourceTimer를 사용한 타이머 타이머를 기반으로 이벤트 핸들러 블록을 제출하는 디스패치 소스 protocol DispatchSourceTimer DispatchSourceTimer를 사용할 때 사용자는 자신의 객체에 이 프로토콜을 직접 채택하지 않아도 된다. 대신 makeTimerSource(flags:queue:) 메서드를 사용하여 이 프로토콜을 채택하는 객체를 만든다. DispatchSource.makeTimerSource(flags:queue:) 타이머 이벤트를 모니터링 하기 위한 새 디스패치 소스 객체를 만든다. class func makeTimerSource(flags: DispatchSource.TimerFlags = [], queue: DispatchQueue? = nil) -> DispatchSourceTimer [fl.. 2022. 1. 11.