본문 바로가기

프로그래밍 일반/JAVA

(21)
[C++/JAVA] 클래스패스와 패키지 클래스패스란? 클래스패스는 컴퓨터에 저장되어 있는 클래스가 어디에 위치하는지 지정한 것이다. 예를 들어서, 클래스가 2개라면 컴파일 했을 때 두 개의 .class파일이 만들어진다. 컴파일 후 실행하면, .bin에서 main함수를 찾아 실행되고 Item2의 클래스를 인스턴스화 한다. 그런데 만약 Item2가 같은 경로(path)에 있지 않다면(같은 패키지) 에러가 발생한다. 이 경우 누락된 Item2클래스의 경로를 지정하면 된다 만약 cmd창에서 직접 컴파일한다면 classpath를 지정해줘야한다. java -classpath ".;lib" ClasspathDemo -classpath옵션은 ClasspathDemo2클래스가 필요로 하는 클래스가 있다면 현재 디렉터리에서 일단 찾아보고 없으면 옵션에 딸려있는..
[C++/JAVA] .src와 .bin폴더의 역할 자바에서 프로젝트를 실행한 뒤에 보통 아래와 같이 패키지와 클래스를 만듭니다. 클래스를 만들면 아래와 같이 src파일에 패키지가 만들어지고, 패키지 않에 .java파일이 생성되게 됩니다. 해당 경로에 실제 가 보면 src파일 말고도 bin파일도 있게 됩니다. 여기서 자바의 컴파일 과정을 통해 src와 bin파일의 역할을 알아보겠습니다. .src는 .java의 소스파일이 있는 곳이다. 사람이 이해할 수 있는 코드가 있습니다. .bin은 .class의 binary파일이 있다. 컴퓨터(JVM)가 이해할 수 있는 코드가 있습니다. .java를 먼저 컴파일러를 통해 bytecode를 만듭니다. 그러면 해당 파일는 바이너리 파일이 되어서 .class파일로 .bin폴더에 저장되게 됩니다. 그리고 run을 하게 되면 ..
[C++/JAVA] JVM은 기생충처럼 동작한다. Java는 Linux, Window의 운영체제와 상관없이 돌아갑니다. 운영체제가 쓰는 언어의 차이는 한국어와 미국어의 차이라고 보셔도 됩니다. Linux에서 만든 파일이나 문서는 Window의 파일의 문서로 읽힐 수가 없습니다. 그런데 웹브라우저에서는 운영체제와 상관없이 문서를 읽는데 이것은 바로 JVM덕분입니다. 이 JVM은 가상머신으로 동작하는데, 가상머신은 컴퓨터에 기생충처럼 동작합니다. 이 과정을 이해하기 위해 소스코드가 컴파일되서 실행되는 동작을 먼저 살펴보겠습니다. 먼저 Java로 소스코드를 작성하면, 이것은 컴파일러를 통해 컴퓨터가 이해할 수 있는, Obj로 변환됩니다. 그런데 이 컴퓨터의 언어로 window, linux, mac마다 다릅니다. 비유를 해드리면, 윈도우는 미국인이고, 리눅스는..
[C++] #import <헤더파일>시에 일어나는 일들 #include 은 컴파일러가 설치된 폴더에서 ‘헤더파일’을 찾으라는 지시입니다. 만약에 #include 을 선언하면 main()함수 안에 strcpy()를 사용할 때, cstring에서 strcpy() 함수를 찾는 것이 아닙니다. 헤더파일에는 strcpy()함수가 실제로 들어있지 않습니다. 헤더 파일은 strcpy()함수의 선언만 들어있으며, strcpy()가 호출되면 C라이브러리 코드를 호출함. 컴파일 할 때 의 역할은 strcpy()함수의 호출이 정확한지 판단하는 데 사용됩니다. 그러면 실제로 Visual Studio에서 실제로 헤더파일이 import되고 과 같은 헤더 파일 내부를 들여다보면 된다. 실제로 위와 같이 헤더파일을 선언하면, 헤더 파일위치로 가서 함수가 맞는지 확인한 뒤에, C++라이브..
UI와 API의 차이란? Interface란? Interface의 의미는 inter(서로) + face(얼굴, 면)입니다. 사전적 의미로는 서로 얼굴을 바라보는 마주보고 대화하는 것을 의미하는데요, 이것을 조금 더 넓게 해석해보면 서로 다른 두 물체가 상호 간 대화하는 방법이라고 규정할 수 있습니다. 위 사진과 같이 사람과 사자가 대화를 하려고 하려고 하면 약속이 필요하겠죠. 가장 좋은 대화 방법은 보다는 이 가장 좋을 것입니다. 예를 들어서, 사람이 사자의 코를 누른다면 "어흥"소리를 낸다거나, 귀를 만지면 "야옹"소리를 낸다는 약속을 할 수 있을 것입니다. 이것을 다시 말하면, 서로 다른 시스템(사람, 사자) 간의 의사소통이 가능하도록 만든 접점(사자의 코, 귀)이라고 말할 수 있습니다. UI(User Interface)란?..