분류 전체보기 31

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

TDD(Test Driven Development)란?

단위 테스트 좋은 단위 테스트의 특징 FIRST 규칙을 따라야한다. Fast : 빠르게 Independent : 독립적으로 Repetable : 반복 가능한 Self-Validation : 결과값이 boolean으로 결과 값을 내어 자체적으로 검증이 되어야한다. Timely : 적시에 테스트하려는 실제 코드를 구현하기 직전에 구현해야한다. 단위 테스트를 진행하는데 있어서 비용이 너무 클 경우 통합 테스트를 진행하는 것이 오히려 좋다. TDD(Test Driven Development) 빨간 막대 - 초록 막대 - 리팩토링 TDD의 순서 > 1. 테스트 작성 : 테스트를 생성하기위해 동작 요구 기능 기반 인터페이스 개발 2. 코드 작성 : 테스트를 통과하기 위해 테스트 실행 코드 빠른 개발 3. 리팩토링 ..

카테고리 없음 2021.12.28

단위 테스트 / 통합 테스트

단위 테스트 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈이란 어플리케이션에서 동작하는 하나의 기능 또는 메소드이다. 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 알맞게 동작하는지 독립적으로 테스트하는 것으로 어떤 기능이 실행되면 어떤 결과가 나오는지 정도로 테스트를 진행한다. 통합 테스트 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트이다. 일반적이 어플레케이션은 여러 개의 모듈들로 구성이 되고 모듈들끼리 메세지를 주고받으면서 기능을 수행한다. 그렇기에 통합된 모듈들이 올바르게 연계되어 동작하는지 검증이 필요한데 이를 확인하기 위해 진행되는 테스트가 통합 테스트이다. 통합 테스트는 독립적인 기능에 대한 테스트가 아니라 웹 페이지로..

카테고리 없음 2021.12.28