inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

2-6.연습문제 17번

해결됨

초보자를 위한 BigQuery(SQL) 입문

안녕하세요. 열혈 수강자 이지수입니다 : ) 문제가 하나씩 풀리니 넘 재밌고 뿌듯합니다 ㅎㅎ 17번 문제에서 풀어준 포켓몬 수를 B 전체 포켓몬 수를 A로 두었는데요 COUNT IF B/A 이런식으로 축약해서 연산할 수는 없나요? 감사합니다. SELECT trainer_id, COUNTIF(status="Released") as B , #풀어준 포켓몬의 수 COUNT(pokemon_id) as A, #전체 포켓몬의 수 COUNTIF(status="Released")/COUNT(pokemon_id) as released_ratio FROM basic.trainer_pokemon GROUP BY trainer_id HAVING released_ratio >=0.2

  • sql
  • bigquery
  • 데이터-리터러시
wasd7595 댓글 1 좋아요 0 조회수 128

CORS 질문

미해결

FastAPI 완벽 가이드

CORS 설명 주신 부분을 보면 처음 브라우저에서 request 날릴 때에는 Origin에 아무런 값이 들어가 있지 않아서 response를 받고 그 이후에 받은 html의 javascript 쪽에서 다른 요청을 보냈을 때 기존에 요청하면서 받았던 Origin 값이 같이 들어가면서 이슈가 발생한다고 말씀주셨는데, blog json data 테스트 하는 거 보면 origin이 null인데 바로 cors 에러가 나나요 ?

  • python
  • sql
  • sqlalchemy
  • FastAPI
인프린 댓글 2 좋아요 0 조회수 172

코틀린 컴파일에 대해서

미해결

더 자바, 코드를 조작하는 다양한 방법

자바, jvm, jdk 그리고 jre 강의에서 kotlinc 명령어로 .kt 파일을 컴파일하시는걸 봤는데요, 코틀린 컴파일러는 jdk에 포함되어 있는 것이 아니고 따로 설치해야 하는게 맞을까요? jre는 java의 실행환경을 제공하고, jdk는 개발 도구 키트를 제공해서 java를 컴파일하는 javac 등의 명령어? 툴?은 jdk에 포함되어 있다고 강의 교안에 적혀있는데 그럼 코틀린의 컴파일러는 추가적으로 설치가 필요한지, 아니면 뭔가 방법이 있는지 궁금합니다. 우선 컴파일하면 바이트 코드가 되기 때문에 런타임에 필요한 라이브러리만 포함하여 패키징하면 jre에서 실행할 수 있다는 것은 이해했습니다!

  • java
  • kotlin
  • jdk
  • jvm
이찬미 댓글 1 좋아요 0 조회수 257

직접 구현하는 배열 리스트1- 시작의 MyArrayListV1 구현 질문이요

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 직접 구현하는 배열 리스트1- 시작의 MyArrayListV1 구현문제를 예외 처리하고 싶은데 아무리 해도 안돼는데 해결책좀 try { list.add("f"); System.out.println(list); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("배열의 범위를 벗어났습니다"); System.out.println("예외 발생 위치: " + e.getMessage()); e.printStackTrace(System.out); } 그리고 아래 MyArrayListV1에 이렇게 작성하면 되긴 돼는데 저는 유지보수를 위해서 try~catch를 하고 싶거든요. 그래서이렇게 질문 남겨요 public void add(Object e) { if (size >= elementData.length) { // 배열이 가득 찼는지 체크 throw new ArrayIndexOutOfBoundsException("용량을 초과했습니다. 현재 크기: " + size + ", 최대 용량: " + elementData.length); } elementData[size] = e; size++; }

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
justcoin 댓글 1 좋아요 0 조회수 138

트랜잭션 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

public class OrderApiController { @GetMapping("/api/v1/orders") public List<Order> orderV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); order.getDelivery().getAddress(); List<OrderItem> orderItems = order.getOrderItems(); orderItems.forEach(o -> o.getItem().getName()); } return all; } } public class OrderRepository{ public List<Order> findAllByString(OrderSearch orderSearch) { String jpql = "select o from Order o join o.member m"; boolean isFirstCondition = true; //주문 상태 검색 if (orderSearch.getOrderStatus() != null) { if (isFirstCondition) { jpql += " where"; isFirstCondition = false; } else { jpql += " and"; } jpql += " o.status = :status"; } ... 트랜잭션을 따로 붙히지 않았는데 상관없는건가요? List<Order> all = orderRepository.findAllByString(new OrderSearch()); 이 때 연관관계매핑되어 있는 객체들은 지연로딩에 의해 프록시로 존재하고 for (Order order : all) { order.getMember().getName(); order.getDelivery().getAddress(); List<OrderItem> orderItems = order.getOrderItems(); orderItems.forEach(o -> o.getItem().getName()); } 이 때 강제호출 되어서 쿼리가 나가는 게 맞나요? orderRepository.findAllByString에서 repository에서 작업이 마쳐서 트랜잭션이 커밋되어서 영속성 컨텍스트에는 아무값이 없을 거 같은데 컨트롤러에서 리턴하기 전까지 하나의 트랜잭션 안에서 작동이 이뤄지는 건가요? 트랜잭션이 언제 시작하고 언제 종료되는 지 궁금합니다

