본문 바로가기

전체 글268

[20210924] 절차적 프로그래밍과 객체 지향 프로그래밍 절차적 프로그래밍(Procedural Programming)은 순차적으로 처리가 이뤄지는 프로그래밍 방식이다. 컴퓨터 작동 원리와 유사하여 속도가 빠르지만, 유지 보수, 디버깅이 어렵다. 데이터 중심의 프로그래밍이다. 객체 지향 프로그래밍(Object-Oriented Programming)은 실제 세계를 모델링하는 프로그래밍 방식이다. 기능별로 모듈화한다. 캡슐화, 상속, 다형성을 특징으로 한다. 코드 재사용성 높아지며 코딩이 간편하고 디버깅 쉽지만, 절차 지향보다 느리고 설계에 상대적으로 더 시간이 소요된다. 기능 중심의 프로그래밍이다. 2021. 9. 24.
[20210917] 프로세스, 스레드 차이(+ 멀티 프로세싱, 멀티 스레딩) 프로세스가 스레드보다 큰 개념이라고 할 수 있다. 프로세스(process)는 애플리케이션 그 자체이며, 컴퓨터에서 실행 중인 프로그램을 가리킨다. 여기서 프로그램은 어떤 작업을 위해 실행할 수 있는 파일을 말하며, 프로그램은 정적인 개념, 프로세스는 동적인 개념이라고 보면 된다. 스레드(thread)는 프로세스의 하부 작업 단위로서, 프로세스 내부에서 실행되는 일련의 실행 흐름이다. 이 프로세스와 스레드의 개념은 결국 멀티 프로세싱과 멀티 스레딩과 관련이 있다. 멀티 프로세싱은 하나의 애플리케이션을 여러 개의 프로세스로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다. 멀티 스레딩은 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다. 멀티 프로세싱보다.. 2021. 9. 18.
[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.
728x90