JPA를 활용한 성능 개선 경험 회고
·
Framework&Tools/Spring
최근 진행했던 프로젝트에서 데이터베이스 성능 문제를 해결하기 위한 여정을 공유해보고자 합니다. 프로젝트 초반에는 마이바티스(MyBatis)를 이용하여 다수의 테이블을 조인하며 데이터를 조회했지만, 성능 문제가 점점 심각해졌습니다. 프로젝트 진행 당시에는 팀원 모두가 JPA를 갑자기 학습할 수도 없으니 추후에 나 혼자 해당문제를 해결 해보자고 생각했습니다. 그래서 이후에, 이 문제를 개선하고자 JPA(Java Persistence API)를 도입했지만, 초반에는 n + 1 문제로 인해 큰 성능 개선을 이루지 못했습니다. 이 글에서는 문제 해결 과정과 그 결과를 상세히 다루어 보겠습니다. 문제 상황: 성능 저하프로젝트 초기에는 MyBatis를 사용하여 복잡한 쿼리를 작성했습니다. 하지만 여러 테이블을 조인하..
Git 팀프로젝트 시작하기
·
Framework&Tools/GIT
깃으로 팀프로젝트 시작하기스크럼마스터 초기 세팅레포지토리 생성팀 프로젝트를 시작하기 위해 가장 먼저 해야 할 일은 GitHub에서 새로운 레포지토리를 만드는 것입니다. 레포지토리를 생성하고 나면 팀원들을 초대하여 협업을 시작할 수 있습니다.그룹구성원 초대(Add people)레포지토리가 생성되면 'Settings'로 이동하여 'Manage access'에서 팀원들을 초대합니다. 이메일 주소나 GitHub 사용자 이름을 입력하여 초대장을 보냅니다.로컬에서 프로젝트 환경세팅(스프링부트 세팅)로컬 개발 환경에서 프로젝트를 설정합니다. 이 예시에서는 스프링부트를 사용합니다. 필요한 종속성을 추가하고 프로젝트를 초기화합니다.깃허브와 연동로컬 환경에서 작업한 프로젝트를 GitHub 레포지토리와 연동합니다.git i..
Filter, Interceptor, AOP - 차이점과 적절한 사용 상황
·
Framework&Tools/Spring
오늘 학원에서 수업중 AOP라는 내용에 대해 공부하게 되었다. Spring에서 CRUD게시판을 만드는데 있어서 로그인과 회원정보수정, 회원가입 등에서 비밀번호를 암호화(SHA)시켜서 데이터베이스에 저장시키는 과정이 공통적으로 들어가게 되었다. 예를 들면 아래와 같은 코드이다. String hashPw = HashPw.getHash(user.getUserpw()); user.setUserpw(hashPw); 이런식의 공통적으로 들어가게 되는 코드를 줄이고자 AOP라는 것을 사용한다고 하였다. 자, 여기서 우선 AOP란 무엇인가? - 나도 잘모르니 같이 공부하는 셈치고 AI에게 물어보자. AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍) AOP(Aspect-Oriented P..
Spring에서 MyBatis 사용하기: 세팅부터 기본 문법까지
·
Framework&Tools/Spring
MyBatis는 데이터베이스와 자바 객체 간의 매핑을 위한 오픈 소스로, Spring 프레임워크와 함께 사용될 때 강력한 데이터 액세스 계층을 제공한다. 이번 포스팅에서는 Spring 프로젝트에서 MyBatis를 사용하는 방법과 기본 문법을 알아보도록 한다!! 1. 프로젝트 세팅 먼저, Spring 프로젝트에 MyBatis를 통합하기 위해 아래와 같은 의존성을 추가해야 한다. org.mybatis mybatis-spring-boot-starter {MyBatis 버전} 그리고 MyBatis 설정 파일(mybatis-config.xml)과 SQL 매퍼 파일들을 작성할 디렉토리를 생성한다. 2. MyBatis 설정 application.properties 파일에 데이터베이스 연결 정보를 설정한다. sprin..
1_ GIT과 GitHub에 대해 알아보자
·
Framework&Tools/GIT
Git 입문 개발공부를 처음 시작할때즈음 너무나도 당연하게도 Git이 뭐며 GitHub이 뭔가? 기초지식이 아무것도 없었다. 개발을 하고 있는 친구의 '깃허브를 해야된다' '매일 커밋하나씩은 해둬라 너의 자산이 된다.' '깃헙의 커밋이 너의 꾸준함, 성실함을 대변해준다.' 등등 또, 국비지원 학원에서 상담선생님도 깃허브와 개발블로그를 꼭하셔야한다... 라는 이야기를 너무나도 많이 들었다. 당시에 유튜브등을 대충 찾아보며 깃허브 계정을 가입하고 소스트리를 다운로드하여 학원에서 공부했던 내용을 커밋하는 정도까지느 했었다. 그러나, GIT이 뭔지 왜 쓰는건지 정말 1의 이해도 없이 단순 업로드성 커밋만 반복할 뿐이었다. 최근들어 학원공부를 어느정도 따라갈 수 있게되고 점점 개발공부에 대한 열정이 더 타올라서 ..