  • java
  • spring
  • spring-boot
  • jpa
kongminoo 댓글 2 좋아요 0 조회수 139

url 차이 질문

해결됨

FastAPI 완벽 가이드

@app.get("/items") # 함수에 개별 인자값이 들어가 있는 경우 path parameter가 아닌 모든 인자는 query parameter # query parameter의 타입과 default값을 함수인자로 설정할 수 있음. async def read_item(skip: int = 0, limit: int = 2): return fake_items_db[skip : skip + limit] @app.get("/items_nd/") # 함수 인자값에 default 값이 주어지지 않으면 반드시 query parameter에 해당 인자가 주어져야 함. async def read_item_nd(skip: int, limit: int): return fake_items_db[skip : skip + limit] 안녕하세요 url 차이에 관해 질문드립니다. 위에 url은 "/items" 인데, 아래 url은 "/items_nd/" 으로 끝에 /가 붙어있는데요. 둘다 query params로 구성되어 있는데 위는 /로 안끝나고, 아래는 왜 /로 끝났는지 이유가 궁금합니다.

  • python
  • sql
  • sqlalchemy
  • FastAPI
코드몽키 댓글 1 좋아요 0 조회수 133

[인프런 빅쿼리 빠짝스터디 1주차] 퍼널 작성 흐름을 익히는게 어려웠다

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

목차 과제별 작성 쿼리 쿼리 작성 후 느낀점 과제별 작성 쿼리 (1) ARRAY·STRUCT ## 연습문제 1번 -- select -- title, -- genre -- from advanced.array_exercises -- cross join unnest(genres) as genre ## 연습문제 2번 -- select -- title, -- actor.actor, -- actor.character, -- from advanced.array_exercises -- cross join unnest(actors) as actor ## 연습문제 3번 -- select -- title, -- actor.actor, -- actor.character, -- genre -- from advanced.array_exercises -- cross join unnest (actors) as actor -- cross join unnest (genres) as genre ## 연습문제 4번 -- select -- user_id, -- event_date, -- event_name, -- user_pseudo_id, -- event_param.key, -- event_param.value, -- event_param.value.int_value -- from advanced.app_logs -- cross join unnest(event_params) as event_param -- where -- event_date = '2022-08-01' PIVOT ## 연습문제 1번 -- select -- order_date, -- sum(if(user_id=1, amount, 0)) as user_1, -- sum(if(user_id=1, amount, 0)) as user_2, -- sum(if(user_id=1, amount, 0)) as user_3, -- from advanced.orders -- group by -- order_date -- order by -- order_date asc ## 연습문제 2번 -- select -- user_id, -- sum(if(order_date='2023-05-01', amount, 0)) as 2023-05-01 , -- sum(if(order_date='2023-05-02', amount, 0)) as 2023-05-02 , -- sum(if(order_date='2023-05-03', amount, 0)) as 2023-05-03 , -- sum(if(order_date='2023-05-04', amount, 0)) as 2023-05-04 , -- sum(if(order_date='2023-05-05', amount, 0)) as 2023-05-05 -- from advanced.orders -- group by -- user_id ## 연습문제 3번 -- select -- user_id, -- max(if(order_date = '2023-05-01', 1, 0)) as 2023-05-01 , -- max(if(order_date = '2023-05-02', 1, 0)) as 2023-05-02 , -- max(if(order_date = '2023-05-03', 1, 0)) as 2023-05-03 , -- max(if(order_date = '2023-05-04', 1, 0)) as 2023-05-04 , -- max(if(order_date = '2023-05-05', 1, 0)) as 2023-05-05 -- from advanced.orders -- group by -- user_id ## 앱 로그 데이터 배열 PIVOT -- with base as ( -- select -- user_id, -- event_date, -- event_name, -- user_pseudo_id, -- event_param.key as key, -- event_param.value.string_value as string_value, -- event_param.value.int_value as int_value -- from advanced.app_logs -- cross join unnest(event_params) as event_param -- where -- event_date = '2022-08-01' and -- event_name = 'click_cart' -- ) -- select -- user_id, -- event_date, -- event_name, -- user_pseudo_id, -- max(if(key = 'firebase_screen', string_value, null)) as firebase_screen, -- max(if(key = 'food_id', int_value, null)) as food_id, -- max(if(key = 'session_id', string_value, null)) as session_id, -- from base -- group by all 퍼널 ## step1 : 퍼널정의, 유저 집계 방식 정하기 ## step2 : 데이터 확인 -- select -- *, -- event_param.key, -- event_param.value.string_value, -- event_param.value.int_value, -- from advanced.app_logs -- cross join unnest(event_params) as event_param -- where -- event_date between '2022-08-01' and '2022-08-18' -- limit 100 ## step3 : pivot 해서 concat 하기 좋은 형태로 만들기 with base as ( select *, max(if(event_param.key = 'firebase_screen', event_param.value.string_value, null)) as firebase_screen, max(if(event_param.key = 'food_id', event_param.value.int_value, null)) as food_id, max(if(event_param.key = 'session_id', event_param.value.string_value, null)) as session_id from advanced.app_logs cross join unnest(event_params) as event_param where event_date between '2022-08-01' and '2022-08-18' group by all ) ## step4 : concat해서 퍼널 컬럼 정의하기 , base2 as ( select *, concat(event_name, '-', firebase_screen) as event_name_with_screen from base ) ## step5 : 퍼널별 유저수 쿼리 작성 I step_number, cnt 컬럼 생성 -- select -- event_name_with_screen, -- case -- when(event_name_with_screen = 'screen_view-welcome') then 1 -- when(event_name_with_screen = 'screen_view-home') then 2 -- when(event_name_with_screen = 'screen_view-food_category') then 3 -- when(event_name_with_screen = 'screen_view-restaurant') then 4 -- when(event_name_with_screen = 'screen_view-cart') then 5 -- when(event_name_with_screen = 'click_payment-cart') then 6 -- else null -- end as step_number, -- count(distinct user_pseudo_id) as cnt -- from base2 -- group by -- 1 -- having -- step_number is not null ## step6 : 일자별 퍼널 쿼리 작성 select event_date, event_name_with_screen, case when(event_name_with_screen = 'screen_view-welcome') then 1 when(event_name_with_screen = 'screen_view-home') then 2 when(event_name_with_screen = 'screen_view-food_category') then 3 when(event_name_with_screen = 'screen_view-restaurant') then 4 when(event_name_with_screen = 'screen_view-cart') then 5 when(event_name_with_screen = 'click_payment-cart') then 6 else null end as step_number, count(distinct user_pseudo_id) as cnt from base2 group by all having step_number is not null order by event_date 쿼리 작성 후 느낀점 (1) ARRAY·STRUCT I 쿼리를 풀고난 이후 느낀점 1. '~별'이라고 해서 무조건 GROUP BY는 아니다 ARRAY 또는 STRUCT 같은 구조체 타입 컬럼을 만나기 전에는 '~별'이라는 텍스트가 있을 때 GROUP BY를 떠올렸습니다. 그러나 구조체 타입 컬럼을 다루고난 이후, 생각이 달라졌습니다. 비구조체 컬럼을 구조체 컬럼과 함께 출력할 때는 '~별'을 GROUP BY로 출력할 수 없다는 걸 알았습니다. 2. CROSS JOIN을 2개 이상 사용할 때는 CROSS JOIN을 2개 이상 입력할 때는 쉼표를 사용하지 않는다는 걸 알았습니다. 다른 구간에서 요소를 2개 이상 입력할 때는 쉼표를 사용해서 요소를 분리 했었는데, CROSS JOIN은 아니였습니다. CROSS JOIN을 2개 이상 사용할 때 쉼표를 쓰면 다음과 같은 오류가 발생하는 걸 알았습니다 : --> Syntax error: Unexpected keyword CROSS at [24:1] (2) PIVOT I 쿼리를 풀고난 이후 느낀점 1. 날짜 데이터와 다르게 일반 숫자데이터는 따옴표를 쓰지 않는다 EX) if(user_id=1, amount, 0) --> O if(user_id='1', amount, 0) --> X + if(user_id='2024-10-22', amount, 0) --> O 2. 컬럼명에 대시(또는 한글)를 사용할 때는 따옴표가 아닌 백틱으로 컬럼명을 감싼다 대시를 컬럼명으로 할 때는 백틱을 사용. as 2023-05-01 --> O as '2023-05-01' --> X + as 빠짝스터디 --> O as '빠짝스터디' --> X 3. 일반 테이블을 피봇테이블로 만들 때 고려해 봐야 할 2가지 1. 행에 2개 이상 중복이 있는지 확인한다. 2. 2개 이상 중복이 있지만, 피봇테이블로 변경 했을 때 효율적인지 생각해 본다. 위 2개 조건을 모두 충족하는 컬럼을 피봇테이블 만들 때 기준 컬럼으로 삼음. EX) *'앱 로그 데이터 배열 PIVOT 하기' 테이블 참고 student 열 중복 있음 (A, A, A, B, B, B) 기준 열로 삼으면 → 각 학생의 모든 과목 점수를 한눈에 볼 수 있어서 효율적! subject 열 중복 있음 (수학, 영어, 과학이 2번씩) 기준 열로 삼으면 → 과목별로 학생들의 점수를 볼 수는 있지만, 한 학생의 전체 성적을 보기는 어려움 score 열 중복이 없음. 기준 열로 삼으면 → 같은 점수끼리 모이겠지만, 효율이 떨어짐. (3) 퍼널 I 쿼리를 풀고난 이후 느낀점 1. concat 할 때 따옴표 사용 주의 처음 concat 할 때 다음과 같이 입력했습니다. concat(event_name, '-', 'firebase_screen') 'firebase_screen'라고 작성했었는데, 이렇게 하니깐 firebase_screen 내에 있는 데이터랑 concat 된 게 아니라 'firebase_screen'라는 문자 자체랑 concat이 되어서 혼란스러웠습니다. concat 내에서는 따옴표를 쓰지 않고, 컬럼끼리 연결해야겠다는 걸 알게 됐습니다.

