목록spring (10)
우당탕탕
JPA N+1 문제 해결법 이번 포스팅에서는 JPA에서 자주 발생하는 성능 이슈인 N+1 문제와 이를 해결하는 방법들을 정리해 보려고 합니다. N+1 문제란?N+1 문제란, JPA로 엔티티를 조회할 때 연관된 엔티티를 추가로 조회하면서 불필요하게 많은 쿼리가 실행되는 현상을 말합니다. 예를 들어, 게시글 10개를 조회할 때 각 게시글의 작성자 정보를 연관엔티티로 가져온다면, 게시글 목록(10개의 게시글)을 가져오는 쿼리 1번 + 작성자 정보(게시글당 1번씩) 쿼리 10번, 총 11번의 쿼리가 실행되는 것이 대표적인 N+1 문제입니다.N+1 문제가 왜 생길까?JPA에서 연관된 엔티티는 기본적으로 지연로딩(LAZY) 방식입니다. 즉, 실제로 해당 데이터를 사용할 때마다 추가 쿼리가 실행되는 방식입니다.N+1..
Spring Boot로 공공데이터 포털의 데이터 불러오기 안녕하세요!무작정 따라하기 1편 시리즈를 작성하고 시간이 조금 지났는데 다시 2편부터 쭉 적어보려고 합니다. 이번 편에서는 SpringBoot로 공공데이터 포털(https://www.data.go.kr/)의 데이터를 불러와서 화면에 뿌려주는 서비스를 개발해 보겠습니다. 이 시리즈는 1편 시리즈와 같이 개발에 대한 기초 지식이 없는 초보자부터 어느 정도 경험이 있는 중급 개발자까지, 누구나 따라 하면서 만들 수 있는 실습 중심의 콘텐츠로 구성될 예정입니다.이후 원하시는 다른주제가 있다면 댓글로 남겨주시면 참고하여 다음 편을 작성해 보겠습니다.구성내용 및 목표이전과 같이 기본적으로 Spring Boot와 Java를 활용하여 개발을 진행할 계획이며, ..
JPA vs MyBatis: 어떤 ORM을 선택해야 할까? 스프링 백엔드 개발자라면 한 번쯤 고민해 봤을 질문, JPA와 MyBatis 중 무엇을 선택해야 할까?두 기술은 자바 애플리케이션에서 데이터베이스와 상호작용하는 데 사용되지만, 접근 방식과 특징이 크게 다릅니다. 이번 글에서는 JPA와 MyBatis의 차이점, 장단점, 그리고 상황에 따른 선택 기준을 명확히 정리해 보겠습니다. 1. JPA와 MyBatis의 기본 개념 JPA란?JPA(Java Persistence API)는 자바 표준 ORM(Object-Relational Mapping) 기술입니다. 객체 지향 프로그래밍 방식으로 데이터베이스와 상호작용할 수 있도록 설계되었습니다. JPA를 사용하면 SQL 대신 객체(Entity)를 통해 데이터..
@Transactional ( 트랜잭션 )에 대한 이해트랜잭션의 개념트랜잭션은 데이터베이스에서 수행되는 작업의 묶음으로, 일련의 작업이 모두 성공적으로 완료되거나 모두 실패해야 하는 특성을 가집니다. 이를 ACID 속성이라고 하며, 아래와 같은 특징을 가집니다원자성(Atomicity): 트랜잭션 내의 모든 작업이 성공해야만 데이터베이스에 반영됩니다. 하나라도 실패하면 전체가 롤백되어야 합니다. ( ALL OR NOTHING )일관성(Consistency): 트랜잭션이 완료되면 데이터베이스는 일관된 상태를 유지해야 합니다.격리성(Isolation): 동시에 실행되는 트랜잭션 간에 서로 영향을 미치지 않아야 합니다.지속성(Durability): 트랜잭션이 성공적으로 완료된 후에는 그 결과가 영구적으로 저장되..
무작정 따라 하기 1탄 나만의 TODO리스트 만들기 3편 👩💻안녕하세요! 이전 2편에서는 데이터베이스 설계 및 엔티티 클래스를 구현을 진행하였습니다. 이번 편에서는 CRUD 기능중 Create, Read를 구현해 보겠습니다.기본적인 디자인은 부트스트랩(Bootstrap)을 활용해보겠습니다.3편 예시 완성본이제 시작해 봅시다~1. HTML 폼 작성1.1 HTML 폼 만들기src/main/resources/static/ 폴더에 index.html 파일을 생성하고 아래 코드를 입력합니다. TODO 리스트 추가 ..
10분 만에 인텔리제이(IntelliJ) 설치하기 안녕하세요!이번 편에서는 실제 프로젝트에 들어가기 전 필요한 인텔리제이 (IntelliJ) 설치를 진행해 보도록 하겠습니다.인텔리제이(IntelliJ)란?인텔리제이는 JetBrains사에서 만든 IDE(통합 개발 환경)으로 이클립스보다 보다 편리한 기능들이 많이 포함되어 있는 툴입니다. 인텔리제이 설치하기인텔리제이는 기본적으로 Community(무료) 버전과 Ultimate(유료) 버전으로 나뉘어있는데 이번 편에서는 Community버전 설치를 진행해 보겠습니다. [ Ultimate버전의 경우 30일 무료 사용이 가능합니다 ]아래 링크를 통해 JetBrains 사이트에 접속합니다https://www.jetbrains.com/ko-kr/idea/downlo..
