본문 바로가기

전체글61

JPA? 왜사용할까. 백엔드 개발을 할때면 저는 DB 와 매핑할때는 JPA를 무조건 선택해서 작업을 했습니다. 근데 이 JPA, 왜쓸까요? MyBatis 등의 다른 매핑 API가 있는데 어떤 점이 있어서 많은 사람들이 사용하는지 아시나요? 저또한 아무것도 모르고 JPA~ 뭐좋으니까 쓰고 있겠지~~ 하고 개발만 해왔었습니다. 하지만 무엇을 쓰고 있는지 알고있는 것이 아니면 더욱이나 제대로 사용하고 있는 것이 아니겠다고 생각했습니다. 이후에 다른 더 좋은 API가 왔을때도 어떤점이 JPA보다 좋은지 따져보고 넘어갈지 생각도 할 수 있으니까요. 그래서 오늘은 JPA가 무엇이고, 왜 사용하는지 저와 함께 알아보아용. MyBatis 백엔드 개발을 하면 데이터를 DB에 저장을 해야합니다. DB에 데이터, 즉 객체를 저장하기 위해선 My.. 2023. 4. 21.
스프링, 스프링부트? 왜사용할까. 취준을 하면서 갑자기 궁금해졌습니다. 스프링과 스프링부트의 차이점이 뭘까? 그리고 스프링부트로 백엔드 개발을 하면 좋은 점이 뭘까. 문득 궁금하지 않으신가요? 저또한 그렇습니다. 그래서 저도 조사하면서 찾은 내용을 공유할까합니다. 스프링 스프링이란 스프링프레임워크라고 하죠 원래 ejb라는 기술이 스프링이전에 백엔드 개발로 많이 쓰이던 기술인데, 아주 고된 작업이 었다고 합니다... 이 고된 작업, 겨울이라고도 할 수 있겠죠? 겨울이 지나고 새로운 봄, 새로운 기술이 왔다고 해서 이름을 스프링이라고 명명했습니다. 우리는 스프링을 써서 왜 백엔드 작업을 할까요? 여러 이유가 존재합니다. 일단 객체지향 언어 자바와 코틀린 기반으로 작업이 되기 때문에, 개발 효율성이 아주 뛰어납니다. 코드를 재사용하거나 모듈화.. 2023. 4. 20.
문자열 폭발 - 문자열 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net [문제요약] 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 모든 폭발이 끝난 후에 남는 문자열을 구해야 한다. [문제풀이] 일단은 문자열을 나누어서 폭탄 문자열을 확인하며 없애.. 2023. 4. 18.
JPA의 N+1 문제와 해결 서론 JPA를 사용하며 SQL를 관리하던 한 프로젝트에서 어느날, 조회시에 수많은 쿼리가 생성되는 문제를 이 게시글을 들어온 여러분은 겪은적이 많을 거에요. 저또한! 이번에는 N+1 문제가 무엇인지, 해결하기위해서는 어떻게 쿼리를 작성해야하는지에 대해 알아보도록 합시다. JPA N+1문제란? 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터의 개수만큼 연관관계의 조회 쿼리가 발생하여 데이터를 읽어오게 되는 문제입니다. 그렇다면 어떠한 경우에 이 N+1 문제가 발생할까요? 실제 코드를 보면서 같이 확인해보겠습니다. 예시 다음과 같은 상황의 User 클래스와 Team 클래스가 있다고 해봅시다. User 클래스 @Entity @Getter @NoArgsConstructor(access = AccessL.. 2023. 4. 12.
반응형