분류 전체보기 876

String을 쓰면 안 되는 이유!

자바 기반 프로그래밍을 할 때 가장 많이 사용하는 클래스 object class 제외하고 나면 String class, collection class를 가장 많이 사용한다.요즘은 myBatis, ibatis, Hibernate등과 같은 데이터 매핑 프레임워크를 사용했으나 예전에는 그냥 직접 SQL을 쓰곤 했다.여기서 많이들 String을 사용하게 되는데 이 부분에서 나중에 응답속도가 늦어진다.왜 자바는 StringBuffer, StringBuilder를 써야 할까!!JDK5.0에서부터 StringBuilder 클래스는 추가 되었다. 두 클래스가 제공하는 메소드는 동일하다. 그런데 뭐가 다를까?바로 ThreadSafe를 지원하느냐 하지 않느냐의 차이로 좁힐 수 있다.StringBuffer class는 Th..

Class의 등장 3탄 상속??

상속이란 보통 말 그대로 물려받는다는 의미입니다. 프로그래밍 세계에서도 상속의 개념이 있습니다. 정말 말그대로 무언가를 물려 받습니다! 과연 그것이 뭘까요?? 우선 상속 배우기전에 앞서 설명을 들어보자!! >>> class Choi: lastName = "choi" def __init__(self,name): self.fullName = self.lastName + name def printName(self): print("%s" % self.fullName) def __del__(self): print("class delete") 이런 구조의 클래스를 작성해보았습니다. 우선 __del__ 함수는 넘어갑니다! 생성자에서 지금 성이 choi와 객체 생성시 입력받은 인자와 문자열 덧셈을 하고 있습니다. 그걸..

Class의 등장 2탄

