목차
1oop는 키워드랑 클래스 사용법만 하겠다.
2하노이타워
3버블소트 O(n)
4네트워크
5자료구조
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
OOP
1-캡슐화(encapsulation):정보 은닉
2-정보은닉(information hiding):
3☆-다형성-polymorphism: 상속(inheritance)을 쓸때 사용
-> 메서드 오버라이딩(method overrding) vs 함수 오버로딩 fuction overoding (두개 햇갈리면 안됨)
4-디자인 패턴(SOLID) 필요성을 느끼고 구현한다면 GOF(gang of four)라는 책에서 나옴
S:single resposibility principle (단일책임이라고 번역하는데 원문이 더이해간다)
O: open-closed principle(확장_폐쇄)
L: Liskov substitution principle(리스코프 치환)
I:interface segregation principle(인터페이스 분리)
D: Dependency inversion principle(의존 역전 원리)
ㅡㅡㅡ나중에 공부
def hanoi(n, _from, _by, _to):
#base case
if n==1:
print(f'{n}번째 쟁반을 {_from}에서 {_to}로 이동 ')
return
hanoi(n-1, _from, _to, _by)
print(f'{n}번째 쟁반을 {_from}에서 {_to}로 이동 ')
hanoi(n-1, _by, _from ,_to)
버블소트 O(n)
데이터가 4개, 3+2+1
데이터가 5개 4+3+2+1
데이터가 6개 5+4+3+2+1
n : 1+2+3+ . . . n-1
첫째항 a 항의 개수 n 마지막 항 l
n(a+l)/2 = (n-1)(1+n-1)/2
T(n) = n^2+2/2 O(n2)
포문이 두개다 = O(n^2)
포문이 세개다 = O(n^3)
for문이나 while문 (반복문 x) 1부터 100만 까지의 합을 구하는 함수를 구하라
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2교시
클래스 문법
절차지향(함수proceduer) 지향 vs 객체지향
-함수 시그니처
-어떤 "기능"을 구현
operation, behavior라고도 부름
함수를 통해 추상화
객체지향(object) - > 추상화
객체는 "관련있는 "변수, 함수를 묶은것
변수- 상태정보 (data가 되고) 특성값
함수x(메서드)- 기능 (input+상태정보(멤버값)에 의해서 output이 달라짐)
객체는 데이터와 기능을 한대 합쳤다.
class와 instance의 차이
class= 붕어빵 틀 , instance 붕어빵
내요약
절차지향(항상같게 입력에따른 출력)
객체지향(인풋값,상태정보에따라 출력달라짐)
내통장 5천원, 천원뺴기 니통장 100원 천원빼기의 차이
class Account:
# 생성자(constructor)
# 객체를 생성할때, "반드시" 한번 호출한다
def __init__(self, cust_name, init_balance):
#인스턴스 멤버(객체가 가지는 속성,데이터,변수)를 설정한다
self.name=cust_name
self.balance=init_balance
#소멸자 (destructor)
#객체가 소멸될 때 '반드시' 한번 호출
def __del__(self):
pass
#인스턴스 메서드(기능, 행동)
def deposit(self, money):
if money <0:
return False
# 관련 있는 변수를 :인스턴스멤버
self.balance+=money
return True
def withdraw(self, money):
if money > self.balance:
return 0
self.balance -= money
return money
def transfer(self, other, money):
self.balance -= money
#다른 객체의 멤버에 바로 접근하지 않는다
#다른 객체의 데이터를 변경할 떄는
# "반드시" 상대 객체가 가진 메서드에 맡겨야 한다!!
# 메시지 패싱
# other.money+=money 돈에 직접가면안댐
other.deposit(money)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
접근 제어자 access modfier
네트워크
계층에서 중요한 프로토콜(약속)
우리는 application layer
구글 -> mac address 짤 보고 이해하기
ac:12:82(제조사):bb :a1 :32 일련번호 (겹치기 x) -물리주소, 전세계에 나하나밖에없는 물리주소
nic에 발급된 mac address(media, access control) 하드웨어주소
Lan vs Wan
이더넷 프로토콜: LAN에서 물리주소(mac주소를 기반으로) 로컬에서만 데이터를 주고받는
Destination Mac Address: 6bytes, 패킷수신
Source Mac Address : 6bytes, 패킷송신 NIC
MTU(maximum transmission unit): 1500bytes
__ipconfig /all window 명령어__
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
tcp/ip 4계층 (노트)
arp 스푸핑
상대방의 mac주소를 안다면, 커피숍에서 은행업무
host 1 <-ㅁiptime-> 은행서버
해커 서로주고받는 해커
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
ip -> 4바이트
_ _ _ _ 한자리당 1바이트, 0~255 맨끝자리 255는 broadcast로 예약이 잡혀있음
ip - class 기반 주소 (ipv4)
-나의 ip주소, subnet mask - 게이트웨이
→_ _ _ _맨첫번째 자리를 보고 클래스를 판단 0~127
0|000 0000 ~ 0|111 1111 클래스A 네트워크 2^8 , 2^24개 호스트 받기 가능 (미국만 쓸때)
_ _ ← 앞에 두개_ _ 자리를 보고 클래스를 판단 128~191
10|00 0000 ~ 10 11 1111 클래스 B
_ _ _ ← _ 끝에만 호스트/ 클래스 C 호스트 192~223
110|0 0000 ~ 110|1 1111
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
서브넷 : 어디까지가 네트워크 주소냐?
class A ㅁ ㅡ ㅡ ㅡ
class b ㅁㅁ ㅡ. ㅡ
class c ㅁ ㅁ ㅁ . ㅡ
cmd) traceroute google.com
who is (ip주소)
1.공인IP (public) - 전세계적으로 unique nic처럼 공인 ip영역 지정
2.사설ip (private) -
nat
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
sorting
단순 알고리즘 -버블, 삽입,선택
분할정복 - 퀵,머지,힙, 소트
분할정복 개념 :"어려운 문제를" 잘게 "쪼개서" divide 작게 쪼개진 문제 "문제" 하나씩
"해결"함으로써 "작은 solution"이 모여서 전체 문제에 대한 "solution"을 구하는기법
퀵소트 동영상
'공부 > TIL' 카테고리의 다른 글
머지소트,스택,큐,연결리스트 (0) | 2019.04.26 |
---|---|
네트워크, 퀵소트, isertion, selection (0) | 2019.04.25 |
프로세스VS스레드 (0) | 2019.04.23 |
함수 (0) | 2019.04.22 |
SASS (0) | 2019.04.21 |