728x90
반응형
Best Story
- [Database] 데이터베이스 성능 최적화 작업 (feat. Data Mart) 대량의 데이터 처리로 부하가 많은 기능에 대한 속도 개선을 위한 Database 성능 최적화 작업 프로젝트를 개발하다 보면 간단하게 처리할 수 있는 기능들도 있지만 매우 많은 양의 데이터를 복잡하게 처리해야 하는 기능들도 필요하다. (이런 시간/공간 복잡도가 높은 기능들을 잘 처리해야 프로젝트의 성능을 높일 수 있다!) 우선 어떤 부분에서 어느 로직이 문제인지 정확하게 파악하는게 중요한데 이 글에서 다루고자 하는 경우는 대량의 통계 데이터를 with, group by, join이 무분별하게 사용된 매우 복잡한 쿼리로 처리하다 보니 데이터베이스에서 데이터를 처리하는 속도가 매우 늦어져서 발생한 성능 이슈이다. 데이터베이스 성능 최적화에는 인덱스 튜닝, 쿼리 최적화, 정규화/비정규화, 캐시 사용, 데이터 분.. 2024.02.24
- [Intellij IDEA] Intellij 느려짐 문제 해결하기 (Memory↑) Intellij 자체 메모리 사용량을 늘려 느려짐, 버벅거림 등의 현상 개선 회사에서 개발 업무를 하다보면 프로젝트의 여러 버전을 같이 봐야하거나 비교, 데이터 검증 등의 작업을 할 때 Intellij 프로젝트 창을 2~3개 띄워 서버를 돌리게 되는데 그렇게 되면 Intellij는 생각보다 많은 리소스를 잡아먹는다. 이러한 이유로 속도가 느려지고 종종 끊기거나 강제로 종료되버리는 등의 현상이 발생할 수 있는데 우선 PC의 스펙이 밑의 사진과 같이 JetBrains에서 말하는 시스템 요구 사항보다 부족하다면 PC스펙을 업그레이드 해야한다.. 하지만 PC스펙이 충분한데도 위와 같은 문제가 발생한다면 Intellij가 사용할 수 있는 리소스가 적은것이다. 즉 Intellij의 메모리 사용량을 늘려주면 쉽게 해.. 2024.03.03
- [PostgreSQL] 테이블 데이터 파일로 간단하게 백업하기 개발하다 데이터를 잠깐 백업해야 하는데 pg_dump..등 사용하기 귀찮을 때 간단하게 백업하는 방법 1. 테이블 데이터 백업하기 (Backup)PostgreSQL에서 COPY + TO 명령어를 사용하여 테이블 데이터를 파일로 백업할 수 있다.#COPY {schema.table} TO '{backup_path}' DELIMITER ',' CSV HEADERCOPY test.user TO '/path/to/backup/user.csv' DELIMITER ',' CSV HEADER; 2. 백업 데이터 복구 (Restore)백업된 CSV 파일을 다시 테이블로 복구하려면 COPY + FROM 명령어를 사용하여 데이터를 복구할 수 있습니다.# COPY {schema.table} FROM '{file_path}.. 2024.10.22
- [Linux] 노트북으로 개인 Linux 서버 만들기 백엔드 개발자로 살다보면 서버가 필요한 경우가 많은데 그럴 때 마다 AWS를 사용하기에는 비용적인 부담이 크다.. 남는 노트북(PC)이 있다면 직접 서버를 만들어 사용하면 된다. 💡준비물 : 노트북, USB 혹시 이렇게 노트북 모니터가 깨져서 뽑아버렸다면 HDMI 케이블로 다른 모니터에 연결해주면 된다. ⏩️ 진행 단계 : Ubuntu 설치 - USB 부팅 디스크 만들기 - USB로 부팅 1. Ubuntu 설치*Ubuntu 말고 다른 배포판을 사용하고 싶다면 원하는 운영체제를 다운받으면 된다. 아래의 링크에서 Ubuntu Server 다운로드https://ubuntu.com/download/serverUbuntu Desktop도 있지만 서버로 사용할거면 굳이 GUI는 필요 없기 때문에 서버로 사용하는.. 2024.10.03
- [Java] MyBatis: ClassNotFoundException 트러블 슈팅 (JVM 네이밍 규칙) InnerClass 사용 시 Mybatis에서 ClassNotFound 에러를 발생시키는 원인인 JVM의 클래스 네이밍 규칙..? TDD 개발 중 Mybatis 매퍼 파일에 쿼리를 작성하여 실행했을 때 resultType으로 InnerClass인 Authority 클래스를 사용한 쿼리들에서 ClassNotFoundException이 발생했다. 이래서 테스트 주도 개발이 중요하다.... SELECT authority_id AS authorityId, authority_name AS authorityName, created_date AS createdDate FROM authorities Caused by: java.lang.ClassNotFoundException: Cannot find class: kr... 2024.09.18
- [SpringFrameworks] Filter로 XSS 취약점 대응하기 Servlet Filter를 등록하여 서버로의 HTTP 요청(request)에 대한 XSS 필터링 적용 XSS란?교차 사이트 스크립팅(XSS, Cross-Site Scripting)은 웹 애플리케이션 보안 취약점 중 하나로, 공격자가 악성 스크립트를 다른 사용자의 브라우저에서 실행하도록 만드는 공격 기법이다. 주로 웹 페이지에서 사용자 입력을 제대로 검증하지 않거나 필터링하지 않을 때 발생한다.XSS 공격은 사용자의 세션 쿠키, 개인 정보, 인증서 등을 탈취하거나, 악성 사이트로 리디렉션하거나, 피싱 공격을 수행할 수 있다. 그럼 XSS 공격을 막기 위해 어떻게 해야 할까? XSS는 주요 정보(session, cookie, 개인정보) 탈취, 사용자 리다이렉션, 사이트 조작 등 다양한 공격 방법이 있지만 .. 2024.07.04
- [PostgreSQL] Postgre 인덱스(index) 사용 방법 Postgre에서 인덱스를 조회, 생성, 삭제, 확인하는 방법과 인덱스를 어디에 어떻게 생성해야 하는지 인덱스는 조회 속도를 향상시킬 수 있는 중요한 역할을 한다 .하지만 인덱스를 막 사용하게 되면 인덱스를 효울적으로 사용하지 못하기도 하고, 오히려 삽입, 수정, 삭제 등의 연산 작업을 느리게 하여 역효과가 날 수 있다. 인덱스는 어떤 컬럼에 걸어야 할까?기본키(Primary Key): 기본키는 테이블에서 각 행을 고유하게 식별하는데 사용되기 때문에 자동으로 인덱스가 생성된다. 외래키(Foreign Key): 외래키를 포함하는 컬럼은 다른 테이블과의 관계를 나타내므로 조인 연산 및 외래키 제약조건 검색을 최적화하는데 도움된다. 조회(검색)가 자주 발생하는 컬럼: 데이터 검색 (WHERE, JOIN, .. 2024.02.24
- [Intellij IDEA] 코드 옵션 (hint) Intellij를 사용하다 보니 코드에 나오는 useage와 같은 힌트들이 유용하긴 하지만 가독성이 떨어지는 것 같아 필요할 때만 사용하면 좋을 것 같다! file -> settings -> Editor -> Inlay Hints -> Code vision ( Usages ) 체크를 선택/해제 하여 사용하면 된다. [Intellij] 코드창 usages, usage 표시 해제(옵션 끄기, 힌트 제거) + Code author 코드 작성자 표시, new* 2022.2 [Intellij] 코드창 usages, usage 표시 해제(옵션 끄기, 힌트 제거) + Code author 코드 작성자 표시, new* 2022. 얼마전 노트북 고장으로 컴퓨터의 모든 데이터와 모든 프로그램이 날라갔다. 그리고 다시 새로.. 2023.08.27
728x90
반응형