본문 바로가기

CS

(6)
[CS 전공지식 노트] 2장 네트워크 2.1 네트워크의 기초 네트워크 (Network) 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어. 2.1 네트워크의 기초 네트워크란? 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미 노드란? 서버, 라우터, 스위치 등 네트워크 장치 링크란? 유선 또는 무선 2.1.1 처리량과 지연 시간 좋은 네트워크란? 많은 처리량을 처리 가능 지연 시간이 짧음 장애 빈도가 적음 좋은 보안을 갖춤 처리량이란? 링크를 통해 전달되는 단위 시간 당 데이터양 단위: bps(bits per second); 초당 전송 또는 수신되는 비트 수 처리량에 영향을 주는 요소들 트래픽(사용자들이 많이 접속할 때마다 커짐) 네트워크 장치 간의 대역폭 (주어지는 시간 동안 네트워크 연결을 통해 흐..
[객체지향프로그래밍] 설계 원칙 - SOLID 원칙 SOLID 원칙 S - SRP(Single Responsibility Principle, 단일 책임 원칙) 모든 클래스는 각각 하나의 책임만 가져야 한다. 예를 들어 A라는 로직이 존재한다면 어떠한 클래스는 A에 관한 클래스여야 하고 이를 수정한다고 했을 때도 A에 관련된 수정이어야 한다.O - OCP(Open Closed Principle, 개방-폐쇄 원칙) 유지 보수 사항이 생긴다면 코드를 쉽게 확장할 수 있도록 하고 수정할 때는 닫혀 있어야 한다. 즉, 기존의 코드는 잘 변경하지 않으면서도 확장은 쉽게 할 수 있어야 한다.L - LSP(Liskov Substitution Principle, 리스코프 치환 원칙) 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 ..
[알고리즘] 순열(Permutation) 계기 SSAFY 교육 정리 순열(Permutation) 서로 다른 것들 중 몇 개를 뽑아서 한 줄로 나열하는 것 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현한다. 그리고 nPr은 다음과 같은 식이 성립한다 nPn = n!이라고 표기하며 Factorial이라 부른다. 다수의 알고리즘 문제들은 순서화된 요소들의 집합에서 최선의 방법을 찾는 것과 관련 있다. 예> TSP(Traveling Salesperson Problem, 외판원 순회) N개의 요소들에 대해서 n!개의 순열들이 존재한다. 12! = 479,001,600 n > 12 인 경우, 시간 복잡도 폭발적으로 ↑ 단순하게 순열을 생성하는 방법 예) {1, 2, 3}을 포함하는 모든 순열을 생성하는 함수 동일한 숫자가 포함되지 않았을 때,..
[알고리즘] 부분집합 & 조합 + 비트 연산자 개요 SSAFY 교육 정리 부분집합 (Powerset) 비트 연산자 연산자 연산자의 기능 & 비트 단위로 AND 연산 예) num1 & num2 | 비트 단위로 OR 연산을 한다. 예) num1 | num2 ^ 비트 단위로 XOR 연산을 한다. (같으면 0 다르면 1) 예) num1 ^ num2 ~ 단항 연산자로서 피연산자의 모든 비트를 반전시킨다. 예) ~num > 2 부분집합의 수 - 집합의 원소가 n개일 때, 공집합을 포함한 부분집합의 수는 2ⁿ개 - 이는 각 원소를 부분집합에 포함시키거나 포함시키지 않는 2가지 경우를 모든 원소에 적용한 경우의 수와 같다. - 예) 반복문을 이용하여 부분집합 구하기 - 의사코드 sel = {0, 0, 0, 0} for i in 0 to 1: sel[0] = i /..
[CS 전공지식 노트] 1장 디자인 패턴과 프로그래밍 패러다임 - 1.1 디자인 패턴 1.1.1 싱글톤 패턴 1.1 디자인 패턴 디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 1.1.1 싱글톤 패턴 싱글톤 패턴(Singleton pattern)이란? 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 클래스를 기반으로 여러 개의 개별적 인스턴스를 만들 수 있지만 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰림. 보통 데이터베이스 연결 모듈에 많이 사용. 장점 : 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하여 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어듦. 단점 : 의존성이 높아짐. JavaScript cons..
[객체지향프로그래밍] 객체지향프로그래밍(OOP)이란? 객체지향프로그래밍(OOP, Object Oriented Programming) Real World를 프로그래밍으로 옮겨 와서 real world의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍 하는 것. 객체 지향 프로그래밍을 이용하면 재사용성과 변형 가능성을 높일 수 있음. OOP의 5원칙 - SRP(Single Responsibility Principle, 단일 책임 원칙): 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다. - OCP(Open-Cloed Principle, 개방 폐쇄 원칙): 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다. - LSP(Liskov Substitution Principle, 리..