본문 바로가기

분류 전체보기266

[20210916] 정렬 알고리즘 정렬을 위한 알고리즘을 정리하려고 한다. 1. 선택 정렬: 큰(작은) 키 값을 찾아 교환한다. 2. 버블 정렬: 인접한 키 값을 교환하고, 이미 정렬돼있으면 중단한다. 3. 삽입 정렬: 자신의 위치를 찾아서 삽입한다. 4. 쉘 정렬: 좀 더 개선된 삽입 정렬이다. 5. 퀵 정렬: 자료의 중갑 값을 정한 후 정렬한다. 6. 힙 정렬: 이진 트리 구조를 만들어 정렬한다. 7. 이진 병합 정렬: 두 개의 키를 한 쌍으로 정한 후 정렬한다. 8. 버킷 정렬: 기수 값에 따라 분배하여 정렬한다. 시간 복잡도(Big-O 표기법 사용) 비교 - 최선 ~ 최악을 같이 표기함 삽입 정렬 - O(n ~ n^2) 버블 정렬, 선택 정렬 - O(n^2) 쉘 정렬 - O(n ~ n^1.5) 퀵 정렬 - O(nlog₂n ~ n^.. 2021. 9. 16.
[20210915] Cookie와 Local Storage 서버에 세션 id 등 데이터 저장이 필요한 세션과 다르게 쿠키(cookie)와 로컬 스토리지(local storage)는 사용자의 컴퓨터에 데이터를 저장한다. 쿠키의 경우 사용자의 컴퓨터에 쿠키를 보낸 후 서버에 요청을 다시 보낼 때 쿠키에 데이터를 담아 보내는 식으로 동작한다. 사용자의 정보를 서비스 제공자가 볼 수 있다는 점에서 보안 문제가 발생할 수 있다. 이에 따라 웹브라우저에서 쿠키를 사용하지 않도록 설정할 수도 있으나 그러면 쿠키를 사용하는 서비스 제공자는 쿠키를 이용하지 않는 서비스를 대안으로 제공하지 않을 경우 해당 서비스를 아예 사용할 수 없게 되는 경우도 빈번하다. 한편, 쿠키의 보안 문제로부터 벗어나고 데이터를 다시 서버에 보낼 필요가 없을 경우 로컬 스토리지를 사용하면 된다. 브라우.. 2021. 9. 15.
[20210904] 인터페이스와 추상 클래스의 차이 자바에는 인터페이스(interface)와 추상 클래스(abstract class)가 존재한다. 두 가지 모두 자바의 다형성을 보여주는 객체로서 다른 클래스에게 상속(또는 구현)이 가능하다. 인터페이스와 추상 클래스의 자식 클래스는 상속받은 클래스의 추상 메서드를 구현(메서드의 블록 안에서 수행할 작업들을 코딩)하여 사용한다. 둘 다 추상 메서드를 상속하는 것이 가능해서 비슷한 역할을 한다는 생각이 들어 그 차이를 명확히 해놓기 위해 글을 적어본다. 둘의 기능을 한 마디로 표현한다면, 인터페이스는 '설계도'나 '기술 명세서', 추상 클래스는 '레퍼런스'나 '참고서'라고 할 수 있다. 인터페이스는 상수(final static인 변수)와 추상 클래스로 이뤄져 있는데, 자식 클래스에서는 상속받은(구현된) 상수를.. 2021. 9. 14.
[20210913] 객체지향 특성 - 클래스, 객체, 상속, 캡슐화, 추상화, 다형성 클래스 객체 상속 캡슐화 추상화 다형성 2021. 9. 13.
728x90