직렬화 자바에서 직렬화란 객체 데이터를 바이트(Byte) 형태로 변환하는 것이다. '직렬'이라는 말대로, 한 줄로 쭉 늘어놓은 바이트 데이터를 생각하면 된다. 객체에 마구 쌓여있는 데이터들이 바이트 단위로 정렬되는 형태라고 볼 수 있다. 직렬화는 java.io 패키지의 Serializable 인터페이스를 implements하면 가능하다. 단 직렬화 대상은 필드(멤버변수)들이다. 생성자와 메서드는 대상에 포함되지 않는다. 사용하는 이유 객체를 왜 바이트 단위로 변환해야할까. 데이터를 외부 서버로 전송하기 위해서다. 자체 메모리 위에서만 데이터를 운용한다면 굳이 직렬화하지 않아도 객체를 주고받을 수 있다. 그러나 객체를 DB에 저장하거나 파일로 저장한 객체를 전송하는 등의 상황에선 스트림을 통해 데이터를 보..
피보나치(Fibonnaci) 수열은 앞 두 수를 더해서 다음 수를 만들어 나가는 수열이다. ex) 1,1,2,3,5,8,13,21,... 값이 만들어지는 패턴을 이렇다. 1 + 1 = 2 1 + 2 = 3 2 + 3 = 5 (...) num1 + num2 = num3 num2 + num3 = num4 num3 + num4 = num5 (...) 일정하게 반복되고 있기 때문에 자바의 반복문 for를 이용하면 원하는 구간만큼 값을 출력할 수 있다. 제한된 변수에서 연산을 반복하기 위해서는 수학적인 추론이 필요하다. num1, num2, num3 세 개의 제한된 변수로 반복적으로 뒤의 숫자를 출력해야 한다. 아래는 피보나치 수열의 10번째 값까지 출력한 코드다. int num1 = 1; int num2 = 1..