목록DEV&OPS/Java (148)
삶 가운데 남긴 기록 AACII.TISTORY.COM
객체지향 언어 객체지향 언어는 캡슐화, 상속, 다형성이 특징입니다. 클래스(class) 클래스는 기본 데이터 타입들(int , char, ...)로 된 변수(필드)들과 그들을 다루기 위한 동작(method)들을 정의한 객체(object)로 인스턴스(instance: 메모리에 구현된 객체)를 생성하기 위한 설계도입니다. 클래스 내부에 정의된 변수(필드)와 메서드들을 그 객체의 멤버(member)라고 부릅니다. 클래스 이름은 대문자로 시작하도록 이름을 정하는 것이 관례입니다. 캡슐화 데이터(필드)를 외부로부터 숨겨서(은닉화) 접근을 허용하지 않는 대신 제어 가능한 일부 필드와 메서드를 제공합니다. 자바에서는 접근 제한자를 이용하여 구현합니다. 접근 제한자 public : 모든 접근 허용 protected :..
if~else class Sample { public static void main(String[] args){ int num = (int)(Math.random()*6) +1;//주사위 번호 뽑기 if(num == 1) { System.out.println("1번이 나왔습니다."); }else if(num == 2){ System.out.println("2번이 나왔습니다."); }else { System.out.println("3번이상이 나왔습니다."); } } } switch class Sample { public static void main(String[] args){ int num = (int)(Math.random()*6) +1;//주사위 번호 뽑기 switch(num) { case 1: Sy..
단항 연산자 1. 부호 연산자: +, - int i = -100; 2. 증감 연산자: ++, -- int x = 1; int y = 1; int result1 = ++x + 10;//먼저 x를 1증가 후 연산 int result2 = y++ + 10;//연산 후 y를 1 증가 3. 논리(boolean) 부정 연산자: ! boolean isComplete = false; System.out.println(isComplete); System.out.println(!isComplete); 4. 비트 반전 연산자: ~ 비트 반전 연산자는 정수 타입에만 사용됩니다. 비트 반전을 하고 나면 데이터 타입이 int 타입이 됩니다. 최상위 비트는 부호비트이므로, 비트 반전시 최상위 비트 포함해서 반전이 되므로 부호가 반..
변수(variable) 변수는 값을 저장하는 메모리 공간을 가리키는 메모리 주소를 참조하는 이름을 붙인 것입니다. 변수의 선언 변수는 사용하기 전에 선언을 해야 합니다. 왜냐하면 저장되는 값의 데이터 타입(data type)에 따라서 메모리 공간의 크기가 달라지기 때문입니다. 그 데이터 타입의 크기만큼 공간을 미리 확보해서 다른 프로그램이 값을 변경시키지 못하도록 해야 하기 때문입니다. int age; 여기서 int가 데이터 타입(정수형)이고 age가 변수입니다. 변수 작성 관례 1. 알파벳 소문자로 시작합니다. 2. 단어를 합성할 때 첫 글자를 대문자로 합니다. (낙타등 표기법) 3. 자바에서 사용하는 예약어는 금지입니다. char charData; 변수 할당 연산자 = = 은 수학에서는 같다의 뜻이지..
JDK 구버전 다운로드 최신 버전은 연구용이나 학습용으로 주로 사용됩니다. 프로젝트에서는 보통 최신 버전을 사용하지 않고 안정화되고 대중화된 버전을 사용합니다. 그래서 jdk 구버전이 필요할 때가 있습니다. 아래는 오라클에서 제공하는 모든 구버전 다운로드에 관한 링크입니다. https://www.oracle.com/technetwork/java 단, 오라클 계정이 필요합니다. JDK JDK는 java virtual machine 실행환경과 개발환경 모두 포함되어 있습니다. jdk설치 경로에는 bin 디렉토리가 있는데, 거기에 javac 가 .java 소스코드를 .class로 컴파일 해주는 컴파일러이고, java가 class를 실행해주는 실행 파일입니다. (윈도우: 제어판>시스템 및 보안>시스템>고급 시스..
이클립스, 전자정부프레임워크, STS 등에서 웹프로젝트를 import 하고 나서 JSP 파일을 열었는데 한글이 깨졌습니다. 검색 후에 흔히 나와 있는 방법들을 시도해 보았으나 실패. 다른 에디터(note pad 등)로 열었을 때는 문제가 없었으므로 한글 인코딩 자체가 망가지지는 않았습니다. 검색 해서 나오는 인코딩 UTF-8 설정 등을 모두 시도해보았는데도 여전히 한글이 깨져서 나온다면 다음을 시도해 보시기 바랍니다. 이클립스 메뉴 > window > Preferences 1. General > Content Types 을 눌러보면 위의 화면이 나옵니다. 2. 거기서 Text를 선택 후 JSP를 클릭하세요. 3. File associations의 *.jsp를 눌러 보세요. 4. 그리고 해당 문서의 한글 ..
https://으로 된 사이트를 방문하다 보면 마주치는 오류들이 있습니다. 브라우저마다 약간씩 차이가 있지만 아래와 같은 오류 메시지가 나왔을 때 해결 방법을 알아보겠습니다. 이 웹 사이트의 보안 인증서에 문제가 있습니다. 이 웹사이트에 안전하게 연결하는 동안 문제가 발생했습니다. 이 사이트는 안전하지 않습니다. 연결이 비공개로 설정되어 있지 않습니다. 1. 시스템 시간 확인 날짜/시간이 올바르지 않은 경우 인증서 오류가 발생할 수 있습니다. 2. 인터넷 옵션 변경 스크롤을 내리다보면 보안 설정 부분에 "인증서가 하나만 있는 경우 클라이언트 인증서 선택 안 함"을 사용으로 선택하시고 "크기 및 위치 제한 없이 스크립트 실행 창을 열 수 있습니다"를 사용으로 선택하십시오. 그리고 확인 버튼을 누른 후 재부..
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코딩(UTF-8) 확인 메뉴> Window > Preferenc..
https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389 KISA 인터넷 보호나라&KrCERT KISA 인터넷 보호나라&KrCERT www.boho.or.kr Log4j 2 버전에 존재하는 JNDI(Java Naming and Directory Interface) 인젝션 취약점으로, 이를 악용하면 원격 코드 실행이 가능하게 됩니다. CVSS스코어 10점 만점중 10점 위험도로 가장 높은 위험도의 취약점 수준이 심각하므로 빠른 대응이 필요합니다. 보안 취약점 영향받는 log4j 버전 2.13~2.15 : CVE-2021-45046(서비스 거부 취약점) 1.2.x 모든 버전: CVE-2021-4104(원격 코드 실행 취약점)..
Quartz 1.8.6 Spring3.X 프로젝트에서는 Quartz 2.X 이상을 지원하지 않아서 보통 Quartz 1.8.6을 많이 사용합니다. http://www.quartz-scheduler.org/downloads/ Downloads www.quartz-scheduler.org Maven pom.xml org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.quartz-scheduler quartz 1.8.6 Spring 3.X 에서 quartz를 사용하기 위해 1.8.6 버전으로 사용..
증상 톰캣은 정상적으로 구동이 되었지만, catalina.out의 로그를 살펴보았을 때, ... is exceeding the 65535 bytes limit 메시지와 함께 특정 jsp 화면이 에러가 나는 경우가 있습니다. jsp 파일 사이즈가 초과된 경우에 발생합니다. 조치 tomcat 경로 안에 있는 web.xml을 열어서 태그 안쪽에 아래의 내용을 추가합니다. mappedfile false web.xml 내용을 저장하고 tomcat을 재시작 합니다.
개요 우리는 자바 3rd-party 라이브러리(jar)를 사용할 때 보통 maven이나 gradle 같은 빌드 도구를 사용합니다. 빌드 도구들은 해당 라이브러리에 대한 의존적인 클래스나 라이브러리를 같이 컴파일 및 실행을 해주기 때문에 보통 문제가 없습니다. 하지만 운영을 하다가 수동으로 라이브러리를 추가하거나 업데이트할 일이 있는 경우가 있는데, 이때 우리는 종종 ClassNotFoundException과 NoClassDefFoundError을 만나게 되는 경우가 있습니다. 저는 JDBC, SOAP통신용 라이브러리나 REST Client 용 라이브러리를 추가하거나 업데이트 시에 이런 문제가 생겼기 때문에 해당 오류를 따로 조사를 해봤습니다. Class Loader(JAVA8 이하) JVM이 class의..
1. JDK설치 자바는 Open JDK 와 Oracle JDK 가 있습니다. https://openjdk.java.net/ OpenJDK Download and install the open-source JDK for most popular Linux distributions. Oracle's free, GPL-licensed, production-ready OpenJDK JDK 14 binaries are at jdk.java.net/14; Oracle's commercially-licensed JDK 14 binaries for Linux, macOS, and Windows, bas openjdk.java.net https://www.oracle.com/kr/java/technologies/javas..