모든 메서드의 첫 번째 인자는 self입니다. 클래스에 정의된 모든 메서드가 self를 필요로 합니다. 파이썬은 모든 메서드의 첫 번째 인자를 호출할 객체가 되도록 합니다. 객체에 메서드를 호출할 때 파이썬은 첫 번째 인자가 호출한 객체가 되로록 한다는 말이 무엇일까! >>> class Strlen: def __init__(self,value=0): self.thing = value def how_len(self): return (len(self.thing)) 이러한 구조를 갖게 됩니다. 함수 how_len또한 첫 인자를 self로 받고 있습니다. >>> test = Strlen("Hello World") >>> test.how_len() 11 >>> 개발자 코드 test = Strlen("Hello W..

Class의 등장 1탄

코드와 관련된 데이터는 한데 모으는게 좋습니다. 즉, 비슷한 기능을 하는 함수등을 하나로 모아서 관리하는 것은 프로그래밍에서 보통 말하는 유지보수성이 좋아진다고 말한다. 유지보수성이란? 특정한 기능의 수정사항, 향상들을 위해 코드를 수정하는데 얼마나 힘들이지 않고, 코드를 수정할 수 있느냐.그런데 마구잡이로 구성이 되어있다면, 전체 코드를 손 봐야 한다는 것은 엄청 비효율적이라고 할 수 있습니다. 그래서 프로그래밍에서는 코드를 작성 할 때 항상 유지보수를 염두해 두어야 합니다 뭐.. 이렇게만 알고 넘어가죠! 그래서 파이썬에서도 클래스(Class)라는 것이 있는데, 프로그래밍을 해본 분들은 C++ , Java, C#에서 많이 보셨겠으나 프로그래밍을 안해보셨다면, OOP라는 것이 생소합니다. 물론 파이썬은 ..

새로운 데이터 구조 딕셔너리(dictionary)

리스트는 좋지만 구조가 복잡해진다면, 이야기가 달라진다. 그래서 파이썬 내장 데이터 구조 중에 딕셔너리라는 데이터 구조가 존재한다. 딕셔너리는 데이터 값과 키를 연결한다. 딕셔너리는 연관된 데이터를 보관하는 것이지 순서를 보장하는 것은 아니다. 딕셔너리의 구조는 {key 1: value1 , key2: value2 ....}이러한 구조를 하고 있다. 딕셔너리 예를 보도록 하자. >>> dic = {'name':'pey' , 'phone':'0110110111','brith':'110325'} >>> a = {1:'hi'} >>> print (a) {1: 'hi'} >>> print(a[1]) hi >>> a = { 'a' : [1,2,3]} >>> print (a['a']) [1, 2, 3] >>> { ..

Ruby 설치 - 우분투/윈도우

우분투의 경우 sudo apt-get install ruby-full 그 후 irb 를 치면 인터프리터 루비가 실행 된다. 윈도우https://www.ruby-lang.org/en/downloads/ 루비를 설치 하기 위한 인스톨러가 필요하다! http://rubyinstaller.org/downloads/ 이 곳에서 루비를 OS에 맞게 설치하면 된다. 루비는 최신버젼도 호환이 잘 되므로 최신판을 쓰는 것이 좋다. 설치를 마치고 Interactive Ruby를 실행한다 끝.

중복 제거는 어떻게??? - 집합(set)

중복은 집합을 사용해서 제거 할 수 있습니다. 파이썬에는 리스트 외에 집합(set)데이터 구조를 제공합니다. 집합의 특징으로는 순서가 없고, 중복된 데이터를 가질 수 없다.는 것이 큰 특징입니다. 만약 집합에 데이터가 존재하고, 중복된 데이터를 추가하면 파이썬에서 그 데이터를 무시합니다. set()이라는 내장 함수를 이용하여 빈 집합을 생성 할 수 있으며, set()과 같은 함수를 팩토리 함수라고 합니다. *팩토리 함수란? 특정 형의 데이터 항목을 새로 만들기 위해 사용되는 것을 말합니다. >>> distances = {10.6,11,6,10.6,7,"one"} >>> print (distances) {10.6, 11, 'one', 6, 7} >>> 이런 식으로 사용 할 수 있습니다. '{' 와 '}'를..

지능형 리스트???

리스트를 다른 리스트로 변환을 할 때 필요한 일들! 1. 변환된 데이터를 보관할 리스트를 새로 만들어야 한다. 2. 원래 리스트의 모든 데이터 항목을 나열해야 한다. 3. 나열 하면서 각 데이터 항목을 변환해야 합니다. 4. 변환된 데이터를 새 리스트에 추가해야 합니다. >>> cp = [] >>> for each_item in li: cp.append(mySorted(each_item)) 먼저 cp 리스트 생성 후 for문으로 항목 나열 후 나열하면서 항목을 변환해야 하므로 mySorted함수를 호출 후 리턴을 받아서 추가해야 하는 것을 저렇게 표현 할 수 있다. 그러나 지능형 리스트라는 개념을 사용 할 수 있다. >>> cp = [mySorted(each_item) for each_item in li..

데이터를 저장하기?! - pickle 이용

파이썬은 피클이라고 하는 표준 라이브러리를 제공합니다. 모든 파이썬 데이터 객체를 저장하고 읽을 수 있습니다. 데이터를 파일에 피클링하면, 데이터는 영구적으로 존재하게 되고, 나중에 재사용이 가능합니다. 데이터 - 피클엔진 - 피클링 이러한 수순으로 과정이 진행 되는데 한 번 살펴 볼까요?>>> HoW?? 어떻게 하면 될까?? import pickle을 해준 뒤 dump라는 함수를 이용하여 데이터를 저장하고, 나중에 꺼낼 떄는 load()함수를 이용하면 된다. 단, 피클 파일로 작업 할 때는 파일을 이진 접근 모드로 열어야 한다. 파이썬의 pickle 모듈은 이진 형식으로 저장하므로 텍스트 편집기에서는 이상하게 보일 수 있다. import pickle man = [] other = [] try: data..

안드로이드 getWindow() 메소드

스크린 on/off 기능 위와 같은 flag를 사용한다. 그리고 PowerManager를 사용하기 위한 권한 설정이 필요하다메니페스트에서 설정을 해주어야 한다. 기타 사항http://rockdrumy.tistory.com/1031http://cusmaker.tistory.com/109 참조 이것은 찾게 된 계기는 핑거푸시API 사용하려다 보니 있길래.. @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btn_open: getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); RecentTaskI..

반응형