안녕하세요 박스여우입니다.오늘은 Java 객체지향 개념의 상속에 대해서 알아보겠습니다. ■ 상속지난 강좌(요기) 에서 설명해 드렸던 Java 의 특징중에서는 코드의 재사용성이 높다는 특징이 있었습니다.그런 Java에서 코드의 재사용성을 높여주는 것들 중 하나가 바로 상속 이라는 개념 입니다. 상속은 어떤 클래스를 확장(extend)해서 사용할 수 있습니다. 예를들어 핸드폰에는 전화를 할 수 있는 기본적인 기능이 있습니다. 하지만, 핸드폰에서 더 발전하여 스마트폰을 만든다고 할때, 스마트폰에도 전화기능이 있기 때문에 전화를 하는 기능을 다시 새롭게 만들어야 하지만 이미 완성돼 있었던 핸드폰의 전화 기능을 사용한다면 다시 만들 필요도 없고, 자원과 시간이 낭비될 필요도 없습니다. java에서는 위와같은 장점..
안녕하세요 박스여우입니다.오늘은 숫자의 규격을 맞추는 방법을 알아보도록 하겠습니다. 제가 말하는 숫자의 규격은 예를 들어 한 자리 숫자도 두 자리 숫자로 만드는 것 입니다. (01, 02, 03, 12..) 숫자의 규격을 맞추기 위해 숫자 하나하나의 자리 수를 검사하고 한자리 숫자면 앞에 0을 붙이는 방법을 생각했지만, 이미 Java에서 더 간편하게, 개발자들이 고민하지 않고 사용할 수있도록 제공해 주고 있습니다. ■ NumberFormat123456 NumberFormat numformat = NumberFormat.getIntegerInstance();numformat.setMinimumIntegerDigits(2);numformat.format(num) Colored by Color Scripter..
안녕하세요 박스여우입니다.이번에는 AES란 무엇이고 Java로 구현한 AES 암호화/복호화에 대해서 알아보겠습니다. ■ AES(Advanced Encryption Standard) 암호화 알고리즘AES 는 벨기에의 2명의 암호학자로부터 탄생한 암호화 알고리즘 입니다. NIST는 기밀문서를 안전하게 암호화 시켜 보호하기 위해 DES 암호화 알고리즘을 대체할 새로운 암호화 알고리즘이 필요했고, 1997년에 보다 강력한 알고리즘을 찾기 위한 공모전를 진행했습니다. 그중 MARS, RC6, Rijndael, Serpent, Twofish 이 다섯 개의 암호화 알고리즘이 후보에 올랐고, 결국 Rijndael(레인달) 암호화 알고리즘이 체택되었습니다. 이때 AES 후보 알고리즘들은 다양한 방식의 공격에도 안정성을 ..
안녕하세요 박스여우입니다.이번에는 객체지향과 클래스를 알아보겠습니다. ■ 객체지향 - Object-Oriented객체지향이라는 의미를 알아보기 위해 먼저 객체(Object)에 대해 알아봅시다.객체(Object)란 사전적 의미로는 실세계에 존재하는 모든 사물을 일컫는 말입니다. 지금 현재 우리 주의에서 볼 수 있는 모든 것들을 객체라고 하지요. 그럼 객체지향이란? 이런 실세계에 존재하는 객체를 컴퓨터 상에서 표현하는 것을 말합니다. ■ 객체지향의 특징객체지향은 코드의 재사용성이 높습니다. 클래스 를통해 객체를 정의해 두면, 그 객체를 여러 프로젝트나 프로그램등에 재사용 될 수 있습니다. 객체지향의 특징 두 번째로는 코드의 관리가 용이합니다. 클래스별로 속성과 기능을 정의해 두었기 때문에 클래스만 수정하거나..
현재 제가 서버와 클라이언트 간의 통신 규격으로 사용하고 있는 JSON을 Java에서 라이브러리를 통해 사용하는 방법을 알아보겠습니다. ■ 데이터 교환 형식 - JSON우선, JSON이란 경량의 데이터 교환 형식으로 사람이 읽고 쓰기도 편하고, 기계역시 마찬가지 입니다.JSON은 JavaScript에서 객체를 만들 때 사용되는 표현식이지만 완전히 독립적이여서 어떠한 언어에서도 사용이 가능합니다. ● JSON 표기법JSON을 사용하기 위해 우선적으로 JSON의 표기법을 알아야 합니다. 형식도 모르고 그냥 라이브러리만 이용해서 사용한다면 JSON을 완벽하게 사용하지 못하는 것 과 마찬가지 입니다. 우선, JSON의 가장 큰 단위는 Object입니다. Object는 중괄호로 표기하고, 이 Object 안에 K..
안녕하세요 박스여우입니다.지난시간에 배웠던 배열 강좌에서 배열에 대한 아주 기초적인 것만 설명하고 넘어갔습니다. 이번에는 배열의 길이를 구하는 방법과 사용법에 대해 알아보겠습니다. ■ 배열의 길이를 구하는 length배열의 길이는 프로그램이 동작할때 상수로 주어줄 때도 있지만, 사용자가 원하는 만큼의 길이를 입력하거나, 다른 방법을 통해 배열의 길이를 정할 수 있습니다. 이럴때는 배열의 길이를 알 수 없겠죠? 하지만 length를 통해 알 수 없는 배열의 길이를 구할 수 있습니다.length의 기본적인 사용 방법을 알려드리기 위해 위의 코드를 살펴봅시다. 첫 라인은 int형배열 arr를 선언한 후 길이를 10으로 지정했습니다. 그리고 두번째 라인에는 배열의 길이를 출력했네요. 이러면 당연히 10이 출력되..
Java 식별자: 말 그대로 식별하는 단어,문장이다. 변수, 메소드, 클래스 등의 이름들을 개발자가 지정한 것이 식별자 이다. 타입 & 자료형 : 자료형은 int, double, float, long과 같은 기본 자료 형을 뜻 하고, 타입은 클래스의 이름으로 객체를 생성할 때 마치 자료형과 같이 사용되는 것을 말한다. int(자료형) a; Object(타입) a; 배열이란? 만약 수 많은 변수들을 모두 식별자를 지정하고 관리하고자 하면 개발자는 매우 힘들것입니다. 실제 프로그래밍을 하게 되면 다뤄야 될 변수들은 무한하고 그것들을 보다 쉽게 다루기 위해 배열 이란 것을 사용합니다. 배열은 같은 자료형, 또는 같은 타입 끼리 묶어서 index로 접근하여 사용하도록 만든 것 입니다. 목욕탕의 옷장을 예시로 들..
Java 자바 언어의 탄생 배경 1990년, James Gosling에 의해 Sun Microsystems사의 Green Project 팀에서 개발되었습니다. 가정에서 사용되는 대화형 제어기를 c++로 개발하고 있었지만, c++언어의 단점으로 인하여 개발 목적에 맞지 않다는 결론을 통해 좀 더 간편한 오크(Oak) 언어를 개발하게 되었습니다. c++의 단점 플랫폼에 제한이 많았다. 메모리 할당 문제가 최적화되지 않았다. 해당 시기에는 월드와이드웹이 활발하게 사용되었을 시기였습니다. 이때 Sun Microsystems사의 창업자 Bill Joy가 월드와이드웹의 가능성을 발견 하여 James Gosling과 Patrick Naughton이 오크를 완벽한 인터넷 개발환경으로 만들어 1995년 중반, 저작권 문..
바이트코드바이트코드는 java언어로 작성된 프로그램이 실행되기 전의 JVM(Java Virvual Machine)용 기계어 코드입니다. 각각의 연산코드 즉, op code가 보통 1바이트 길이로 되어있기 때문에 바이트 코드라 불립니다. 하나의 명령어는 0~255로 표현되는 연산 코드중 하나를 가지게 됩니다. 그리고 그 뒤에는 레지스터나 메모리 주소 같은 파라미터가 붙게 됩니다.java프로그램이 바이트코드로 변환되면 네트워크를 통해 전송될 수도 있고, jvm에 의해 실행될 수 있습니다. java에서는 바이트 코드를 이용하여 JIT컴파일을 하며 이식성과 플랫폼에 대한 독립성, 그리고 빠른 컴파일 속도를 가지고 있습니다. java는 컴파일 순간에 바이트 코드로 변환한뒤에 프로그램이 실행되는 순간에 JVM에 의..
안녕하세요 박스여우입니다.이번에는 JSON에 대해 알아보겠습니다. 우선, JSON이란?JavaScript Object Notation의 약자로 인터넷에서 자료를 주고받을때 표현하는 방법입니다. 특히 컴퓨터 프로그램의 변수값을 표연하는데 적합합니다. JSON의 형식은 javascript를 사용하지만, 언어나 풀랫폼에 독립적인것이 특징입니다. JSON의 기본자료형에는 정수,실수(고정,부동),문자열,배열,객체 가 있습니다. 문자열은 큰따옴표("")안에 넣어서 선언하고, 배열은 대괄호([])안에 넣어서 사용합니다. 또, 객체는 중괄호({})안에 넣어서 사용합니다. 아래는 문자열안에 넣을수있는것 들을 보여주고 있습니다. 위에서 말했듯이 큰따옴표 안에서 이루어 집니다. 아래는 객체의 구조를 나타내주고 있습니다.객체..