[Algorithm] 거품 정렬 (Bubble Sort)
·
CS/자료구조 & 알고리즘
거품 정렬(Bubble Sort) 거품 정렬(Bubble Sort)은 선택 정렬(Selection Sort)과 유사한 알고리즘으로,서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않는다면 자리를 교환하면 정렬하는 알고리즘입니다. 이름의 유래로는 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 합니다.   Process(Ascending) 1. 1회전에서 첫 번째 원소와 두 번째 원소를,두 번째 원소와 세 번째 원소를,세 번째 원소와 네 번째 원소를, ...이런 식으로 (마지막-1)번째 원소와 마지막 원소를 비교하여조건에 맞지 않는다면 서로 교환합니다.  2. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동합니다.2회전에서는 맨 끝에 있는 원소는 정렬에..
[Design Pattern] 어댑터 패턴
·
CS/Design Pattern
어댑터 패턴 용도 : 클래스를 바로 사용할 수 없는 경우가 있는데 중간에서 변환 역할을 해주는 클래스가 필요할 때 사용한다.(예 : 다른 곳에서 개발했다거나, 수정할 수 없을 경우)사용 방법 : 상속호환되지 않은 인터페이스를 사용하는 클라이언트 그대로 활용 가능향후에 인터페이스가 바뀌더라도, 변경 내역은 어댑터에 캡슐화 되므로 클라이언트가 바뀔 필요가 없다. 클래스 다이어그램  아이폰의 이어폰을 생각해보자.이어폰 잭을 아이폰에 사용하려면 아이폰 특성상 잭이 맞지 않아 들어가지 않는다. 혹은 해외에 여행 가면 종종 110V를 사용할 때처럼 우리가 어댑터를 따로 구매해야 한다. 이처럼 어댑터는 필요로 하는 인터페이스로 바꿔주는 역할을 한다.  이처럼 업체에서 제공한 클래스가 기존 시스템에 맞지 않는다면?기존..
[WEB] 브라우저 동작 방법
·
CS/TIL
브라우저 주소창에 네이버를 검색한다고 가정할 때, 어떠한 과정을 거쳐 페이지가 화면에 출력되는지 알아보자. 오픈 소스 브라우저(크롬, 파이어폭스, 사파리 등)으로 접속했을 때로 정리  브라우저 주요 기능 사용자가 선택한 자원을 서버에 요청, 브라우저에 표시자원은 HTML 문서, PDF, Image 등 다양한 형태자원의 주소는 URI에 의해 정해짐 브라우저는 HTML과 CSS 명세에 따라 HTML 파일을 해석해서 표시한다.이 '명세'는 웹 표준화 기구인 W3C(World wide web Consortium)에서 정해진다 예전 브라우저들은 일부 명세에 따라 구현하고 독자적 방법으로 확장했다.결국 심각한 호환성 문제가 발생해서 요즘은 대부분 모두 표준 명세 W3C를 따른다. 브라우저가 가진 인터페이스는 보통 ..
[Design Pattern] 디자인 패턴 개요
·
CS/Design Pattern
디자인 패턴 디자인 패턴이란 일종의 설계 기법이며, 설계 방법이다. 디자인 패턴 목적 SW 재사용성, 호환성, 유지 보수성을 보장. 디자인 패턴의 특징 디자인 패턴은 아이디어이며 특정한 구현이 아니다.프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용이나 호환성, 유지 보수 시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것이다. 디자인 패턴의 원칙 - SOLID(객체지향 설계 원칙) i. Single Responsibility Principle하나의 클래스는 하나의 역할만 해야 한다. ii. Open - Close Principle확장 (상속)에는 열려있고, 수정에는 닫혀 있어야 한다. iii. Liskov Substitution Principle자식이 부모의 자리에 항상 교체될 수 있..
[Database] Key
·
CS/TIL
Database Key Key란 검색이나 정렬 시 튜플(Tuple)을 구분할 수 있는 기준이 되는 속성(Attribute)이다 1. Candidate Key(후보키)Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합. (기본키로 사용할 수 있는 속성들) 후보키는 2가지 조건을 만족해야만 한다.유일성 : Key로 하나의 Tuple을 유일하게 식별할 수 있음최소성 : 꼭 필요한 속성으로만 구성 2. Primary Key(기본키)후보키 중 선택한 Main Key를 말한다. 기본키의 특징- Null 값을 가질 수 없다.- 동일한 값이 중복될 수 없다.  3. Alternate Key (대체키)후보키 중 기본키를 제외한 나머지 키로 보조키라고도 한다. 4. Super Key(슈퍼키)유일성은 만족하지만..