본문 바로가기
반응형

개발109

[Git] 기본 용어 정리 / Git 초보가 꼭 알아야 하는 Git 용어 [기본] # 로컬 저장소(local repository) 내 PC에서 관리하는 git 저장소 로컬 git 저장소를 만들어주려는 디렉토리로 이동해서 아래 명령어를 실행하면 .git 폴더 생성 $ git init .git 폴더에 커밋, 스테이지 등 저장소에 필요한 뼈대 파일이 저장되어 있음 # 원격 저장소(remote repository) 로컬 저장소를 업로드 하는 곳. ex) GitHub, Bitbucket, GitLab 등 clone 명령어로 기존 원격 저장소를 로컬에 받을 수 있음 $ git clone https://git저장소 주소 # 작업 폴더(Working Directory) 작업이 일어나는 폴더 # Staging Area(Index) 작업 폴더에서 작업한 변경 내용을 기록 하는 곳(git 저장소.. 2022. 5. 16.
[Git] 소스트리로 Git-flow 브랜치 전략 사용하기 실전편 (feat. Bitbucket pr 방법) Git 브랜치를 관리하는 방법 중 가장 보편적으로 쓰이는 Git-flow 전략! [참고] Git-flow 브랜치 전략 [Git] Git-flow 브랜치 전략 초간단 설명 요약! Git을 이용할 때 Git-flow 브랜치 전략을 이용하면 좀 더 체계적인 브랜치 관리가 가능해요 :) Git-flow 브랜치 브랜치 메인 브랜치 역할 배포 서버 태그 생성 main(master) O 상용 배포를 위한 브랜치 releas allonsyit.tistory.com 소스트리를 이용하면 Git-flow를 커맨드가 아닌 GUI로 편리하게 사용할 수 있다 1. 소스트리 메뉴 -> 저장소 -> Git flow / Hg flow -> 저장소 초기화 클릭 2. 각 브랜치의 이름과 접두어를 확인하고 확인 클릭 제품 브랜치 이름을 m.. 2022. 5. 13.
[JPA] 지연로딩과 조회 성능 최적화 2 - fetch join, DTO로 조회 1. fetch join 을 이용해서 entity 조회 후 DTO로 변환 1 + N 문제 해결도 하고, 조인을 통해 쿼리 한번으로 조회 가능 - Controller 코드 (엔티티로 조회해 왔기 때문에 DTO로 수정 후 반환) @GetMapping("/api/v3/simple-orders") public List ordersV3() { List orders = orderRepository.findAllWithMemberDelivery(); List result = orders.stream() .map(o->new SimpleOrderDto(o)) .collect(Collectors.toList()); return result; } @Data static class SimpleOrderDto { privat.. 2022. 4. 19.
[JPA] 지연로딩과 조회 성능 최적화 1 - xToOne # 아래 상황에서 최적화 방법을 알아보자 * ManyToOne, OneToOne * 지연로딩 => xToOne 연관관계의 대상을 프록시 객체로 가져옴 ★Entity를 그대로 반환하는 것은 좋지 않음! # 컨트롤러에서 xToOne 관계가 있는 entity 반환하는 방법 1) 컨트롤러에서 entity를 그대로 반환 시 아래와 같은 오류 발생! com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to .. 2022. 4. 18.
[Java] Arrays.asList / 특징 / 배열을 List 컬렉션으로 바꾸기 자바 컬렉션에는 유용한 API들이 많이 있다 배열을 사용하는 것보다 자바 컬렉션 API를 사용하는 것이 편할 때 배열을 List로 변경해서 사용하면 편리하다 1. 예제 코드(배열->List) String[] stringArr = {"A","B","C"}; List stringList = Arrays.asList(stringArr); 2. Arrays.asList 특징 - Arrays.asList를 이용하면 고정된 사이즈의 리스트로 반환 -> 추가,삭제 불가 new ArrayList() 로 새로운 리스트를 생성하면 추가, 삭제 가능 String[] stringArr = {"A","B","C"}; List stringList = new ArrayList(Arrays.asList(stringArr)); - R.. 2022. 4. 13.
[JPA] JPQL fetch join / 연관된 entity 한번에 select / distinct로 엔티티 중복 제거 / fetch join 페이징 안 될 때 @BatchSize 설정 fetch join을 설명하기전에 fetch type에 대해 복습을 해보자! # FetchType @ManyToOne, @OneToOne FetchType이 기본이 EAGER다 - FetchType.EAGER entity를 조회할 때 연관된 entity도 같이 조회해온다 이 경우 연관된 entity까지 select하는 쿼리가 나가야 하므로 성능이 좋지 않다 ex. member entity 조회 시 team entity까지 select 하므로 2번의 select 쿼리가 나간다 그래서 성능을 위해 모든 엔티티의 연관관계의 FetchType은 LAZY로 설정해두는 것이 좋다 - FetchType.LAZY 조회한 엔티티와 연관된 엔티티는 실제 사용 시에 조회해온다 ex. member 조회 -> member만 s.. 2022. 4. 12.