프로그래밍 290

Ruby 프로그래밍 - 3. 비교

비교 연산보통 비교라 함은 숫자의 비교 혹은 문자열의 비교이다.프로그래밍에서 비교는 다른지, 같은지, 큰지, 작은지를 판단하는 중요한 문법이다. == 연산 - 비교 연산자 irb(main):008:0> puts 1==2 false => nil irb(main):009:0> puts 1==1 true => nil irb(main):010:0> puts "string" == "one" false => nil irb(main):011:0> puts "one" == "one" true => nil != 연산'!'는 부정을 의미한다. '같다'의 부정은 '같지 않다'이다. 이것을 '!='으로 표시한다. == 과 정반대의 결과를 나타낸다. irb(main):012:0> puts 1 != 2 true => nil ir..

Ruby 프로그래밍 - 2. 변수의 사용!

Ruby에서 변수는 알파벳 소문자와 _ 를 사용한다. #을 쓰게 되면 주석처리를 할 수 있다. 주석처리란? 프로그래밍시 코멘트 특정 설명이나 부가 멘트를 달기 위해 쓰는 용도로 인터프리팅, 컴파일시에는 해석 되지 않고, 사람과 사람에게만 전달하는 메세지라고 할 수있다. irb(main):001:0> a = 12 => 12 irb(main):002:0> puts a + 12 24 => nil irb(main):003:0> puts a + 30 42 => nil irb(main):004:0> string = "SeungdolsCompany" => "SeungdolsCompany" irb(main):005:0> puts string SeungdolsCompany irb(main):007:0> puts stri..

Ruby 프로그래밍 - 1. 숫자 , 스트링 타입

루비에서는 숫자와 스트링 타입을 지원한다. 당연하다. DL is deprecated, please use Fiddle irb(main):001:0> puts 1+1 2 => nil irb(main):002:0> puts 2+2 4 => nil irb(main):003:0> puts 100_00+101 10101 => nil _를 쓰면 숫자를 구분하는 구분자가 된다. 해석시에는 제거 된다. irb(main):007:0> puts "1".class String => nil irb(main):008:0> puts "coding"+" everyday" coding everyday => nil irb(main):009:0> .class를 붙이면 어떤 타입인지를 알려준다. + 연산자로 String을 합칠 수가 있다..

Static의 이중성!

java program에서 성능을 향상 시키는 방법은 여러가지가 있다.그 중에서 한 가지는 Static을 사용하는 것이다. 하지만 알고 사용하면 득이 되지만, 모르고 사용한다면 독이 된다. 시스템의 오류, 시스템 성능의 부하등등Static의 특징static이란 단어는 ‘정적인, 움직이지 않는’이라는 의미이다. 자바에서 static이라고 지정했다면, 해당 메서드, 변수는 정적이다.static으로 변수를 지정하게 되면 클래스 변수라고 한다.그 변수는 객체의 변수가 아니라 클래스의 변수가 되기때문이다.이유를 살짝 말하자면 Static으로 선언된 변수, 메소드는 컴파일시점에서도 여러 종류가 있는데 그 시점중 하나가 static정보를 먼저 가져가서 메모리에 적재한다. static의 경우 전역변수처럼 생명주기(li..

for loop를 빠르게 사용하는 방법은???

우선 if, switch문들을 분기문이라고 하는데 if문에서 분기를 많이 사용하면 시간이 많이 소요 된다고 생각하지만, if문 조건안에 들어가는 비교구문에서 속도를 잡아먹지 않는 한 if문장 자체는 그리 많은 시간이 걸리지는 않는다. 이것은 살짝 알고 가자. 그리고 숫자로된 분기는 if문보다 switch문을 사용하는 것이 가독성 향상을 줄 수 있다. 반복구문은 3종류가 있다. for, while, do-while while문의 경우 조건이 잘 못된다면, 무한루프에 빠질 가능성이 있으므로 for문을 사용하는 것이 좋다. 우선 for문에 for(int i = 0; i < list.size(); i++) { } 이런 for문이 있다면 좋지 않다. collection의 list.size()메소드를 매번 호출하게..

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] >>> { ..

반응형