오늘의 주인공 java의 Generic 우선 가볍게? 정의 부터 찾아보자. 뭐든지 그 정의가 가장 중요하다. 출처] 네이버 어학사전 그렇다면 프로그래밍에서의 Generic은 어떻게 정의되어 있는지 찾아보았는데 '제네릭은 뭐다." 이렇게 깔끔하게 딱 떨어지는 정의는 마땅히 찾지 못하고, 가장 잘 설명한 문장을 찾았다. 제네릭은 '클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법'이다. 그러면 왜 클래스 내부에서 사용할 데이터 타입을 밖에서 지정해주자는 것일까? 그래서 준비했다. 아래 상황을 살펴보자. 자바를 너무 좋아하는 촉이 좋은 '감자바'씨는 친구 '좀해조'씨로부터 두개의 숫자를 출력 하는 프로그램을 만들어 달라는 요청을 받았다. 그래서 우리 감자바씨는 흔쾌히 만들어주겠다고 하며 두팔 걷어부..
프로그래밍 언어/Java
자바 가상 머신 (Java Virtual Machine, JVM) 자바 가상 머신은 물리적인 실제의 기계 장치가 아니라 추상적인 장치이며, 클래스 파일을 실행할 수 있는 기계어 파일로 번역해준다. 자바 가상 머신은 클래스 영역, 자바 스택 영역, 힙 영역, 네이티브 메소드 스택 영역으로 구성되어 있다. 1. 클래스 영역 : 실행에 필요한 클래스들을 로드하여 저장하는 공간이다. 로드된 클래스의 멤버 메소드들은 메소드 영역에 저장되고, 상수들은 상수 영역에 저장된다. 또한 사용자가 작성한 클래스 코드를 저장하는 영역이다. 2. 자바 스택 영역 : 자바 프로그램을 수행하면서 발생하는 메소드 호출과 복귀에 대한 정보를 생성하여 저장하고 관리하는 공간이다. 그렇기 때문에 인터럽트가 발생하는 등의 요청이 중간에 발..
java 개발을 하려면 환경변수를 설정해야한다. 아니 더 정확히는 명령 프롬프트에서 컴파일하고 실행하려면 환경변수를 설정해야 한다. 명령 프롬프트는 cmd창으로 알고 있는 보통 검정색 있어보이는 화면을 말한다. 우선 환경변수라는것이 무엇인지부터 알아보자. IT(정보기술) 용어로, OS의 셸(shell) 등에 설정되어 있다. 변수의 이름과 의미는 미리 정해져 있기 때문에 환경변수를 읽으면 시스템의 설정을 어느 정도 알 수 있다. OS의 환경변수는 시스템의 실행파일이 놓여 있는 디렉토리의 지정 등 OS 상에서 동작하는 응용소프트웨어가 참조하기 위한 설정이 기록된다. 응용소프트웨어로부터는 시스템 콜(system call:프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영체계의 루틴을 호출하여 이용하는 것)이..
static... 스태틱.. 자바를 맨 처음 시작하면 보게되는 단어 중 하나인 static이라고 쓰고 스태틱 이라고 읽는 바로 저 스태틱 기계처럼 외워서 쓰게되는 그 문장 public static void main(String[] ar) { ... } 바로 저 스태틱 dynamic의 반대되는 개념이라고도 하는 저 동적이지 못한 static이란 무엇일까 나에게 처음 Hello World 출력의 기쁨(?)을 (사실 그렇게 기쁘진 않았고, 처음 보는건데 당연하다 생각했다..) 선물해준 김승현씨 (열혈강의 Java 프로그래밍의 저자)의 가르침을 더듬어 보았다. (사실 static도 누군가의 질문이었다) '그래, static이 정적인건 알겠어, 그래서 뭐. 어떡하라고. 그게 왜. 뭐가 다른데. 이건 어따쓰는데?'..
객체지향 개념 개념 설명 기능적 분해 구조적 언어를 사용하는 프로그래머들은 보통 기능적 분해 관점으로 프로그램 설계에 접근한다. 기능적 분해라고 하는 것은 문제들을 좀 더 작은 단위의 기능들로 나누는 방법을 의미한다. 각각의 함수는 제어하기 쉬워질 때까지 분해된다. 변경되는 요구사항들 변경되는 요구사항은 개발 프로세스의 관점에서 본다면 필수적인 것이다. 훌륭하고 완벽한 요구사항의 정의를 만들어내지 못한 것에 대해 우리 자신이나 사용자들에 대해 비난하기보다, 변경되는 요구사항을 더욱 효과적으로 대응할 수 있는 개발 방법을 채택해야 한다. 객체 객체는 자기 자신의 책임에 의해서 정의된다. 객체는 자기 자신에 대해 책임짐으로써 자신을 이용하는 프로그램의 작업을 단순화한다. 생성자와 소멸자 객체는 생성되고 소멸..
많은 사람들을 만나본게 아니라 확실히는 모르겠지만, 처음 언어를 시작하는 사람들의 대부분이 API에 대해 생각하지 않는 것 같다. 이번엔 JAVA API에 대해 알아보려 한다. 개인적으로 무언가 새로운 것을 알아갈 때 그 사전적 정의부터 찾아본다. API : Application Programming Interface 응용 프로그램 프로그래밍 인터페이스 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. - 우리 모두의 백과사전 위키백과 첫 번째 줄에 주목해 보자 "응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능" ..