자바

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화 간단한 주문 조회 V1: 엔티티를 직접 노출 간단한 주문 조회 V2: 엔티티를 DTO로 변환 간단한 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 간단한 주문 조회 V4: JPA에서 DTO로 바로 조회 주문 + 배송정보 + 회원을 조회하는 API를 만들자 지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자. 참고: 지금부터 설명하는 내용은 정말 중요합니다. 실무에서 JPA를 사용하려면 100% 이해해야 합니다. > 안그러면 엄청난 시간을 날리고 강사를 원망하면서 인생을 허비하게 됩니다. 간단한 주문 조회 V1: 엔티티를 직접 노출 ( 엔티티 노출은 사용 권장 X, 꼭 필요한 정보만 노출 ) OrderSimpleApiControl..

    나는야 포켓몬 마스터 이다솜 - 1620번

    나는야 포켓몬 마스터 이다솜 - 1620번

    나는야 포켓몬 마스터 이다솜 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 256 MB 26947 8852 6287 32.421% 입력 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어. 둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포켓몬의 이름은 모두 영어로만 이루어져있고, 또, 음... 첫 글자만 대문자이고, 나머지 문자는 소문자로만 이루어져 있어. 포켓몬 이름의 최대 길이는 20이야. 그 다음 ..

    요세푸스 문제 - 1158번

    요세푸스 문제 - 1158번

    요세푸스 문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 256 MB 50463 24503 17494 48.004% 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, )-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ ..

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샙플 데이터 입력 조회용 샘플 데이터 입력 조회용 샘플 데이터 입력 API 개발 고급 설명을 위해 샘플 데이터를 입력하자. userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK package myjpabook.jpashop; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.*; import myjpabook.jpashop.domain.item.Book; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactiona..

    API 개발 기본

    API 개발 기본

    API 개발 기본 회원 등록 API 회원 수정 API 회원 조회 API postman 설치 (https://www.getpostman.com) 회원 등록 API package myjpabook.jpashop.api; import lombok.Data; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.Member; import myjpabook.jpashop.service.MemberService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org..

    입실 퇴실

    문제 설명 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 총 n명이 입실 후 퇴실했습니다. 편의상 사람들은 1부터 n까지 번호가 하나씩 붙어있으며, 두 번 이상 회의실에 들어온 사람은 없습니다. 이때, 각 사람별로 반드시 만난 사람은 몇 명인지 구하려 합니다. 예를 들어 입실 명부에 기재된 순서가 [1, 3, 2], 퇴실 명부에 기재된 순서가 [1, 2, 3]인 경우, 1번과 2번은 만났는지 알 수 없습니다. 1번과 3번은 만났는지 알 수 없습니다. 2번과 3번은 반드시 만났습니다. 또 다른 예로 입실 순서가 [1, 4, 2, 3], 퇴실 순서가 [2, 1, 3, 4..

    후보키

    후보키

    문제 설명 후보키 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다. 후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다. 관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집합 중, 다음 두 성질을 만족하는 것을 후보 키(Candidate Key)라고 한다. 유일성(uniqueness..

    튜플

    문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'..

    신규 아이디 추천

    문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..

    정규 표현식 (Regular Expression)

    정규 표현식은 특정한 규칙을 가진 문자열 집합을 표한하는 데 사용하는 형식 언어이다. ^ 문자열의 시작 $ 문자열의 종료 . 줄바꿈을 제외한 임의의 한 문자 [abc] []사이에 있는 임의의 한 문자, abc 중 하나 [^abc] []사이의 있는 문자를 제외한 다른 문자, abc를 제외한 다른 글자 [a-zA-Z] a 부터 z까지의 소문자 알파벳 이거나 A 부터 Z까지의 대문자 알파벳 중의 하나 [a-d[m-p]] a 부터 d까지, 또는 m 부터 p까지 중에 하나 [a-dm-p] [a-z&&[def]] d, e, f 중의 하나 (교집합) {} 횟수나 범위 re* 앞의 표현식이 0회 이상 re+ 앞의 표현식의 1회 이상 re? 앞의 표현식이 0회 또는 1회 re{n} 앞의 표현식이 n번 re{n, m} 앞..