1일 1cs
[2일째] 디자인 패턴
디자인 패턴은 무엇인가? 우리가 프로그램을 만들때 무작정 만들지는 않는다. 말 그대로 프로그램을 어떻게 효율적으로 만들지 설계하는 것이다. 설계 방법에는 여러가지가 있는데 기본적인것과 주된 내용을 소개한다. 먼저 디자인 패턴에는 - 창조적 - 구조적 - 행동 기타 등등 패턴들이 존재한다.이중 가장 널리 사용되는 생성 패턴중 하나는 싱글톤 패턴이다. 이 패턴을 사용하면 클래스에 인스턴스가 하나만 있는지 확인하는 동시에 해당 인스턴스에 글로벌 접근 지점을 제공할 수있다. 싱글턴 패턴은 구성 관리자, 로깅 기능 또는 데이터베이스 연결과 같은 단일 공유 리소스가 필요할 때 유용하다. 대부분의 프로그래밍 언어에서 싱글턴 클래스를 만들려면 생성자를 비공개로 설정하고 싱글턴 인스턴스를 반환하는 정적 메서드를 제공해야..
[1일] 데이터 구조.
이해를 돕기 위한 사진자료는 잘 넣지 않을 예정이다. 넣으면 물론 좋긴 하겠지만 찾는데 시간이 많이 걸리고 포스팅에 비효율적이다. 그래서 최대한 담백하게 쓸 예정이다. 데이터 구조는 일단 컴퓨터의 메모리에 데이터를 구성하고 저장하는 방법을 말한다. 데이터에 대한 효율적인 접근과 수정이 가능하도록 설계되었고 이는 데이터 삽입, 삭제 및 검색과 같은 다양한 작업을 지원하는데 사용한다. 아래는 익히 우리가 항상 배웠던 내용들이다. 1. 배열 배열은 동일한 유형의 고정된 수의 요소를 저장하는 연속된 메모리 블록이다. 배열은 데이터를 순차적으로 저장하고 접근하는데 유용하나 배열의 모든 후속 요소를 이동해야하기 때문에 요소를 삽입하거나 삭제하는데는 효율적이지 않다. (이 내용은 링크드 리스트를 배울때 자세하게 할 ..
SQL의 종류
SQL? 데이터베이스에서 데이터를 정의하고 조작하기 위한 표준화된 언어. SQL을 알기위해선 몇가지를 더 알아야 하는데 그것은 database, DBMS, SQL이다. 먼저 데이터베이스라는 것은 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 OR 데이터의 체계적인 집합을 의미한다. 그리고 DBMS는 DataBase Management System의 약자로 말 그대로 데이터 베이스 관리 시스템이란 말이다. 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고 데이터베이스를 관리해 주는 소프트웨어다. SQL을 더 자세하게 파보면 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어라고 보면 된다. SQL도 언어란 소리다. 관계형 데이터베이..
HTTP vs HTTPS
HTTP 🤔 예전에 어디선가 보안 문제로 인해 http대신 https로 되어있는 곳을 사용하란 이야기를 들은 적이 있었다. 아무 것도 몰랐을때는 단순 's'이 한글자 차이여서 뭐가 다른 건지 제대로는 몰랐다. 이제 제대로 한번 알아보자. 먼저 HTTP는 Hyper Text Transfer Protocol 이란 약자로 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜. 이라고 한다. 그러니까 HTTP는 인터넷에서 통신규약으로 80번 포트를 사용하고 있다. CORS에서 소개된 포트 내용. 그러니까 HTTP 서버가 80번 포트에서 요청을 기다리고 있고 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP의 구조 🏤 HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP..
스택(Stack)2개로 큐(Queue) 구현하기
구현하기 전에 각각의 특성을 알아야 한다. Stack -> 한번 들어간 요소들은 나올때 순서가 반대로 되어 나온다. (reverse) Queue -> 한번 들어간 요소들은 나올때 들어간 순서 그대로 나온다. 먼저 내가 생각한 것은 스택은 반대로 나오니까 반대로 나온것을 또 스택에 넣어서 다시 반대로 하면 되나? 라는 생각을 했다. 그림으로 쉽게 표현해보자. 그림 처럼 여러가지 맛의 초코볼을 통안에 넣는다고 가정해보자. 그리고 그 순서를 보기좋게 기록해 놨다. 들어간 순서는 그림과 같이 1 -> 2-> 3 이렇게 된다. 그리고 pop을 이용해서 빼낸다면 이런 순서대로 나올 것이다. (reverse) 이제 이것들을 다시 스택에 push해서 넣으면 3-> 2-> 1 순서로 스택에 차곡히 쌓일 것이다. 그리고 ..
운영체제 / 스풀링(Spooling) 알아보기
스풀링?? -> 스풀이란 Simultaneous Peripheral Operation On-Line의 줄임말로서 컴퓨터 시스템에서 중앙처리장치와 입출력장치가 독립적으로 동작하도록 함으로써 중앙처리장치에 비해 주변장치의 처리속도가 느려서 발생하는 대기시간을 줄이기 위해 고안된 기법이다. 감사합니다 위키백과 선생님😃 스풀링 개념은 운영체제에서 배울 개념이다. 위에 나온것 처럼 Simultaneous Peripheral Operation On-Line의 줄임말인데 위 설명은 사전적 정의로 너무 딱딱하니 풀어서 설명해 보고자 한다. 먼저 주변 장치의 속도가 느리다고 가정해보자. 그러면 대기 시간은 자연스럽게 늘어나는데 이 대기 시간을 줄이기 위해서 디스크 공간의 일정 부분을 활용해 데이터를 저장하는 기술을 스풀..