분류 전체보기
-
Firebase 에서 OAuth2 , JWT 전환기(3)Project/TravelFeelDog 2023. 10. 14. 17:54
FireBase Cloud Authentication 를 사용한 클라이언트에서 구글로 인증을 하는 방식에서 SpringBoot 에서 구글 클라우드로 인증하는 방식으로 변경이 되었고 사용자를 Guest ,User 와같이 구분이 가능한 기본 작업을 하였습니다. Firebase 에서 OAuth2 , JWT 로 전환기(2) https://chosunghyun18.tistory.com/manage/newpost/171?returnURL=https%3A%2F%2Fchosunghyun18.tistory.com%2F171&type=post chosunghyun18.tistory.com 지금 까지 구성한 설계는 구글을 통한 사용자의 인증 이후 사용자의 정보를 데이터베이스에 저장을 하는 형태입니다. 이때 사용자의 권한은 ..
-
OOE: Java heap 분석기 (feat 20만건 벌크 인서트)Project/TravelFeelDog 2023. 9. 22. 23:46
Gradle Task Verification test 를 돌리는중에 다음과 같은 문제가 생겼습니다. Caused by: java.lang.OutOfMemoryError: Java heap space 메모리 초과에 예상되는 시점은 Bulk Insert test 를 구현한 부분으로 가장 많은 객체가 생기는 부분으로 봤습니다. -> Heap Area 는 JVM data area 의 객체가 생성할시 할당되는 가상 메모리 주소입니다. 에러 로그를 확인해 보기 위하여 한번 더 진행합니다. ./gradlew test --stacktrace BatchInsertSQL 에서의 에러를 확인했습니다. Caused by: java.lang.OutOfMemoryError: Java heap space at com.mysql.c..
-
Firebase 에서 OAuth2 , JWT 로 전환기(2)Project/TravelFeelDog 2023. 9. 22. 19:38
이전 글입니다. https://chosunghyun18.tistory.com/127 Firebase 에서 OAuth2 , JWT 로 전환기(1) 도입 배경 기존의 프로젝트는 웹과 앱 모두를 지원을 하는 상황 , 유저의 로그인 인증여부를 firebase Auth 서비스를 사용하였다. 당시 한달이라는 개발 기간안에 Spring Security 까지 다룰 여력이 부족 chosunghyun18.tistory.com 프로젝트에 Spring Security 와 OAuth2를 적용한 구글 로그인의 관한 글입니다. 0.구글 클라우드 설정 내용은 제외하였습니다. 1.Spring Secuirty , Filter 의 깊은 내용은 없습니다. 2. JWT 적용은 다음장에서 다룰 예정입니다. 3. yml 관련 설정은 글 하단에 ..
-
[프로그래머스] 가장 큰 수 JAVACodeingTestPrac/Java Coding Test 2023. 9. 15. 21:48
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서 bubble sort 를 활용해서 문제를 해결할 수 도 있지만 java sort 의 compareTo 를 사용하면 효과 적이다 . Arrays.sort(arr, (a, b) -> (b + a).compareTo(a + b)); compare to 문자열인 경우 비교 대상의 아스키 코드 값을 반환 하거나 문자열의 길이 차이를 반환한다 . 자세한 설명은 -> https://mine-it-re..
-
JVM ARCHITECTURE (배경 , 특징 , 컴파일 과정 등)Java&Spring/Java 2023. 9. 15. 18:07
JVM (Java Virtual Machine) 2022 9월 28일 부터 지속적으로 글을 업데이트 중입니다. Java의 특징 : "OS 에 종속 적이지 않고 실행 가능 하다" 배경 Java 로 작성한 코드는 JVM 에 의하여 동작을 하게 됩니다. 이로 인하여 이론상 OS 및 하드웨어의 관계없이 자바 언어로 어플리케이션 개발이 가능합니다. JVM 은 많은 개발자의 C/C++ 로 개발시 복잡한 메모리의 할당 , 해제고민들로 부터 자유로워지게 만들었고 , OS 별로 고민을 해야할 많은 상황에서 자유롭게 만들었습니다. 주관적인 의견으로 개발의 난이도가 낮춰저 많은 인원이 하나의 서비스를 편하게 개발하는 단계가 시작이 되었다라고 생각합니다. * GC 로 인하여 메모리가 할당된 객체,변수를 신경쓰지 않아도 된다하..
-
MySql 조회 성능 최적화를 위한 Index 의 이해(2)Infra & Tools/MYSQL 2023. 9. 14. 23:04
이전 글에서 인덱스의 특징 설명을 했으니,, 실습을 해봤다. -> 다음 문장이 실제인지 알아보자. 1000 만건의 데이터의 통계를 위해 4000 만 건을 읽는 작업에서는(전체 테이블 레코드의 20 %) 인덱스를 이용하지 않는게 올바른 판단일 수가 있다. 다음과 같이 인덱스를 명시하지 않았으면 인덱스가 있다면 옵티마이저가 알아서 인덱스를 설정한다. (그렇다고 항상 최적으로 인덱스 설정하는것도 아님) 인덱스를 만들기 전에 , 인덱스가 없는 경우를 먼저 측정을 하고, 인덱스를 생성한 후 비교를 해주자. select created_time ,updated_time ,count(feed_id) as count from feed where member_id = 4 and created_time between '20..
-
SpringBoot 3.1.0 으로 마이그레이션Project/TravelFeelDog 2023. 9. 7. 11:32
기존 프로젝트의 버전은 다음과 같습니다. SpringBoot 의 경우 버전 2.7 을 사용중이였고 , Java 의 경우 버전 17을 사용중이였습니다. plugins { id 'java' id 'org.springframework.boot' version '2.7.7' id 'io.spring.dependency-management' version '1.1.0' } group = 'woowahangongdol' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' ///gradle-7.6.1 Java 의 버전 선택에서는 다음 3가지는 필수로 존재하는 버전을 선택 하고자 했습니다. 1. Java 12 버전 에서 도입된 동적 Switch 문 2. Java 14 Dto..
-
[프로그래머스] 디펜스 게임 자바 : 막히면 자료구조를 생각해봐CodeingTestPrac/Java Coding Test 2023. 9. 6. 19:07
문제 : 디펜스 게임 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음과 같이 n, k, 적들의 정보가 주어진 상황에서 -> 7, 3, [4, 2, 4, 5, 3, 3, 1] 적의 최대값이 10^6 으로 들어올 수 가 있다. 알고리즘의 시간복잡도가 O(N^2) 은 시간 초과가 날 것을 알기때문에 O(N*logN) 을 사용해야한다. O(N*logN) 을 사용하여 해결 가능한 조건은 1. 자료구조 : 힙 2. 알고리즘 : 탐색 , DP , 백트래킹 등 으로 갈릴것 같다 . 탐색의 순서는 인덱스 0 번을 기준으로 시작 하여 데이터의 크기가 매우큼으로 , 특정..