자바
-
[CentOS] JDK 컴파일 설치 및 서버 환경설정IT, 프로그래밍/Linux 2019. 3. 20. 15:22
기본적인 서버 구동환경 및 서블릿을 구동하기 위한 자바 실행환경을 구축해 보도록 하겠습니다. 1. yum repolist 명령으로 현재 yum의 저장소 구성 상태를 확인합니다. 2.yum에 있는 dependency들을 update합니다. yum update -y 옵션을 주면 업뎃할까요? 라고 안물어보고 알아서 합니다. 3.서버를 구동하는데 필요한 기본적인 패키지들을 설치합니다. yum install crontab -> 특정 시간마다 작동이 가능한 스케줄러입니다. yum install rdate -> 로컬 서버의 시간을 타임 서버(Time Server, 정확한 시간 정보를 제공하는 서버)와 동기화 시킵니다. yum install gcc -> GNU 프로젝트의 오픈소스 컴파일러 컬렉션으로, C계열의 언어를 ..
-
인텔리제이에서 JDK 버전이 안 맞을때 해결방법IT, 프로그래밍/Java 2019. 2. 12. 10:10
인텔리제이에서 자바 기반의 프로젝트를 진행하다보면, 프로젝트에 분명 JDK 경로를 잡아주었는데도 불구하고, 다른 버전이 설정되어 있을 때가 있다. 나 같은 경우에는 JDK 1.8을 설정했음에도 불구하고, JDK 1.5를 계속 찾아서 API를 사용하기가 힘들었다. 그럴경우, 아래와 같이 설정 해 주면 된다. 1.제일 상단 바에 가서 FIle - > Project Structure -> Module -> (프로젝트 더블클릭) -> Sources -> Language level -> JDK 버전 설정 2. Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Target bytecode version -> 설정할 버전
-
[JAVA/WEB] Properties 파일로 중요 정보 관리하기IT, 프로그래밍/Java 2019. 1. 28. 09:37
어플리케이션을 만들다 보면 중요한 정보를 사용해야 할 때가 있다. 그런데 이걸 소스내에 하드코딩해서 관리하기엔 아래와 같은 문제가 있다. 1. 런타임 중에 변경할 수 없다. 즉 정보가 하나라도 변경되면 서버를 껐다가 켜야한다. 2. 유지보수가 힘들다. ENUM이나 상수로 정의해서 사용해도 되지만, 결국은 소스코드를 뒤져야 하며, 유지보수에 악영향을 미친다. 3.보안 처리가 힘들다 소스코드 자체는 암호화 하기가 힘들다. 파일로 따로 빼서 관리하면 IO 과정에서 암/복호화 할 수 있으므로 보안에 유리하다. 1234db.driverName=com.mysql.jdbc.Driverdb.url=jdbc:mysql://localhost:3306/mydbdb.id=myiddb.pwd=mypwdcs JDBC 접속 정보를..
-
[JAVA] Servlet Build Path 설정IT, 프로그래밍/Java 2019. 1. 24. 15:54
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 처음 서블릿 프로젝트를 만들었을 때, 이라는 에러가 뜨는 경우가 있다. 말 그대로 현재 상속받는 서블릿 코드를 지금 설정해놓은 Build Path에서 못 찾았다는 뜻이다. 이럴 때는 서블릿을 구동 시킬 수 있는 환경을 설정해 주면 해결된다. 만약 톰캣을 안깔았으면 먼저 톰캣을 설치하고 환경설정 까지 끝내주자. Project 파일의 제일 상단에서 우클릭 -> Build Path -> Configure Build Path.. Add Library.. 클릭 Server Runtime 클릭 class path에 잡혀있는 서버 목록이 뜬다. 해당 환경을 선택하고 ..
-
[Java] javap를 사용하여 바이트코드를 확인해보자IT, 프로그래밍/Java 2019. 1. 9. 15:11
가끔 코드를 작성하다 보면 실제 동작되는 바이트 코드를 확인하고 싶을 때가 있습니다.이럴 때 JDK에 내장되어 있는 javap 라는 역어셈블러를 사용하면 됩니다. 1. cmd를 켜서 workspace에 있는 프로젝트 파일 안의 bin 폴더로 이동합니다. ( cd C:\user\kim\workspace\yourProejct\bin )2. javap -c 패키지명.클래스파일명 으로 명령을 수행합니다. 기타 옵션 -? 도움말을 출력 -l 클래스 내 모든 라인 번호와 지역변수 테이블을 출력합니다 -public 클래스 내 public 접근 지정자로 선언된 클래스와 멤버를 출력합니다. -protected 클래스 내 protected 접근 지정자로 선언된 클래스와 멤버를 출력합니다. -private 클래스 내 pri..
-
[JAVA] 채팅 만들기 완전 분석 ( 에코 서버 - 클라이언트 )IT, 프로그래밍/Java 2019. 1. 9. 09:40
보통 자바를 배우는 초심자에 있어서 과제의 끝판왕(?)이라고 불리는 채팅 프로그램에 대해서 알아보겠습니다.채팅 프로그램을 만들기 위해서는 아래와 같은 배경지식이 필요합니다. 네트워크 기초 (TCP/IP)JAVA I/O (Stream)Thread (Multi-Chatting 구현시 사용) 채팅의 원리 서버-클라이언트 : 서버와 클라이언트 모두 네트워크에 연결되어 IP를 할당 받고 있는 디바이스 입니다. 서버는 클라이언트가 필요한 자원을 가지고 있습니다. 클라이언트는 서버에 특정 자원에 대한 요청을 하면 서버는 그 자원을 찾아서 응답을 해 줍니다.지금 이 글을 보고 있는 것도 티스토리에 있는 서버에 브라우저를 통해 이 글에 대한 자원을 요청했고, 서버가 그에 응답으로 자원을 주었기 때문에 볼 수 있는것이 가..
-
스프링 환경에서 자바 7이하에서 8로 업그레이드 시 유의할 점IT, 프로그래밍/Spring 2018. 9. 3. 17:51
1. 이클립스 버전을 케플러 이상으로 업그레이드2. 스프링 버전을 3.2.9 혹은 4 이상으로 업그레이드 할 것.만약 안하면 org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet 이런 끔찍한 에러가 발생한다. 출처 : https://stackoverflow.com/questions/22526695/java-1-8-asm-classreader-failed-to-parse-class-file-probably-due-to-a-new-java http://www.gm0604.kr/w..
-
엑셀 SAX 파싱 예제IT, 프로그래밍/Spring 2018. 7. 30. 20:59
12345678910111213 org.apache.poi poi 3.17 org.apache.poi poi-ooxml 3.17 Colored by Color Scriptercs maven에 아파치 poi 의존성 추가 밑은 공식 예제 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125..