전체 글(355)
-
[에러] Error Code: 1055. Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column '~~' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.015 sec
[Reason] 쿼리를 실행했을 때 발생된 에러이다. 에러를 해석해보면, group by 에 조회 컬럼을 명시하지 않은 채 select 절에 해당 컬럼을 조회하려고 넣었기 때문에 발생된 에러이다. 에러 메세지 중 마지막 부분인 sql_mode=only_full_group_by 부분이 바로 현재 설정이 group by 를 사용할 때 명시하지 않으면 포함하지 않은 컬럼은 조회되지 않는 full group by 설정이 기본으로 설정되어있다는 뜻이다. [Solution] - 해결책 (1) sql_mode를 확인하고, 조회되는 테이블에서 ONLY_FULL_GROUP_BY 를 제외한 나머지 값을 복사한 뒤, set session sql_mode 에 붙여넣어 only_full_group_by 설정을 없애준다. - 해..
2024.03.04 -
[에러] org.hibernate.PersistentObjectException: detached entity passed to persist
[Reason] 데이터를 저장하는 데 발생된 에러이다. 해당 에러는 엔티티끼리 연관관계를 맺고 데이터를 저장할 때 발생된다. 즉, 이미지에서 보이는 것처럼 엔티티에 일대다 혹은 다대다 와 같이 연관관계를 맺을 때 cascade 옵션, orphanRemoval 옵션이 적용되어 있으면, 연관관계를 맺은 두 엔티티에 데이터가 저장될 때 두 엔티티가 연관관계를 맺었기 때문에 두 개 모두 데이터가 저장되고 같은 처리가 되어야 한다. 나는 cascade, orphanRemoval 옵션을 적용해놓고 한쪽에만 데이터를 저장하려고 시도했기 때문에 본 에러가 발생한 것이었다. [Solution] 해결책은 간단하다. cascade 옵션과 orphanRemoval 옵션을 없애주면 정상적으로 실행된다.
2024.02.26 -
CentOS 에 MySQL 8.0 설치
CentOS 운영체제에서 MySQL DB를 사용하기 위해 설치하는 과정에 대해서 정리해보겠습니다. (1) yum install https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm yum install 명령어를 통해 MySQL 8.0 커뮤니티 버전의 저장소 설치 파일 주소를 넣어 y를 눌러 진행해줍니다. complete! 구문이 나오면 정상적으로 설치하고자 하는 MySQL 버전의 설치 저장소가 설치된 것입니다. (2) yum install mysql-server 이제 본격적으로 mysql-server를 설치해줍니다. 에러 발생 시! 더보기 이 때! 이와 같은 에러 메세지가 발생하면, gpgcheck 옵션을 확인하고 수정해주어야 합니다...
2024.02.20 -
CentOS 에 JDK 17 버전 설치
CentOS 운영 체제에서 자바 및 Spring 프로젝트를 배포하여 사용하기 위해 JDK 를 설치하는 방법에 대해서 정리해보겠습니다. # CentOS는 더 이상 페키지 업데이트를 지원하지 않아 Yum으로 설치 가능한 OpenJDK는 11버전이 최대라고 합니다. (1) sudo yum -y install wget curl yum 을 통해 wget curl 패키지를 설치합니다. (2) cd /tmp ### Linux 64-bit ### wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz tmp 경로로 들어가 wget 패키지로 설치할 Open..
2024.02.20 -
[이슈] 배포 서버 웹 서버 사용량 MAX로 인한 이슈
완료되어 배포되는 중이던 프로젝트가 갑자기 도중 2달간 유지되었던 배포 서버의 웹 서버 사용량이 꽉 차서 프로젝트를 새롭게 빌드하거나 올릴 수 없는 상황이 발생하였는데, 이 때, 위의 리눅스 상태 정보를 확인할 수 있는 명령어를 정리해주신 분의 도움을 받아 해결할 수 있었습니다. 원인은 너무나 간단하고 당연했던... 정말 한심했던 이유였습니다. [Reason] 일단 배포하고 있는 가비아 서버의 웹 서버 사용량을 보니 100 프로를 전부 사용하고 있었고, 이에 해당 가비아의 리눅스 서버를 파일질라를 통해 한번더 용량이 큰 파일이 존재하는지 확인한 뒤, 삭제 처리를 진행해주었지만 96퍼센트 까지 밖에 낮출 수가 없었습니다. 또한, 가장 많은 용량을 차지하는 빌드된 프로젝트 jar 파일을 지워도 마찬가지였습니..
2024.02.14 -
[Android Studio] 안드로이드 스튜디오 APK 추출
안드로이드 스튜디오에서 안드로이드 앱을 만들어 본격적으로 핸드폰에 배포하여 앱을 실행해보고 싶었습니다. 따라서 오늘은 안드로이드 스튜디오로 만든 앱을 빌드하여 apk 를 추출하는 방법에 대해서 알아보겠습니다. 안드로이드 스튜디오의 Build 탭의 Generate Signed Bundle / APK 항목을 선택해줍니다. apk를 만들어 배포할 것이기 때문에 APK를 선택해주고 Next를 눌러줍니다. 다음으로 Key를 등록해주어야 하는데, 이 Key라고 하는 것은 만들려고 하는 apk의 인증key라고 볼 수 있습니다. Create new 를 눌러주면 이 key를 만들 경로를 지정해줄 수 있습니다. New Key Store 에 들어와서 폴더 버튼을 눌러 Key를 만들어줄 경로를 지정해줍니다. 웬만하면 현재 진..
2024.02.08