가끔 큰 숫자를 쓰다보면 위와 같이 The Literal of type int is out of range 라는 에러가 발생할 경우가 있습니다. 말 그대로 그대로 int유형 범위(–2,147,483,648 ~ 2,147,483,647) 의 값을 벗어났다는 의미입니다. 기본적으로 숫자의 Defualt 인식값이 int로 되어 있어서 나타나는 현상인데요 해결 방안 에러를 해결하기 위해서는 이 숫자는 Long타입이라는 것을 명시해주어야 합니다. 숫자끝에 위와 같이 알파벳L을 붙이시면 이 값은 Long타입이라는것을 명시할 수 있습니다.
이클립스에서 자바 프로젝트를 컴파일할때 위와 같은 Editor does not contain a main type이라는 에러가 발생하거나 Selection does not contain a main type 에러가 발생할때의 대처방법에 대해서 알아보도록 하겠습니다. 자바 파일이 src폴더 밖에 있는 경우 scr폴더가 없다면 프로젝트 우클릭 -> Java Build Path -> Source -> Add Folder를 눌러 src폴더를 만들어주고 그 안에 자바 클래스 파일을 넣으시면 됩니다. 프로젝트에서 JDK를 인식하지 못하고 있는 경우 프로젝트 우클릭 -> Project Facets -> Java를 사용하고 있는 버전으로 바꿔줍니다. 이밖에 발생할 수 있는 경우들 1. main함수가 존재하지 않거나 오..
개발환경 세팅 후 컴파일을 하면 아래처럼 Can't load IA 32-bit .dll on a AMD 64-bit platform이라는 에러가 뜰 때가 있습니다. 자바 프로젝트에서 DLL을 호출할때 나타나는 에러로 빌드한 DLL 파일은 32bit이지만 JVM은 64bit 이기 때문에 발생하는 에러입니다. 해결 방안 1. dll 파일을 64bit로 빌드한다. 2. JVM을 32bit로 설정하여 컴파일 한다. 이 중에서 2번째 방법이 더 간단하고 향후 똑같은 문제가 발생하는 것을 예방하실 수 있습니다. 현재 설치되어 있는 JDK 32bit / 64bit 확인하기 cmd창을 켜신 후 java -d64 -version 이라고 입력했을 때 위와 같이 나온다면 64bit JDK가 설치된 것입니다. JVM을 32B..
이클립스를 신규 설치 후 이클립스를 실행하였더니 위와 같은 에러가 떴습니다. 위의 에러를 그대로 해석하자면 JVM 버전 15.0.2이 이 이클립스에 적절하지 않고 JVM 16 이상이 필요하다는 내용입니다. 즉 이클립스에서 필요한 JDK의 버전과 현재 PC에 설치되어있는 JDK의 버전이 다르기 때문이고 이 문제를 해결하려면 이클립스에서 요구하는 JDK와 현재 PC에 설치되어있는 JDK의 버전을 맞춰주시면 됩니다. version 1.7.0_80 of the jvm is not suitable could not create the java virtual machine 이클립스 실행시 위와 같은 오류도 아래 해결방안을 통해 해결이 가능합니다. 해결방안 1. 이클립스를 구 버전으로 재설치한다. 2. JDK를 이클..
가끔가다 위와 같이 클래스에 cannot be resolved to a type이라는 오류메시지를 보신적이 있으실겁니다. 이 경우 대부분 프로젝트내에 라이브러리가 추가되지 않아서 생기는 문제입니다. JDK내부에 있는 클래스에서 오류가 난다면 JDK가 제대로 잡히고 있지 않다는것이니 아래글을 참고하셔서 해결해주시기 바랍니다. [Jsp] cannot be resolved to a type 오류해결 이클립스 프로젝트에 라이브러리 추가하기 1. 라이브러리를 추가하고 싶은 프로젝트에 우클릭을 한 후 Properties로 들어갑니다. 2. 좌측 트리에서 Java Build Path를 클릭하고 Libraries탭에서 추가해주시면 됩니다. 프로젝트 내부(lib폴더)에 라이브러리가 존재할 경우에는 Add Jars 버튼을..
가끔 프로젝트의 절대주소가 필요한 경우가 종종 있습니다. 하지만 여러군데에서 import한 프로젝트의 경우 프로젝트의 위치를 가끔씩 까먹을 경우가 있는데요. 오늘은 유용하게 사용할 수 있는 프로젝트의 절대주소를 확인하고 해당 위치로 이동하는 방법에 대해 포스팅하도록 하겠습니다. 절대주소 : 로컬에 저장되어 있는 프로젝트의 위치 상대주소 : 프로젝트를 실행시켰을 경우의 도메인 주소 이클립스 프로젝트 절대주소 및 저장된 폴더 이동 1. 프로젝트에 우클릭을 한뒤 Properties를 클릭합니다. 2. Resource의 Location에 프로젝트가 저장되어있는 절대주소 위치가 나타나 있습니다. 해당 폴더로 이동하고 싶다면 주소 옆에있는 이동 아이콘을 클릭하시면 됩니다. 3. 프로젝트가 있는 폴더의 위치로 이동됩..
기존에 Java Application으로 작업한 프로젝트도 필요에 따라서는 Dynamic Web Project로 변환할 수 있습니다. 기존에 Web Project였음에도 불구하고 이클립스에서 인식을 못하여 Java Project로 인식하는 경우에도 Web Project로 구조를 바꾸어 줄 수 있습니다. Java Project와 Web Project구분 Java Project와 Web Project의 구분은 아이콘으로 구분하시면 됩니다. 자세히 보시면 두개의 아이콘이 다르답니다. Java Project를 Dynamic Web Project로 변환하기 1. 변환하고자 하는 프로젝트에 오른쪽 클릭을 한 후 Properties창을 켭니다. 2. 좌측 트리에서 Project Facets를 클릭한 후 Convert..
이클립스에서는 다른곳에서 받아온 프로젝트를 손쉽게 가져와서 작업할 수 있습니다. 꼭 WorkSpace안에 있는 프로젝트만 가져올 수 있는것이 아니라. 경로가 어디가 되었든 상관없이 가지고 올 수 있습니다. 오늘은 이클립스에서 프로젝트를 어떻게 가지고 오는지에 대해 포스팅 해보려합니다. 이클립스(Eclipse) 프로젝트 추가(import)하기 1. 상단바에서 File -> Import를 선택합니다. 2. 프로젝트의 형태마다 다르겠지만 폴더로 되어있는 프로젝트라면 General -> Existing Projects into Workspace를 클릭합니다. 프로젝트가 War파일로 되어있다면 Web-> War file로 import하시면 됩니다. 3. import할 프로젝트의 위치를 선택하고 Finish를 누릅..
데코레이터(Decorator pattern) 패턴이란? 데코레이터 패턴(Decorator Pattenr)은 주어진 상황 및 용도에 따라 어떤 객체에 책임(기능)을 동적으로 추가하는 패턴을 말합니다. 데코레이터라는 말 그대로 장식이라고 생각하시면 편합니다. 기본 기능을 가지고 있는 클래스를 하나 만들어주고 추가할 수 있는 기능들을 추가하기 편하도록 설계하는 방식입니다. Component : 실질적인 인스턴스를 컨트롤하는 역할 ConcreteComponent : Component의 실질적인 인스턴스의 부분으로 책임의 주체의 역할 Decorator : Component와 ConcreteDecorator를 동일시 하도록 해주는 역할 ConcreteDecoreator : 실질적인 장식 인스턴스 및 정의이며 추가된..
템플릿 메소드 패턴(Template Method Pattern)이란? 템플릿 메소드 패턴이란 특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴입니다. 디자인 패턴이라고 하기도 뭐할정도로 객체지향 언어로 개발을 하다보면 무의식적으로 사용하는 패턴입니다. 주로 개발을 하다보면 구체적인 구현은 다르지만 기본적인 기능은 비슷한 경우가 종종 있습니다. 예를 들면 HTTP와 SMTP Client 프로그램의 경우, 주고받는 메시지의 내용이 서로 다를 뿐 둘 다 인터넷 프로토콜을 이용하여 서버에게 요청을 전달하고 결과를 수신한다는 점에서 동일합니다. 이처럼 두개 이상의 프로그램이 기본적으로 동일한 골격 하에서 동작할때 기본 골격에 해당하는..
프록시 패턴이란? 프록시는 대리인이라는 뜻으로, 무엇인가를 대신 처리하는 의미입니다. 일종의 비서라고 생각하시면 됩니다. 사장님한테 사소한 질문을 하기보다는 비서한테 먼저 물어보는 개념이라고 생각할 수 있겠습니다. 이렇게 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조 하는것이 아니라, 해당 객체를 대행(대리, proxy)하는 객체를 통해 대상객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고 또한 실제 객체의 기능이 반드시 필요한 시점까지 객체의 생성을 미룰 수 있습니다. 예를 들어 용량이 큰 이미지와 글이 같이 있는 문서를 모니터 화면에 띄운다고 가정하였을때 이미지 파일은 용량이 크고 텍스트는 용량이 작아서 텍스트는 빠르게 나타나지만 ..
옵저버 패턴(Observer Pattern)이란? 옵저버패턴이란 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴입니다. 어떤 객체의 변경 사항이 발생하였을때 이와 연관된 객체들에게 알려주는 디자인 패턴이라고 생각하시면 됩니다. 옵저버 패턴에는 주체 객체와 상태의 변경을 알아야 하는 관찰 객체(Observer Object)가 존재하며 이들의 관계는 1:1이 될 수도 있고 1:N이 될 수도 있습니다. 옵저버 패턴의 장단점 장점 1. 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있습니다. 2. 느슨한 결합으로 시스템이 유연하고 객체간의 의존성을 제거할 수 있다. 단점..
싱글톤 패턴(Singleton Pattern)이란? 싱글톤 패턴은 객체를 딱 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴을 말합니다. 개발을 하다 보면 전역적으로 하나의 객체만을 사용해야 하는 경우가 종종 있습니다. 하지만 특별히 제한을 걸어두지 않는다면 객체들이 여러 개로 복제되는 경우가 생길 수 있겠죠. 싱글톤 패턴을 사용하면 객체 생성을 단 한 번으로 제한하여 객체들이 복제되는 경우를 방지할 수 있습니다. 또한 클래스를 사용하는 여러 곳에서 인스턴스를 계속 생성하여 불필요하게 메모리 낭비를 유발할 수 있다고 판단되는 경우에도 싱글톤 패턴을 사용할 수 있습니다. 싱글톤 패턴의 장점 1. 메모리 낭비를 방지할 수 있다. 2. 싱글톤으로 만들어진 클래스와 다른 ..