안녕하세요 Pingu입니다.🐧 지난 글에서는 관계형 DB를 사용할 대 사용하는 SQL 문법에 대해서 간단하게 알아봤었는데요, 이번 글에서는 데이터 베이스를 구성할 때 필요한 기본키와 외래 키에 대해서 알아보려고 합니다. 후보 키 (Alternative Key) 테이블에서 튜플을 유일하게 식별할 수 있는 최소한의 컬럼들의 집합입니다. 기본키가 될 수 있는 후보들이며 유일성, 최소성을 동시에 만족해야 합니다. 학번 학과 이름 전화번호 140001 소프트웨어학과 Pingu 01012345678 150001 경제학과 Pinga 01023456789 150002 통계학과 Roby 01034567890 160001 소프트웨어학과 Pingu 01045678901 위와 같은 테이블이 존재할 때 (학번 + 학과) 조합은..
안녕하세요 Pingu입니다.🐧 지난 글에 이어 오늘도 Object Oriented Programming, OOP라고 불리는 객체 지향의 기본 개념에 대해서 알아보려고 합니다. 위키피디아의 객체 지향의 특징에는 크게 8가지가 존재합니다. 비 객체지향 언어의 개념을 포함 객체와 클래스 클래스 기반 vs 프로토타입 기반 동적 Dispatch, Message Passing 캡슐화 상속, 델리게이션 다형성 재귀 지난 글에서 1~4까지를 정리했으니 이번 글에서는 5~8을 정리해보도록 하겠습니다. 글에서 사용되는 예제의 언어는 Swift를 사용합니다. 캡슐화 (Encapsulation) 캡슐화는 객체 지향 프로그래밍에서 객체의 프로퍼티와 메서드를 묶고 구현의 일부를 외부에 감추는 개념입니다. Swift에는 외부의 접..
안녕하세요 Pingu입니다.🐧 지난 글에서는 데이터 베이스의 역사와 관계형 DB에 대해 알아봤는데요, 지난 글에 이어 이번 글에서는 SQL(Structed Query Language)로 관계형 데이터 베이스의 데이터를 사용해보려고 합니다. 깊게 보려는 의도는 아니고 간단하게 학교에서 배운 내용의 기억을 되살리는 용도로 글을 쓰려고 합니다. 이번 글에서 사용할 데이터는 dev.mysql.com/doc/index-other.html 여기에서 받으실 수 있어요~ SELECT SELECT FROM WHERE SELECT는 위와 같은 방식으로 사용할 수 있는 문법입니다. 목적은 "하나 또는 그 이상의 테이블에서 데이터를 추출하는 SQL의 데이터 조작 언어(DML) 중 하나입니다. 위의 코드를 보면 SELECT와 ..
안녕하세요 Pingu입니다.🐧 오늘부터 대학교 2학년 때 배운 이후로 따로 공부한 적이 없어서 기억이 가물가물한 Data Base에 대해 알아보려고 합니다. 오늘은 그중에서도 데이터 베이스의 탄생 배경을 알아보려고 합니다. 당시 공부했던 자료로 공부하니 기억이 조금씩 나는 거 같아요. 파일 시스템의 한계 데이터 베이스가 등장하기 이전에는 컴퓨터에서 데이터를 저장하기 위해 파일 시스템을 사용했습니다. EXT4, FAT 등과 같이 여러가지 파일 시스템이 지금도 존재하는데요, 이렇게 파일 시스템으로 데이터를 저장하다 보면 아래와 같은 문제점이 발생했었습니다. 데이터 종속성 (Data Dependency) 데이터를 사용하는 프로그램의 구조가 데이터 구조의 영향을 받는다는 것을 말합니다. 이러한 데이터 종속성은 ..
안녕하세요 Pingu입니다.🐧 오늘은 Object Oriented Programming, OOP라고 불리는 객체 지향의 기본 개념에 대해서 알아보려고 합니다. 위키피디아의 객체 지향의 특징에는 크게 8가지가 존재합니다. 비 객체지향 언어의 개념을 포함 객체와 클래스 클래스 기반 vs 프로토타입 기반 동적 Dispatch, Message Passing 캡슐화 상속, 델리게이션 다형성 재귀 이번 글에서는 1~4까지를 정리하고 다음 글에서 5~8까지 정리할 계획이며 글에서 사용되는 예제의 언어는 Swift를 사용합니다. 객체지향 프로그래밍이란? 그럼 일단 객체지향 프로그래밍이 뭔지에 대해서 알아보겠습니다. 초기 프로그래밍은 절차 지향 프로그래밍이었습니다. 즉 어떠한 문제를 해결하는 순서대로 프로그래밍을 해야 ..
안녕하세요 Pingu입니다.🐧 오늘은 HTTP 통신을 할 때 사용하는 TCP/IP 통신에서 신뢰할 수 있는 통신을 위해 커넥션을 맺게 되는데 커넥션이 뭔지, 어떻게 맺게 되는지, TCP 커넥션에 의한 성능 저하 원인에 대해 알아보려고 합니다! TCP 커넥션 먼저 TCP 커넥션을 사용하는 상황을 보며 언제 필요한지 알아보겠습니다. 예를 들어 icksw.tistory.com 라는 URL에 접속한다고 생각해보겠습니다. 이때 브라우저(클라이언트)와 서버에서 발생하는 일은 아래와 같습니다. 브라우저가 icksw.tistory.com라는 호스트 명을 추출한다. 브라우저가 호스트 명에 대한 IP주소를 찾는다. 브라우저가 포트 번호(80)를 얻는다. 브라우저가 아까 찾은 IP의 80 포트로 TCP 커넥션을 생성한다. ..
안녕하세요 Pingu입니다.🐧 저난 글에서는 파일 시스템 중 Log-Structed File System(LFS)에 대해 알아봤었는데요, 이번 글에서는 요즘 많이 사용하는 Flash 기반 SSD에 대해 알아보려고 합니다! Flash 기반 SSD에는 LFS의 아이디어를 사용한다고 하는데요, 요즘 많이 사용하니까 좀 더 궁금하기도 하고 빨리 알아보도록 하겠습니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 44 - Flash-based SSDs 부분 입니다! Flash-based SSDs 하드 디스크 드라이브만을 사용하다가 최근 새로운 형태의 저장 장치가 생겨났죠? 바로 Solid States Storage device(SSD)라고 하는 장치인데요, 하드 드라이브와는 다르게 데이터를 ..
안녕하세요 Pingu입니다.🐧 지난 글에서는 파일 시스템의 Consistency(일관성)을 위한 FSCK, Journaling과 같은 방법들에 대해 알아봤었습니다. 이번 글에서는 또 하나의 파일 시스템에 대해 알아볼 예정인데요, 바로 Log-structed File System(LFS)입니다. 제가 공부할 때 참고하고 있는 책인 OSTEP에서는 Chapter 43 - Log-Structed File System(LFS) 부분입니다! Log-structured File Systems 1990년대 초 Ousterhout 교수님과 Mendel Rosenblum이라는 대학원생이 Log-structed File System이라는 새로운 파일 시스템을 개발하게 되는데요, 새로운 파일 시스템을 만든 이유는 무엇일까요..
- Total
- Today
- Yesterday
- 테이블뷰
- operator
- OSTEP
- dfs
- 코딩테스트
- 앱개발
- OS
- mac
- BFS
- 자료구조
- Apple
- 백준
- 아이폰
- 동시성
- 스위프트
- 문법
- operating
- Swift
- 코테
- IOS
- System
- design
- Xcode
- document
- pattern
- 프로그래밍
- Combine
- Publisher
- 알고리즘
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |