profile
leeseungmin develop_blog
post-thumbnail

SpringBoot + MongoDB의 Pagination으로 Read 최적화

현재 메인 페이지에서 metadata를 보여주는 방식입니다.클라이언트가 서버로 api를 보내, 특정 프로젝트 내에 존재하는 모든 metadata 정보를 요청합니다.서버는 findByProjectId 메서드로 읽어들인 모든 metadata 리스트를 클라이언트에 제공합니다

6일 전
·
0개의 댓글
post-thumbnail

MongoRepository를 통한 대량 데이터 삽입시 발생한 이슈 #4

지난 이슈는 200만개의 데이터를 saveAll 메서드를 통해 수행하던 중 OOM을 만났고 해결한 문제를 말씀드렸습니다. Chunk_size로 데이터 리스트를 분할하여 문제를 해결할 수 있었던 경우였습니다!자세한 내용은 \[이슈정리다시 한번더 언급하겠습니다. 'Mong

2022년 3월 25일
·
1개의 댓글
post-thumbnail

MongoRepository를 통한 대량 데이터 삽입시 발생한 이슈 #3

이전에 20만개의 데이터 삽입 시의 문제점은 looping을 통해 진행되는 save가 데이터의 리스트 크기만큼 DB에 접근해 발생하는 네트워크 overhead 였습니다.이를 해결하기 위해 매번 DB에 접근한게 아니라, Batch insert 방식으로 list로 한번에

2022년 3월 25일
·
0개의 댓글
post-thumbnail

MongoRepository를 통한 대량 데이터 삽입시 발생한 이슈 #2

saveAll을 통한 성능 개선

2022년 3월 25일
·
0개의 댓글

예외처리 꼭 해야하나요??

먼저 해당 글은 Java의 오류처리를 기반으로 설명한다!자바 프로그래밍 중 발생하는 오류를 크게 2가지 범주로 나누면, 아래 2가지로 나눌 수 있다.컴파일 오류(compile error)프로그램 코드 작성 중 발생하는 문법적 오류이다.최근에는 개발 환경(eclipse,

2022년 3월 9일
·
0개의 댓글

Java의 익명 내부 클래스의 변수 허용 범위!

익명 내부 클래스란? 이름이 없는 클래스의 일종이다!클래스의 이름을 생략하고 주로 하나의 인터페이스나 하나의 추상 클래스를 구현하여 반환하는 형식이다!인터페이스나 추상 클래스 자료형의 변수에 직접 대입하여 클래스를 생성하거나, 지역 내부 클래스의 메서드 내부에서 생성하

2022년 3월 5일
·
0개의 댓글

Java의 Object Class 에 대해 알아보자!

Object Class는 모든 클래스의 최상위 클래스이다!즉, 모든 클래스는 Object 클래스를 상속 받는다라고 할 수 있는 것이다.컴파일러가 자동으로 extends Object를 추가한다.Object Class는 java.lang 패키지 내에 존재하며, java.l

2022년 3월 3일
·
0개의 댓글

Java의 다중 상속 문제와 인터페이스

자바를 공부하셨거나 공부하시고 있는 사람들은 자바에서 다중 상속이 불가능하다는 것을 알고 있을 거라 생각한다! 나 역시 작년 자바를 처음 배우면서, 다중 상속이 불가능한 언어라는 것임을 알게되었다. 그리고 그 이유가 초기 자바 개발시 언어의 목적이 이 모호함이 없는 안

2022년 3월 2일
·
0개의 댓글

상속은 IS-A 관계에서만!

이번 글에서는 상속이 어떨 때 사용되어져야 하는 가에 대해 이야기해 보는 시간을 가질 것이다!! 그렇다면 상속이라는 개념을 먼저 알고 가야한다. 보다 먼저, 상속을 사용하는 이유는 결국 더 빠르고, 유지 보수가 쉽고, 중복이 적고, 통일성이 있는 프로그램을 만들기 위해

2022년 2월 26일
·
0개의 댓글

Java의 모든 Method는 Virtual Method다?

Java의 Virtual Method를 알아보기 전 먼저 메모리 구조를 이해 할 필요가 있다.사진 출처 : https://sfixer.tistory.com/entry/메모리-영역code-data-stack-heap 컴파일 언어에서 프로그램이 메모리에 적재되는

2022년 2월 25일
·
0개의 댓글

Java의 OOP 특징에 대해 알아보자!

방학기간 Java에 대해 복습 하던 중 자바 언어가 가지는 객체지향적 특징에 대한 이해에 혼동이 생겨 이를 바로 잡기 위해 작성하는 글이다!!OOP (Object Oriented Programming: 객체지향개발) 으로 우리가 흔히 알고있는 Java나 Python은

2022년 2월 23일
·
0개의 댓글

미로 최단 경로 DFS 와 BFS 비교

<출처 : https://programmers.co.kr/learn/courses/30/lessons/1844간단한 문제이다. (1,1)에서 시작하여 대각선 끝인 (n,m)에 도착하는 최단 경로를 구하는 문제이다. 코딩테스트 공부를 해본 사람이라면 누구든

2022년 2월 18일
·
0개의 댓글

MSA 보안 문제 해결 방법 고안(1)

현재 DMSP 프로젝트를 진행하면서 직면한 문제의 해결 과정을 작성하기 위해 지금 이 글을 쓰고 있다. 아직 여전히 해결하지 못한 과제로 해결방법에 대해 정리하고자 한다. 먼저, 문제는 MSA(MicroService Architecture)의 인증절차 방식이다. 현

2022년 2월 12일
·
0개의 댓글

java Lambda 식에 대해 알아보자!

1. 작성 목적 사실 람다식에 대해 처음 배운건 3-1 학기 Swift 수업을 들었을 때 였다. 배우면서 swift는 정말 간결함을 위한 언어 인가? 라는 생각이 들었다^^ 그때만 해도 자바에도 람다식이 있다고는 생각지도 못했던 시절이었다 ㅎㅎㅎ (지금 생각해보니

2022년 2월 8일
·
0개의 댓글

로그인 방식에 대해 알아보자

이 글에서는 두가지 로그인 방식에 대해 비교하며 정리하는 방식으로 글을 작성하겠다. 먼저 필자는 최근 모바일 앱 개발에 벡엔드를 맡게 되었다. 학교 친구들끼리 하는 사이드 프로젝트이다..ㅎ 일단 부끄럽지만 본인은 근 1년간 짧고도 얕은 웹 개발 공부를 하면서 세션 로그

2022년 2월 7일
·
0개의 댓글

MongoRepository를 통한 대량 데이터 삽입시 발생한 이슈 #1

1. 발생 배경 프로젝트를 진행하면서 5만개 이상의 메타데이터를 삽입할 필요가 생겼다. 기존의 메타데이터 삽입 과정은 아래와 같았다. 5개의 메타데이터를 저장하기 위해서는 클라이언트 단에서 5번의 삽입 api를 호출하여 진행하였다. 서버는 개별적인 메타데이터를 jp

2022년 2월 2일
·
0개의 댓글

@ModelAttribute 바인딩 되지 않는 문제

1. 발생 배경 본인이 @ModelAttribute을 쓰는 경우는 @RequestParam를 여러개 쓰면 코드가 난잡해져 이를 한번에 처리하기 위해 @ModelAttribute를 사용한다. 솔직히 @ModelAttribute 어노테이션은 파라미터 앞에 쓰면 단순히 여러 개의 파라미터를 하나의 객체로 바인딩해 주는 정도로만 이해하고 있었다. 그래서 Reque...

2022년 1월 29일
·
0개의 댓글

Java와 Python의 실행속도 차이의 이유는?

나는 코딩테스트 준비를 위해 본인은 Java와 Python으로 주로 연습하는 편이다. 오늘 프로그래머스에서 '멀쩡한 사각형'이라는 문제를 풀고 python의 실행 속도가 자바에 비해 굉장히 느림을 한번 더 느낄 수 있었다.물론 로직은 같았다.이해를 돕기 위해 실행 결과

2022년 1월 28일
·
0개의 댓글

세션저장소로 데이터베이스 사용하기

현재 스프링부트로 서버를 구동하고 있다. 추가적으로 OAuth2를 이용하여 소셜로그인 기능이 정상적으로 진행되는 상황이다. 그런데 소셜로그인 이후 어플리케이션을 재실행 하면 로그인이 풀리는 상황이 생긴다. 그 이유에 대해 알아보니, 기본적으로 세션이 실행되는 WAS의

2022년 1월 23일
·
0개의 댓글

Enum의 탄생배경과 사용목적

추후작성예정

2022년 1월 22일
·
1개의 댓글