분류 전체보기 259

[Tomcat/Error] Unsupported major.minor version 52.0

Unsupported major.minor version 52.0 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/Catalina/startup/Bootstrap : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1 (Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ... version 52.0은 Java 8(jdk 1.8) 이상의 버전이 필요하나 현재 이보다 버전이 낮아 발생하는 에러이다. 나의 경우에는 서버에 jdk 1.7이 설치되어 있었는데, ..

WAS/Tomcat 2023.10.13

[Java] Stream API - stream().map().collect()

Stream API - stream().map().collect() 1. Stream API (1) Stream API란? - 기존에 배열이나 컬렉션을 사용하면서 코드의 길이가 길어지고 가독성이 떨어지며, 코드의 재사용이 힘들어지는 문제점을 극복하기 위해 Java SE 8부터 Stream API가 추가되었다. -> Stream API는 데이터를 추상화하여 다루기 때문에 배열이나 컬렉션 뿐만 아니라 파일에 저장된 데이터도 모두 같은 방법으로 다룰 수 있게 해준다. (2) Stream API의 특징 ① Stream은 외부 반복을 통해 작업하는 컬렉션과 달리 내부 반복을 통해 작업을 수행한다. ② Stream은 재사용이 가능한 컬렉션과 달리 단 한 번만 사용할 수 있다. ③ Stream은 원본 데이터를 변경하..

[MySQL/Error] com.mysql.cj.jdbc.Driver 오류

com.mysql.cj.jdbc.Driver 오류 해결방법 Spring Boot에 MySQL을 연동시키려고 하였다. application.yml에 datasource 속성을 입력했는데 driver-class-name에서 에러가 떴다. 처음에 다음과 같은 의존성을 추가했음에도 에러는 그대로였다. runtimeOnly 'mysql:mysql-connector-java' runtimeOnly 'mysql:mysql-connector-java:8.0.32' 좀더 구글링해보다가 다음 방법으로 해결하였다. build.gradle 파일에서 다음 dependencies를 추가한 후 gradle을 재실행해주면 된다. dependencies { ... runtimeOnly 'com.mysql:mysql-connector-..

Database/MySQL 2023.10.08

[MySQL] 데이터베이스 생성과 계정 생성 및 권한 부여, 계정 삭제

MySQL 데이터베이스 생성 및 계정 생성, 권한 부여, 계정 삭제 MySQL Workbench에서 다음 쿼리를 실행하였다. 1. 데이터베이스 생성 CREATE DATABASE 데이터베이스명; --ex) CREATE DATABASE dbtest; 2. 계정 생성 및 권한 부여 - 로컬에서만 접속할 수 있는 계정 생성 및 권한 부여 CREATE USER 계정명@'localhost' IDENTIFIED BY '비밀번호'; --ex) CREATE USER myuser@'localhost' IDENTIFIRED BY 'My111!'; GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '계정명'@'localhost'; --ex) GRANT ALL PRIVILEGES ON dbtest.* TO 'm..

Database/MySQL 2023.10.08

[Spring Boot] Spring이란?

Spring이란? 1. Spring은 Framework이다. 2. Spring은 Open Source다. 3. Spring은 IoC 컨테이너를 가진다. - IoC란 Inversion of Control의 약어로, 주도권이 Spring에게 있다는 의미이다. class : 설계도 object : 실체화가 가능한 것 instance : 실체화가 된 것 변수 song은 실체화되어 heap 메모리에 올라간다. 이때 처음에 올라간 song은 다음에 올라간 song과는 아예 다른 변수이므로 heap 메모리에 새로 올라간다. => 이름은 같아도 각각 다른 변수이므로 나중에 관리하기가 힘들어진다. Spring이 class를 관리한다. Spring은 class 전체를 쫙 스캔하여 heap 메모리에 전부 올려놓는다. cla..

IDE/Spring 2023.10.03

[Java] Map 계열 메소드 - get() vs. containsKey()

get() get()은 key에 해당하는 value를 가져올 때 사용한다. public class getMethod { public static void main(String[] args) { HashMap hmap = new HashMap(); hmap.put("fruits", "과일"); hmap.put("apple", "사과"); System.out.println(hmap.get("fruits")); // 과일 System.out.println(hmap.get("apple")); // 사과 System.out.println(hmap.get("banana")); // NullPointerException 발생 } } hmap에 put()으로 key와 value(fruits:과일, apple:사과)를 ..

[Tomcat] 패치 후 웹 반영이 안될 때 해결방법(포트 충돌)

문제상황 검증서버와 운영서버에 ui 패치한 후 톰캣을 재기동하였다. 검증서버는 웹에 정상적으로 반영이 되었으나, 운영서버는 그렇지 않았다. 이를 해결하기 위해 검증서버 ui 전체를 tar로 묶어 운영서버 ui에 덮어씌운 후 톰캣을 재기동하였으나 이 역시 웹 반영이 되지 않았다. 원인 A 고객사는 한 서버 내에 운영서버와 개발서버를 함께 구성해놓았었다. 즉, 한 서버(ex. 192.168.2.71) 내에 2개의 톰캣(운영 및 개발)이 기동되고 있었다. 1. 톰캣의 /work와 /temp에서 이전 작업 저장 톰캣 내 /work와 /temp에 패치 이전의 작업들이 저장되어 있어 패치 이후의 작업이 반영되지 않았다 생각해 해당 디렉토리들을 rm으로 삭제하고 재기동해보았으나 전과 같았다. 2. 톰캣 포트번호 확인..

WAS/Tomcat 2023.09.08

[Java] linux에서 jar 설치

jar 설치 jar는 파일을 압축 및 해제하는 파일 포맷이다. 리눅스 서버에 jar가 설치되어 있지 않아 jar를 설치하였다. 이때, root 이외의 사용자로 접속하여 jar를 설치하려고 하면 제대로 설치가 완료되지 않았다. jar를 설치할 땐 root로 접속해서 진행해야 한다. 1. 설치할 수 있는 jdk 리스트 확인하기 (root에서 실행) # yum list java*jdk-devel jdk 리스트에 jdk 1.6~1.8버전과 11버전이 있다. 2. jdk 원하는 버전 설치하기 # yum install 설치할jdk버전 나는 1.8버전이 필요하므로 java-1.8.0-openjdk-devel.x86_64를 설치하였다. 설치과정 마지막에 Complete! 라는 문구가 출력되면 jar 설치가 완료된 것이다.

[Java/Error] java.net.unknownhostexception

java.net.unknownhostexception 고객사에서 검증 서버를 점검하다 해당 에러를 발견했다. java.net.unknownhostexception: sand ... 생략 ... 'sand'가 알 수 없는 호스트라 발생한 예외라는 의미인데, 서버에 해당 호스트가 등록돼있지 않아 발생하는 에러이다. 해결방법은 간단하다. 리눅스 서버에서 /etc/hosts에 'sand'라는 호스트 IP와 호스트명을 추가하면 된다. 우선 /etc/hosts를 vi로 연다. $ vi /etc/hosts 그다음 호스트 정보를 추가한다. 호스트 IP, 호스트명. 127.0.0.1 localhost 192.168.0.24 sand 이렇게 하면 끝.