현재 IT 회사의 인턴으로 백엔드 개발 직무에서 일하고 있습니다😃. 제가 맡은 업무는 기존 몽고 DB에 존재하는 유저 정보를 Postgresql로 이관시키는 과정에서 암호화된 패스워드가 plain password와 일치하는지 검증하는 작업을 합니다.이 과정에서 Bcr
AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍AOP는 객체 지향 프로그래밍 한계를 보완하기 위해 등장한 프로그래밍 패러다임입니다.스프링 AOP는 코드의 횡단 관심사를 분리하여 모듈화하고 공통 로직을 재사용하는 기능을 제공합니다.💡
Rebase 명령어를 통해 Git 커밋 그래프를 깔끔하게 만드는게 가능합니다. 여기서 Interactive Rebase를 사용하면 커밋 내용도 다시 정리하여 훨씬 더 깔끔하게 만드는 것이 가능합니다.먼저 Rebase 명령어와 Interactive Rebase 명령어의
이번에 Kotlin과 Springboot를 함께 사용하는 프로젝트에 참여하게 됐습니다.Kotlin + Springboot의 특징은 코틀린의 장점을 가져가면서 스프링부트의 문법을 그대로 사용할 수 있습니다.널을 안전하게 처리할 수 있고 세미콜론을 안 붙혀도 된다는 점이
행복유치원행복 유치원 문제는 그리디 알고리즘을 사용하여 해결하는 문제입니다.조마다 티셔츠를 맞추는 비용은 조에서 가장 키가 큰 원생과 가장 키가 작은 원생의 키 차이만큼 든다는 조건이 존재합니다.이 문제를 해결하기 위해서는 우선 정렬을 해줘야 합니다.오름차순으로 정렬을
최근에 진행중인 프로젝트에서 JPA N+1 문제에 직면했습니다.\[JPA] JPA N+1 문제 해결 방법 및 성능 비교프로젝트에서 N+1문제를 해결했던 기존의 포스트가 있습니다다만, 기존의 프로젝트에서는 쿼리 메소드를 사용하고 @Query 어노테이션을 활용하여 nati
백준 URLhttps://www.acmicpc.net/problem/2302좌석은 한 줄로 되어 있고 왼쪽부터 차례로 1번 ~ N번까지 번호가 있습니다.일반적으로 입장권에 5번이 쓰여 있다면 4번, 6번과 같이 옆자리에 앉을 수 있습니다.하지만 VIP 회원들은
자바에서 크롤링을 할 때 주로 많이 사용되는 라이브러리는 Jsoup입니다. 하지만, Jsoup의 가장 큰 단점은 동적 웹페이지를 크롤링하지 못한다는 점입니다. Jsoup는 HTTP Request를 던져서 웹 서버에서 응답 결과를 받아옵니다. 서버 사이드 랜더링을 사용하
저는 평소에 데이터베이스로는 관계형 데이터베이스인 MySQL을 사용했습니다.하지만, 크롤링한 데이터를 저장해야 하는 상황이 발생했기 때문에 NoSQL인 MongoDB를 사용하기로 했습니다.구글링을 하면서 Springboot와 MongoDB를 연동한 최신글이 생각보다 없
검색 기능이야말로 정말 다양한 경우의 수가 나온다고 생각합니다.사용자들이 검색 기능을 사용할 때 사용자마다 검색 스타일이 다른데, 스타일에 따라 일관된 결괏값을 반환해야 하므로 여러 경우의 수를 고려하여 검색 기능을 개선할 필요가 있습니다.제 기존 검색 로직은 MySQ
괄호 회전 하기 링크이 문제의 핵심은 괄호를 회전하고 + 괄호 문자열이 올바른지 확인하는 것입니다.괄호를 회전하는데 제가 사용할 자료구조는 QueueQueue에 해당 문자열을 넣고 queue.poll(), queue.add() 하는 방식으로 괄호를 한 칸씩 당길겁니다.
최근에 스터디에서 모던 자바 인 액션을 공부중입니다. 모던 자바 인 액션은 자바 8,9,10에 추가된 기능들을 독자들에게 알려주는 목적을 가진 책입니다. 저 또한 자바 8부터 생겨난 기능에 대해서 깊게 공부하고 싶었기 때문에 모던 자바 인 액션을 시작했는데요 서적
자바 개발자로 취업을 준비하면서 모의 면접을 보게 되면 가장 많이 받는 질문 중 하나가 equals()와 hashCode()를 같이 재정의하는 이유일 것입니다.솔직히, 이제는 이 질문이 너무 유명해져서 면접 때는 잘 안 나올 것 같지만 반드시 짚고 넘어가야 하는 개념이
오버로딩 자바의 오버로딩은 여러 메소드를 하나의 이름으로 사용할 수 있다는 장점 때문에 메소드 이름을 절약할 수 있습니다. 자바에서 오버로딩으로 다형성을 지원하여 재사용성이 증가하고 유지보수가 간단해집니다. 다만, 이 오버로딩에는 조건이 존재합니다. 메소드 이
배열 돌리기주 대각선 / 중간 열 / 부 대각선 / 중간 행이 회전한 배열을 출력하는 문제입니다.시계 방향으로 45도 회전하는 경우 → rotationRight() 메서드주 대각선에 있는 모든 요소 → 중간 열로 이동중간 열에 있는 모든 요소 → 부 대각선으로 이동부
저는 JdbcTemplate을 이용하여 Bulk Insert를 해본 경험이 있습니다. 제 포스트를 보면 아시겠지만 이 Bulk Insert의 성능은 기존의 단건 삽입과 비교하면 비약적으로 성능을 향상시킬 수 있습니다. 관련포스트 Bulk Insert 포스트 IDEN
JPA의 N+1 문제를 해결할 수 있는 전략으로 Batch Size를 설정하여 쿼리 수를 압도적으로 줄일 수 있습니다.@BatchSize( size = n )기술 블로그를 서칭하면서 상황에 맞게 Batch Size를 고려해야 한다라는 글을 읽은 적이 있습니다. 저는 이
프로젝트를 깃허브에 올릴 때 가장 신경써야할 부분은 바로 보안이라고 생각합니다. 실제로, 스터디원 중에 aws 정보가 노출돼서 요금 폭탄을 맞을뻔 했다는 이야기를 듣고(ㄷㄷ) 스프링 프로젝트의 보안을 어떻게 하면 강화할 수 있을까에 대해 고민을 많이 했습니다.돈 아낀다
스터디에서 DB Index와 관련된 테코톡을 다 같이 시청했는데 JPA에서는 어떻게 적용하는지가 궁금해졌습니다.Index 우하한 테코톡 영상인덱스의 개념을 알아보고 JPA로 어떻게 인덱스를 사용하는지에 대해서 작성해보겠습니다!! 테이블에 100만개의 데이터가 존재하다고