  • sql
  • bigquery
  • 인프런
  • 빠짝스터디
  • 빅쿼리
레스 댓글 1 좋아요 0 조회수 210

new HashMap 관련한 import 문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 코드에서 private static Map<Long, Member> store = new HashMap<>(); 부분이 있는데요.. 중간에 코딩시에 HashMap 부분에 빨간줄이 그어져있어서 뭔가 문제지 했는데 나중에 코드를 보니까 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Optional; 처음 작성시엔 위의 코드로 import 가 되어있었는데 동영상 후반에 보니까 아래 코드로 변경되어져 있었습니다. import java.util.*; 위 import 부분을 강의영상에서 변경된 부분을 못찾았는데 어떠한 이유로 그렇게 변경된건지 알고 싶습니다.

  • java
  • spring
  • mvc
  • spring-boot
우대희 댓글 2 좋아요 -1 조회수 261

findAllByString() 실행 시 총 쿼리 7번 날아갑니다.

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이전 질문 내역에서 하이버네이트6 최적화 문제라는 답변을 봤는데.. 아직 패치가 안된건지 2024 년에도 총 7번 쿼리날아가네요. 디버깅 해보니 address = order.getDelivery().getAddress(); // LAZY 초기화 이 부분에서 select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-10-22T14:07:35.134+09:00 DEBUG 6578 --- [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 이렇게 두번 쿼리가 실행되네요.. 그래서 List<Order> all = orderRepository.findAllByString(new OrderSearch()); 여기서 쿼리 한번 name = order.getMember().getName(); // LAZY 초기화 여기서 쿼리 한번 address = order.getDelivery().getAddress(); // LAZY 초기화 여기서 쿼리 두번 주문 리스트가 2개 있으므로 1 + 2 * (1 + 2) = 7 번 실행됩니다. 궁금한 점은 select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 이 쿼리는 왜 추가적으로 실행되는지 모르겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
ewgregerg c 댓글 2 좋아요 0 조회수 269

sakila데이터베이스 다운했는데 값이 전부 null

미해결

중고급 SQL과 실전 데이터 분석 101 문제 풀이

스키마 다운 그리고 db다운 그리고 select * from actor limilt 10; 후 실행하면 테이블은 표는 나오는데 안에 value값은 null로 나와요 뭘 잘 못한 걸까요? ㅜ 이틀 통안 삭제 다시 하면서 10번은 해본거 같아요

  • sql
  • mysql
  • dbms/rdbms
박효정 댓글 1 좋아요 0 조회수 198

w3schools 에러

해결됨

[백문이불여일타] 데이터 분석을 위한 기초 SQL

w3schools.com 에서 실습을 할 때 SELECT * FROM products ORDER BY price DESC LIMIT 3 으로 실행시켰는데, Error in SQL: Syntax error in ORDER BY clause. 이런 결과가 나오는 건 왜일까요?ㅠ

  • sql
Nayeon Kim 댓글 2 좋아요 1 조회수 258

인텔리제이 설정 문제로 빌드가 안됩니다.

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

수동으로 빌드하면 잘 실행되는데 인텔리제이의 빌드 기능을 사용하면 첨부한 사진처럼 찾을 수 없다고 뜹니다. 소스 경로와 컴파일 경로 설정 해주었고, configurations도 확인해봤는데 뭐가 문제인지 모르겠습니다. 아예 삭제하고 다시 프로젝트를 만들어도 계속 같은 에러가 발생하는데 뭐가 문제인걸까요??

  • java
  • 객체지향
신은영 댓글 3 좋아요 0 조회수 1003

일대다 단방향이 안좋다면 다대일 양방향으로 사용하는것이 좋을까요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

Team과 Member가 1:N일때 Member 객체에서 Team을 참조할 일이 없고 Team 객체에서 Member를 참조해야 하는 경우 이번 강의처럼 일대다 단방향으로 짜게 되는데요 그렇게되면 Team 객체에서 다른 Member 테이블의 FK를 관리하므로 영한님께서 추천해주시지 않았습니다 그러면 그냥 Member와 Team이 양방향 관계를 갖고, FK를 보유한 Member가 연관관계의 주인이 되는게 나을까요? 두개의 장단점을 잘 모르겠네요

