목록분류 전체보기 (272)
빙응의 공부 블로그

📝1장 왜 MySQL을 사용하는가? "어떤 DBMS를 사용해야 할지 모르겠습니다. 어떤 DBMS가 좋은가요??" 책에 따르면, 10년 전에는 DBMS 선택지가 많지 않아 오라클과 MySQL이 주요 선택지였습니다. 당시 오라클은 MySQL보다 성능이 뛰어났지만, 가격이 너무 비쌌습니다. 시간이 지나 데이터의 양이 수백 배, 수천 배로 늘어나면서, 오라클의 비용을 감당하기 어려운 상황이 생겼고, 결과적으로 MySQL이 유일한 대안으로 자리 잡게 되었습니다. 현재는 어떨까요? 시대가 발전하면서 RDBMS만이 아닌 다양한 종류의 DBMS가 등장했습니다. NoSQL을 시작으로 객체 관계형인 PostgreSQL까지요 이 상황에서 DBMS는 어떻게 고르는게 좋을까요?그것은 다음 순서로 고려하는게 좋은 것 같습니..

이 글은 비동기 처리에 대해 다루겠습니다.📝배경이번에 졸업 작품 프로젝트에서 메인서버를 맡아 개발하게 되었습니다. 그래서 메일 인증을 위해 Redis와 메일을 보내는 로직을 만들었습니다. 그런데 유독 혼자만 API 응답 속도가 느린 것을 확인했습니다. 해당 로직은 이메일 기반으로 인증 코드를 보내는 로직입니다. 오직 이메일을 보내는 것만으로 무려 3.51초가 나온 것을 알 수 있었습니다. 해당 로직이 3.51초가 걸린 것인데... 어느 부분이 문제인지 한번 전부 시간 체크를 해보겠습니다. /* 이메일 작성 및 인증 코드 저장 */ public void sendVerificationEmail(String email) { if(emailBlackListRepository.exi..

📝 풀이 기본 구조를 가지면 다음과 같다. 1234510 2 0 3 0 4 0 5 0 여기서 이제 승패를 1, -1로 표시하면 다음과 같이 나온다. 12345101 2-10-1-113 10-1 4 110 5 -1 0 문제에서 설명하는 순위를 알 수 있는 것은 자신을 제외한 모든 사람과의 시합을 알 수 있는 사람 즉 모든 배열이 채워진 사람을 말한다. 즉 모든 로직이 끝났을 때 자신을 제외하고 배열에 0이 없는 사람을 검사하면 된다. [Arogorithm]그래프 - 플로이드워셜 [Arogorithm]그래프 - 플로이드워셜플로이드 워셜은 그래프에서 최단 거리를 구하는 알고리즘이다.최단 거리 문제는 다익스트라, 벨만포드, 플로이드 워셜이 있다.기능특징시간복잡도모든 노드 간에 최단..

이번 게시글은 조회 최적화와 QueryDSL을 다루겠습니다. 📝배경이번에 졸업 작품 프로젝트에서 메인서버를 맡아 개발하게 되었습니다. 파티를 만들어서 그안에 코스를 보고 대학생들이 자연스럽게 약속하는 앱을 만드는 과정인데 해당 과정에서 중요하게 본 점은 조회 쿼리에 대한 효율입니다. 그래서 김영한의 스프링에서 학습한 내용을 기반으로 QueryDSL을 사용하여 조회 최적화를 시도해 보았습니다 . QueryDSL을 사용하여 조건에 따른 동적 쿼리를 유연하게 처리할 수 있었습니다.해당 슬라이드에서 설명하는 것처럼 파티는 식사, 음주, 종합으로 나누어 조회합니다. 이 과정을 쉽게 하기 위해 동적 쿼리 추가가 쉬운 QueryDSL을 사용했습니다. QueryDSL에 대해 자세히 알고 싶으면 전에 공부했던 포스팅..

이번 게시글은 Redis와 RefreshToken에 대해 다루겠습니다. 📝배경이번에 졸업 작품 프로젝트에서 메인서버를 맡아 개발하게 되었습니다. 그래서 로그인을 개발하게 되어 두개의 토큰 방식(Access, Refresh)를 구현하였고 Refresh는 따로 데이터베이스에 저장하여 관리하게 되었다. 여기서 데이터베이스에 Refresh Token을 관리하는 이유를 간략히 적어보자면... 보안성 강화 : 데이터베이스를 화이트 리스트로 사용하여 변조, 탈취된 Refresh Token에 대한 대응성 확보가 가능합니다. 추적 및 접근 제어 : 로그아웃하거나 비정상적인 상황이 발생했을 때 데이터베이스 Refresh Token을 제거하여 추적이 가능합니다.📝 왜 Redis인가? Redis를 사용하는 이유는 주로..

Team.UniP Team.UniPTeam.UniP has 3 repositories available. Follow their code on GitHub.github.com파티를 모집하는 프로젝트 진행 중에 교수님이"AI 같은거 써보는게 어때?"라고 하셨습니다. 그래서 한번 ChatGPT API 학습 겸 사용하기로 했습니다. 📝주소 기반 코스 추천 API 만들기 사용 의존성 implementation 'com.fasterxml.jackson.core:jackson-databind' // json 파싱 implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtim..