스택
·
2-2/파이썬, 자료구조
스택: 데이터를 차곡차곡 쌓는다 ! 차곡차곡 위로 쌓고, 나갈때는 맨 위에잇는(마지막에들어온)애부터 나간다 따로 모듈 제공x. 리스트그냥 쓰면 돼서 (pop(), append() 사용하면 그대로임) -> 그치만 헷갈림 어떤 의미로 리스트를 썻는지 알수없음 (동적배열 / 스택) -> 따로 추상화를 해줍니다 *비어잇는 리스트 생성방법 a=list() *a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요솟값을 말한다.
OOP
·
2-2/파이썬, 자료구조
*사실 파이썬은 캡슐화를 지원하는 언어는 아님 ! (private x) 클래스 없어도 괜찮은 언어 *클래스에서 self 파라미터엔 아무것도 안넣어도되는거임 캡슐화 =인스턴스를 생성했을 때 일부 구현 내용에 대한 외부로부터의 직접적인 엑세스를 차단하는것입니다. = 캡슐처럼 객체 내부를 숨겨 외부로부터의 엑세스를 차단하는 것 ways 맹글링 -> 완벽은 x _변수 -> 개발자들 사이의 약속 @property 데코레이터 사용내부 보호하기 위해 데이터 접근 메서드를 따로 만들어 주는 것! property ? = 어떤 처리를 해준 속성 @property라는 키워드를 이용해서 클래스 변수를 속성으로 선언하고 하나의 메소드를 통해서 쉽게 get / set 할 수 있습니다 *메서드를 통해서 값을 가져오는 것 =gett..
파이썬 ..
·
2-2/파이썬, 자료구조
데코레이터 https://dojang.io/mod/page/view.php?id=2427 파이썬 코딩 도장: 42.1 데코레이터 만들기 Unit 42. 데코레이터 사용하기 파이썬은 데코레이터(decorator)라는 기능을 제공합니다. 데코레이터는 장식하다, 꾸미다라는 뜻의 decorate에 er(or)을 붙인 말인데 장식하는 도구 정도로 설명할 수 있습 dojang.io 데코레이터는 기존 함수를 수정하지 않으면서 추가 기능을 구현할 때 사용함. 그리고 그 추가기능 함수 = 데코레이터 함수안에 함수가있는 형태고 return 안의함수 해야함 @데코레이터함수이름 은 아무변수이름=데코레이터(기존함수) 와 같음 데코레이터 = 메소드를 매개변수로 받아서 기존함수에 부가적인 기능을 추가하여 사용할 수 있도록 함 _ ..
연결 리스트
·
2-2/파이썬, 자료구조
연결리스트 중간에 삽입, 삭제 good ! O(1) -> 요소들이 다음꺼를 가리키고 있다 ! (포인터를 담고잇다) *중간요소 삭제시 : 해당 객체를 가리키는 객체가 0개면 그 객체 자동으로 지워짐 ! 탐색 bad -> 하나하나씩 다 탐색해야함 ! 인덱싱같은 연산 x -> O(n) 더미 이중 연결 리스트 직접 구현
배열
·
2-2/파이썬, 자료구조
*stack, heap heap 영역이 동적 ! 동적 배열 = 리스트 (파이썬의 배열) (파이썬의 배열은 동적이다 !!) 탐색 기능이 막강(인덱싱->한번에 찾음) & 마지막에서 삽입, 연산 good ! * 중간에 삽입/삭제시 원소들 옮겨야됨 ㅜㅜ ADT operation .is_empty()기능 -> [] 빈 리스트 자체가 false임 .insert(index, n) [] .pop() ->마지막 원소 삭제 후 그 원소 반환 .pop(index) -> 인덱스 원소 삭제 후 반환 .append(n) :맨뒤에 추가 .remove(아이템) -> 배열안에 그 아이템 있으면 그거 삭제 특징 -> 선형적으로 이어져있다 -> 캐시히트가 발생시 시간 매우 절약 ! (캐시로가져올때 주변 데이터까지 같이 가져오므로, 배열은..
추상 데이터 타입(ADT)
·
2-2/파이썬, 자료구조
데이터 타입 = 데이터를 저장하는 객체와, 객체가 할수 있는 연산의 집합 ! (객체 = 데이터타입이 나타낼 수 있는 모든 값의 집합) *파이썬은 c로 만든 단어 ADT = 객체와 연산의 명세에서 객체표현이나 연산 표현을 감춘 것 파이썬은 자료형 명시안함 ! -> 실제 메모리에서 어떤 크기로 저장되는지 감춰짐 ex int로 기본으로 정수 쓰는데, 최댓값 넘어감 -> 알아서 자료형 long long으로 바꿈! 이것처럼 그냥 감추는거 (...)
json
·
draft/html, javascript
*http 웹의 클라이언트(브라우저)와 서버가 어떻게 통신하는지를 정의한 것 클라이언트가 서버에게 요청, 그리고 서버가 응답 하는 방식으로 이루어진다 -ajax : 웹페이지에서 동적으로 서버에게 데이터를 주고받을 수 있는 기술 json = javascript object notation (데이터 포멧) 서버와 데이터를 주고받을 때 이데이터타입을 많이 이용함 -데이터 주고받을 때 가장간단한 데이터 포멧 -키와 벨류로 이루어짐 (오브젝트 처럼) -프로그래밍 랭기지나 플랫폼에 상관없이 쓰일 수 있음 -> c, c++, 자바, php, .. 모든 언어에서 사용가능하다 공부포인트 1. 오브젝트를 어떻게 serialize (직렬화) 해서 json으로 변경할지 2. 그리고 json을 어떻게 다시 비직렬화해서 obje..
array
·
draft/html, javascript
*여러타입 한번에 한 배열에 담을 수 있슴 ..... ; -> 근데그러지 않는게 조음.. 웅웅.. 배열 선언 1. const arr1 = new Array(); 2. const arr2 = [ 1,2 ] ; //이게 더 흔하게 쓰임 접근 -> [인덱스] 로 !! ( 0부터 ~ arr.length-1 ^^ ) arr2[0]; 이런식으로 loop, 각각 출력 1. for (let i = 0 ; i< arr.length ; i++){ console.log(arr[i]); } 2. for( let a of arr){ console.log( a ); } 3. forEach 사용 ! foreach 는 배열안에 들어있는 벨류들마다 내가전달한 함수대로 출력한다 forEach(콜백함수(value, index, array..
object
·
draft/html, javascript
object 만드는 방법 *object = 키와 벨류의 집합체 ! { key:value } -const obj1 = { name:'ss' , age:4 } ; 이렇게 가로를 이용해서 만들 수 있음 = object literal (자바 스크립트는 클래스가 없어도 바로 오브젝트를 만들 수 있다!) * obj1.hasJob = true; delete obj1.hasJob 이렇게 바로바로 아무거나 추가, 삭제가 가능 (자바스크립트가 동적언어라서!) -const obj2 = new Object(); 이렇게 클래스로 만들 수도 있음 =object constructor *자바스크립트는 runtime에 데이터타입 결정되는 동적인 언어 computed properties ellie.hasJob = true; consol..
자바스크립트 데이터 타입
·
draft/html, javascript
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map Map - JavaScript | MDN The Map object holds key-value pairs and remembers the original insertion order of the keys. Any value (both objects and primitive values) may be used as either a key or a value. developer.mozilla.org 완전 중요 사이트 { } 안에 -> 그 안에서만 가능 {} 없고 그냥 밖에 -> 글로벌! 어디서든 가능 변수선언 var(never use it) ->선언하기도 ..