  • java
  • jpa
skkud.inflearn1 댓글 1 좋아요 0 조회수 189

ReadFileV2 클래스 실행시 무한 루프 현상

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(FILE_NAME); long startTime = System.currentTimeMillis(); byte[] buffer = new byte[BUFFER_SIZE]; int fileSize = 0; int size; while ((size = fis.read(buffer)) != 1) { fileSize += size; } fis.close(); long endTime = System.currentTimeMillis(); System.out.println("File name: " + FILE_NAME); System.out.println("File size: " + fileSize / 1024 / 1024 + "MB"); System.out.println("Time token: " + (endTime - startTime) + "ms"); } } CreateFIleV1, 2, readFileV1 까지는 결과가 나오는데 readFileV2는 결과가 나오지 않습니다 인텔리J에서 뭐 설정 해야 할게 있을까요? 추가로 BUFFER_SIZE를 8192 -> 100으로 줄여봐도 결과는 결과가 나오지 않네요..ㅠ public static final int BUFFER_SIZE = 100; buffered.dat 파일에 에디터에서 설정 해라 라는거 같은데 인텔리제이 초기설정이 따로 있을까요..? This document contains very long lines Soft wraps were enabled to improve editor performance. This file explicitly re-assigned ot plain text

  • java
  • 네트워크
  • 객체지향
홍태경 댓글 1 좋아요 1 조회수 295

@Autowired 질문

미해결

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Test 할떄 @RequiredArgsConstructor로 주입을 하면 ParameterResolutionException이 나고 필드 주입을 하면 왜 오류가 안나는지 잘모르겠어서 질문 드려요 @SpringbootTest랑 @Transactional은 둘다 있어요

  • java
  • jpa
조희제 댓글 2 좋아요 0 조회수 153

