본문 바로가기

전체 글223

[Java] Java 버전별 특징 : Java 12 (Switch Expressions with yield, G1GC 개선, 더 빠른 시작시간 및 메모리 최적화) Switch Expressions (Preview)/** * Java 12 - Switch Expressions (Preview -> 13에서 반영) * yield 처리 * * yield: switch 표현식에서만 사용되며, 특정 case 블록에서 값을 반환하지만 실행 흐름을 종료하지 않고, * switch 표현식의 결과로 값을 반환하는 역할을 합니다. */public class Java12 { public static void main(String[] args) { originSwitch(); Java12Switch(); } private static void originSwitch() { int day = 2; String dayStr.. 2024. 10. 5.
[Spring] spring boot 3.x & Java 21로 버전업! db & 코어 모듈들 버전업 해준 뒤, 프로젝트 버전 업 진행. gradle-wrapper.properties 설정 변경 그래들 버전 업distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip  build.gradle 설정 변경 java 버전 지정 방법 변경java { toolchain { languageVersion = JavaLanguageVersion.of(21) }} querydsl 지정방식 변경 // queryDSLimplementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'annotationProcessor "com.querydsl:queryds.. 2024. 9. 19.
[MySQL] 쿼리 개선 ( QueryDSL Cross Join, full -> range scan, 커버링 인덱스 ) 문제 상황역량검사 관리자 사이트에는 응시자를 검색하는 기능이 있다.다양한 조건으로 검색할 수 있는데 ( 응시자 이름, 응시자 점수, 응시 전형 등등 11개정도 )테스트 환경에서 해당 기능이 엄청 느리게 동작하고 있었다...! 응시자가 50만 row정도 등록되어있었고, 응시자 결과 데이터의 1개의 row 크기가 꽤 무거웠다. SpringBoot 2.6.6, JPA & QueryDSL 5.0.0, MariaDB, RDS 환경이다. 문제 해결 과정실제 쿼리 확인일단 실제 쿼리 날라가는 것을 확인했다.실제 쿼리를 보았을 때, 바로 문제되는 것으로 보이는건 cross Join이 있었다.cross Join은 두 테이블간의 모든 조합을 만드므로 성능에 안좋은 요소이다. left outer join `전형.. 2024. 6. 30.
EBS & AMI & EFS EBS 볼륨이란? 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브. EBS 볼륨을 사용하면 인스턴스가 종료된 후에도 데이터를 유지할 수 있음. EBS 볼륨의 제약사항 CCP레벨의 EBS볼륨은 하나의 인스턴스에만 마운트 가능 특정 가용 영역에서만 사용 가능 네트워크의 USB 스틱이라고 생각하면 됨. 물리적 연결 없이 네트워크를 통해 연결. 스냅샷을 이용하면 다른 가용영역으로 이동도 가능. 볼륨의 성능은 미리 정의해야함. 인스턴스 생성 시 EBS 볼륨을 생성하면 인스턴스 삭제 시 EBS볼륨도 삭제할 것인지 체크하는 란이 있음. EBS 스냅샷 EBS 볼륨의 특정 시점에 대한 백업. EBS 스냅샷은 다른 가용영역이나 리전으로도 복사 가능. EBS 스냅샷 아카이브 최대 75%까지 저렴한 아카이브 티어로 .. 2023. 11. 19.
AWS IP, EC2 배치그룹, ENI, EC2 Hibernate Private IP(사설IP) vs Public IP(공용 IP) 네트워크 IP에는 IPv4와 IPv6가 존재. 현재 IPv6는 IoT에 많이 사용중. IPv6가 나온 이유는 IPv4의 주소가 거의 고갈되어가기 때문.(37억개 정도 존재) 사설IP가 나온 이유도 비슷함. (주소 부족의 문제를 해결하기 위함) 공용IP를 통해 인터넷과 통신하구, 사설 IP를 통해 사설 네트워크 내에서 통신함. 공용ip는 곧 기기가 인터넷상에서 식별될 수 있음을 의미. 사설 IP는 사설 네트워크 안에서만 유일. NAT장치와 프록시 역할을 할 인터넷 게이트웨이를 통해 인터넷에 연결. Elastic IP (탄력적 IP) 인스턴스에 고정된 공용IP를 사용하려면 탄력적 IP가 필요. (쓰지 않으면, 인스턴스가 중지되었다가 시작할 경.. 2023. 11. 18.
AWS Lambda를 통한 PDF/ZIP 다운로드 개선 (미완글) 2023. 11. 16.