전체 글 34

JAVA equals, hashCode 메소드

자바에서 모든 객체들이 기본적으로 상속받는 Object 클래스에 기본적으로 equals와 hashCode 메소드가 존재한다. equals 메소드두 개의 객체가 동일한지 비교하는데 쓰이는 메소드이다.기본적으로 두 객체의 주소값이 동일할 경우 true를 return한다.보통 equals 메소드를 오버라이드 후 객체 내부의 값을 비교하여 동일 여부를 판단하곤 한다. hashCode 메소드객체가 저장되어 있는 주소값을 기준으로 hashCode를 생성하여 return 한다.어플리케이션이 실행되는 동안 하나의 객체는 항상 동일한 hashCode값을 return한다. hashCode native 메소드로 경우 자바가 아닌 C, C++ 같은 네이티브 언어로 작성된 메소드이다.자바 프로그램에서는 JNI(Java Nati..

BackEnd/Java 2023.05.18

gradle 프로젝트가 build 안될 때 - java.lang.IllegalStateException: Module entity with name

윈도우 11에서 기존 프로젝트를 Git에서 checkout 하였으나 아래와 같은 에러로 정상적으로 build하지 못하고 있었다. 해결방법 실제 프로젝트명과 setting.gradle의 rootProject.name을 일치시켜 주었더니 바로 해결되었다. 반드시 대/소문자를 맞춰주자 + 윈도우 10에서 동일한 상황을 재현하려하였으나 대/소문자가 일치하지 않음에도 해당 문제가 발생하지 않았다. 출처 : https://youtrack.jetbrains.com/issue/IDEA-317606

BackEnd/Spring 2023.05.16

JAVA finalize() 소멸자 메소드에 대해

주의 - finalize 메소드는 JAVA 9부터 Deprecated되었으며 사용하는 것을 지양하자          try-finally, try-with-resources를 이용하여 처리해주자 글 다시 작성했습니다. 아래 글 참고해주세요https://potwings.tistory.com/63 X바(자바) finalize 메소드 쓰지마세요Java9부터는 Deprecate 되었어요 쓰지 마세요. 과거 필자는 특정 객체 동작하면서 남긴 임시 파일을 해당 객체가 소멸될 때 제거되도록 하기 위해finalize 메소드를 사용하여 처리하려 했던 적이 있었potwings.tistory.com  finalize 메소드는 자바에서 객체가 더 이상 참조되지 않을 때 Garbage Collector가 불필요한 메모리를 회수..

BackEnd/Java 2023.05.14

IntelliJ 대소문자 구분 없이 자동완성 (lombok 안될때(?).....)

PC를 바꿔서  인텔리제이를 새로 설치 후 프로젝트를 생성하는데 자동 완성에 lombok이 안보여서 안잡힌다고 생각하고 있었다....  별의 별 설정을 다 해도 getter setter 자동완성이 안되어서 정신이 나가버렸는데어노테이션 자동완성을 보니 lombok에 포함된 친구들이 보이더라...  하도 예전에 설정해서 까먹고 있었는데 인텔리제이에서는 대/소문자가 다를 경우 기본값으로 자동완성을 해주지 않는다.따라서 아래와 같이 설정해주면 된다. 1. 상단바의 File > Setting (단축키 ctrl + alt + s)를 통하여 설정 페이지 접근 2. Editor > Code Completion 에서 Match case 체크 박스를 해제 후 저장해준다. 이제 정상적으로 getter를 찾아올 수 있었다...

카테고리 없음 2023.05.14

Spring AntPathMatcher URL 체크 시 OR 조건 매핑

/api/{spring:[원하는 URI||원하는 URI2]+} 위와 같은 형식으로 넣어주면된다 spring: 후 원하는 정규표현식을 넣어주고 +를 써주면 정상적으로 처리가 된다. 패턴은 매칭 진행 시 아래와 같은 조건문이 존재하므로 검사하려는 path와 pattern의 시작 값의 형식을 맞춰주자(pathSeparator의 default값은 "/"이다) https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

BackEnd/Spring 2023.03.02

Window 자바 버전 변경

윈도우에 자바 17을 설치하였는데 더 낮은 버전이 필요해졌다. 너무 오랜만에 하려니 방법을 까먹어서 기록해둔다... 윈도우에서 자바 버전을 변경할 때는 시스템 환경 변수의 변경이 필요하다. 1. 시스템 속성 창에 접근 시스템 속성 창은 시작 > 설정 > 시스템 > 정보 > 고급 시스템 설정 또는 window키 + R (실행) 에서 sysdm.cpl을 입력하여 접근할 수 있다. 위의 방법을 진행하면 아래와 같은 시스템 속성 창이 나오는데 고급 탭으로 이동 시 환경 변수라는 항목이 보일 것이다. 환경 변수 중 시스템 변수에 JAVA_HOME을 원하는 자바 JDK의 경로에 맞추어 편집(없다면 새로 만들기) 이후 시스템 변수 중 Path라는 항목을 찾아서 편집을 누른 후 새로만들기로 %JAVA_HOME%\bin..

Server 2023.01.08

Linux root 계정으로 SSH 접근이 안될 때 / 접근 막을 때

한 줄 요약 허용 - /etc/ssh/sshd_config의 40번째 라인에 있는 PermitRootLogin을 주석 해제 후 yes로 변경해준다. 차단 - 설정 값을 no로 변경해준다. 로키 리눅스 네트워크 세팅 후 ssh client로 연결하려는데 root 계정으로 로그인이 안되었다. 확인해보니 Rocky 설치 시 root로 ssh 접근을 체크하지 않아 발생하였다. 이를 해결하기 위해선 ssh 설정값 수정이 필요했다. vi /etc/ssh/sshd_config 를 통하여 설정 파일 접근 후 PermitRootLogin 값을 변경해준다. PermitRootLogin 값을 yes로 값 수정해준다. ( PermitRootLogin 값에 따른 설명 prohibit-password - 비밀번호를 통한 로그인 ..

Server 2023.01.08

Rocky Linux 고정 아이피 설정

Rocky Linux 는 Centos와 달리 NetworkManager를 통하여 설정해주어야 한다. 방법은 총 두가지가 존재한다. nmtui를 이용한 설정법 1. nmtui 명령어 실행 2. Edit Connection에서 네트워크 인터페이스 수정 3. Activate a connection에서 해당 네트워크 인터페이스 활성화(비활성화 후 활성화) 1. 콘솔에서 nmtui 입력 시 아래와 같은 화면이 나온다. 만일 아래와 같은 화면이 나오지 않을 경우 NetworkManager를 우선 설치해주자 ( yum install NetworkManager ) Edit a connection을 누르면 사용 가능한 네트워크 인터페이스 목록이 나온다. Edit 버튼을 통하여 편집을 진행할 수있다. IPv4 CONFIG..

Server 2023.01.04

MySQL 테이블 대/소문자 구분

JPA를 활용하여 생성한 프로젝트를 진행하는 중 로컬 DB(Windows)를 사용하는 경우 문제가 없었으나 서버 DB(Linux)를 사용하는 경우 테이블을 찾을 수 없다는 문제가 발생하였다. 테이블이 정상적으로 존재하는 것을 확인하였고 일단 급한대로 Entity들에 @Table(name =" ")을 추가해서 테이블 명과 직접 매핑시켜주었다. 추후 확인해보니 Entity명의 대/소문자가 데이터베이스와 일치하지 않아서 문제가 발생한다고 생각이 들어 찾아보게되었다. https://www.lesstif.com/dbms/mysql-14745775.html MySQL 테이블 및 데이타베이스 이름 대소문자 구분 설정 www.lesstif.com MySQL에서 테이블 사용 시 Windows에서는 대/소문자 구분이 안되..

Database/MySQL 2022.08.09

JPA MULTI DATABASE 설정

리뉴얼을 진행하면서 AS-IS 데이터를 읽고 쓸 필요가 생겼다. AS-IS의 경우 Avalon 프레임워크로 되어있어 API를 개발하자니 무리가 있어 직접 DB에 연결하여 작업하기로 하였다. 이에 따라 TO-BE에서 데이터베이스 두개를 바라봐야하게 되었다. 이는 DataSourceConfig를 아래와 같이 DataSource를 두개 잡아줌으로써 해결되었다. application.yml spring: devtools: livereload: enabled: true jpa: show-sql: true hibernate: format_sql: true ddl-auto: update show-sql: true datasource: driver-class-name: org.mariadb.jdbc.Driver url..

카테고리 없음 2022.07.22
반응형