오타 제보드립니다.

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 단순 오타 제보드립니다. IO 기본1 pdf 에 HDD, SSD 인데, HDD, SDD 라고 되어있습니다.

  • java
  • 네트워크
  • 객체지향
sj0000 댓글 1 좋아요 0 조회수 234

update flush() 질문

미해결

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 1. 제가 생각 하는 것이 맞나요? JPQL의 경우 실행 시 flush()가 호출 되는데 그렇다면 이전의 변경 감지 + update 쿼리가 실행이 되는 것으로 알고 있습니다. 그뒤에 flush()를 호출을 하더 라도 이전 값은 다 DB에 반영 되어 있고 영속성 컨텍스트는 변경이 없기 때문에 변경감지 쿼리도 안나가게 되는 것으로 알고 있습니다. 2. flush()를 호출 하는 것이어떤 의미가 있는 건가요?

  • java
  • jpa
조희제 댓글 1 좋아요 0 조회수 152

static 파트의 MathArrayUtil 문제에 대해 질문있습니다

미해결

김영한의 실전 자바 - 기본편

밑에 동일한 질문이 있긴한데 이해를 못하겠어서요 저는 이런식으로 sum이라는 private static으로 선언된 변수를 만들고 해당 변수를 사용해서 sum,average 메소드에 사용 했는데요 이렇게 비슷하게 사용하신분의 질문글의 답글을 보니까 클래스 변수를 쓰면 안되고 이유는 여러곳에서 해당 클래스를 사용하게 될 경우 sum의 값이 손상될 수 있다는 이유였는데요 private static을 쓰는데 어떻게 여러곳에서 sum 변수에 접근할 수 있는지 궁금합니다 private은 해당 클래스 내에서만 사용할 수 있는거 아닌가요? 만약 사용할 수 있다고 해도 private 이라는 접근제어자가 다른 곳에서 사용 하지 못하게 하려는 목적이라고 알고있는데 그럼 private을 이용하여야 하는 이유를 모르겠습니다 package static2.ex; public class MathArrayUtils { private MathArrayUtils(){} private static int sum; static int sum(int[] values){ for (int v : values) { sum += v; } return sum; } static double average(int[] values) { return (double)sum / values.length; }

  • java
  • 객체지향
댓글 1 좋아요 0 조회수 86

ORCL등록되지 않았다고 나옴!

미해결

실습으로 손에 잡히는 SQLD(2과목)

ORA-12514: 데이터베이스에 접속할 수 없습니다. %s 서비스가 %s의 리스너에 등록되지 않았습니다. (CONNECTION_ID=+MvkL937Qk6z4IPwPp85vQ==) 요렇게 나옵니다..ㅠㅠ

  • sql
  • oracle
  • mssql
  • SQLD
김츄 댓글 2 좋아요 0 조회수 447

@Transactional(readOnly = true) 의 트레이드 오프

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 영한님. 이 강의를 보고 질문이 생겨 남기게 되었습니다. 이전의 강의에서 @Transactional(readOnly = true)가 성능에서 최적화 해주는 부분이 있다해서 조회용 Service 레이어의 모든 조회용 메서드에 @Transactional(readOnly = true)를 붙였습니다. OSIV 라는 개념을 공부하면서 커넥션 풀이 마르지 않게 비활성화 해야된다는것을 보고 제 방식대로라면 OSIV 를 비활성화 하더라도 모든 서비스 layer의 메소드가 커넥션을 점유해야 돼서 (CUD api 에서 부르는 서비스 메소드는 @Transactional, R 에서는 @Transactional(readOnly = true)가 붙을테니) 마르지 않을까 하는 고민이 생겼습니다. 그렇다고 최소한으로 커넥션을 점유하기 위해 OSIV를 false 로 가져가면서 Repository의 조회 메소드 단위로만 @Transactional(readOnly = true)을 붙이면 영속성 컨텍스트의 범위도 그만큼만 가져가서 1차캐시나 지연로딩으로 batch size만큼 가져오는것도 사용을 못할테니 영속성 컨텍스트의 사용이 필요할때만 붙이는게 맞을지 아니면 Service layer의 조회용 메서드에 붙여도 될지 잘 모르겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
말차 댓글 2 좋아요 0 조회수 388

인기 태그

인프런 TOP Writers

주간 인기글