전체 글 33

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

JPA

@Query JPQL(Java Persistence Query Language) 객체지향 쿼리를 입력하여 처리 쿼리 내에 데이터베이스의 테이블 대신 엔티티 클래스와 멤버 변수를 이용해서 작성. where구문과 그에 맞는 파라미터들을 처리할 경우 ?1, ?2 와 같이 1부터 시작하는 파라미터의 순서를 이용하는 방식 :(파라미터 이름)을 활용하는 방식 #{ }로 자바 빈 스타일을 이용하는 방식 이 있다. :(파라미터 이름)을 사용할 때 여러 개의 파라미터를 전달하여 복잡해질 수 있다고 생각이 될 경우 :#을 이용하여 객체를 사용할 수 있다. @Query를 이용하는데 리턴 타입을 Page으로 처리할 경우 별도의 countQuery라는 속성을 적용해 주고 Pageable타입의 파라미터를 전달해주면 된다. 기존의..

카테고리 없음 2022.01.10