묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@OneToMany
'자바 ORM 표준 JPA 프로그래밍 - 기본편' -기본 문법과 쿼리 API- Order 클래스에는 @ManyToOne @JoinColumn(name = "PRODUCT_ID") private Product product; @ManyToOne을 작성해주는데 Product 클래스에는 @OneToMany를 작성하지 않는건가요??작성하지 않아도 실행이 잘되었습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
[내용 문의]
4분 40초 호출이 안되어야 하는데, 저는 동일하게 내용을 기입하였는데 func1이 정상적으로 작동됩니다.
-
미해결C# WPF .NET Core(7.0)
소스프로그램 및 교육 교재
프로그램 소스코드와 교재는 어디서 구하나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
캐시를 포함한 Service Layer 테스트 가이드
안녕하세요. 우빈님!캐시를 처음 적용해 보아서 캐시를 포함한 비지니스 로직을 어떻게 작성하는 것이 좋을까? 에 대한 고민이 있어 글 남깁니다...! AS IS@Transactional public UosRestaurantMenuResponse getUosRestaurantMenu(UosRestaurantInput input) { // 학식 조회 UosRestaurant findUosRestaurant = uosRestaurantRepository.findByCrawlingDateAndRestaurantNameAndMealType(input.getDate(), input.getRestaurantName(), input.getMealType()) .orElseThrow(() -> new UosRestaurantMenuException(UosRestaurantMenuException.NOT_FOUND_MENU)); // 조회수 증가 findUosRestaurant.increaseView(); return UosRestaurantMenuResponse.of(findUosRestaurant); } TO BE@Transactional public UosRestaurantMenuResponse getUosRestaurantMenu(UosRestaurantInput input) { // 캐시에서 학식 조회 Optional<CacheUosRestaurant> cacheUosRestaurant = cacheUosRestaurantRepository .findById(CacheUosRestaurant.createId(input)); // 캐시에 학식이 존재하면 if(cacheUosRestaurant.isPresent()) { // 조회수 증가 cacheUosRestaurant.get().increaseView(); CacheUosRestaurant saveCacheRestaurant = cacheUosRestaurantRepository.save(cacheUosRestaurant.get()); return UosRestaurantMenuResponse.of(saveCacheRestaurant); } // 학식 조회 UosRestaurant findUosRestaurant = uosRestaurantRepository.findByCrawlingDateAndRestaurantNameAndMealType(input.getDate(), input.getRestaurantName(), input.getMealType()) .orElseThrow(() -> new UosRestaurantMenuException(UosRestaurantMenuException.NOT_FOUND_MENU)); // 조회수 증가 findUosRestaurant.increaseView(); // 캐시에 저장 cacheUosRestaurantRepository.save(CacheUosRestaurant.of(findUosRestaurant)); return UosRestaurantMenuResponse.of(findUosRestaurant); } 캐시에 대한 로직이 추가될 때 위와 같이 하나의 서비스 레이어 메소드에 작성하는 것이 좋은걸까요?캐시에 대한 테스트 코드를 작성할 때 캐시를 사용할 때와 캐시를 사용하지 않을 때를 상황을 구분하여 작성하는 것이 맞을까요..?(그것이 좋겠죠....? -> 기존 비지니스 로직 테스트 코드를 수정하는것이 최선일까? 에대한 의문이 들어서 질문 드렸습니다.)스프링에서 CacheManager를 이용하여 @Cacheable 을 활용하는 방법이 있는데, CrudRepository를 사용하는 방법과 CacheManager를 사용하는 방법 중 어느 것이 더 좋은(?) 방법인지 말씀주시면 감사하겠습니다.4. 마지막으로 캐시를 사용할 때 깔끔하게 비지니스 로직을 작성할 수 있는 노하우 말씀주시면 감사하겠습니다.!!!다소 질문이 난해한데 너그럽게 이해해주시면 감사하겠습니다.ㅠㅠ좋은 강의 잘 듣고 있습니다. 다음 강의도 기대할께요^^!!감사합니다.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
예외 발생시 스프링 트랜잭션 AOP는 예외의 종류에 따라 트랜잭션을 커밋하거나 롤백한다. 에 대해서 질문 있습니다.
[질문 내용] 강의를 보다가 의문점이 들었습니다. " 체크 예외인 Exception과 그 하위 예외가 발생하면 트랜잭션을 커밋한다. " 의 경우 RuntimeException도 Exception의 하위 예외인데 제가 이해한것이 맞다면 "체크 예외인 Exception과 RuntimeException를 제외한 하위 예외가 발생하면 트랜잭션을 커밋한다." 가 맞나요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
같은 ip인데 다른 네트워크일 수 는 없는거죠?
0.0.0.0~127.255.255.255는 넷id 앞 1개 쓰고128.0.0.0~191.255.255255 넷id 앞 2개 쓰고 그래서넷id 1자리(?) 쓰는 0.0.0.0은 있어도넷id 2자리(?) 쓰는 0.0.0.0은 없으니까 ip는 모두 서로 구별 되는 거죠? 질문이 이상하긴 한데
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
500 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]https://drive.google.com/file/d/1mu_pXERJk_lZC5yprE5sVQWm1RfNpIcp/view?usp=drive_link회원 목록이나 회원 등록 페이지를 들어가면 위와 같은 에러가 뜹니다. 이유를 못 찾겠어서 질문 글 남깁니다.
-
미해결[신규 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
실행방법의 차이와 터미널 문구 설명부탁드려요
안녕하세요 선생님. 위와같이 실행했을때 터미널에 나오는 문구가 선생님과 차이가 좀 있는데 이유 알수있을까요?파워쉘에서 cmd로 변경한거같은데 문구가 다르네요(경로, 파일명은 당연히 다르니까 다른걸 알겠는데 ps나 뭐 이런게 선생님 설정과 다른걸까요?) 추가질문이 있습니다.1) 위에 실행버튼(우측 상단 삼각형)을 누르는것 말고 실행 방법이 F5가 있는것같아서 F5눌러서 실행하고 있는데 터미널에 나오는 문구가 또 다르네요(이렇게 나오고있습니다)실행버튼과 F5의 차이가 있나요?3) 쉬프트+엔터 실행코드 전체를 드레그 한 후 '쉬프트+엔터'로 실행하면 터미널이 아래와같은데, 이는 어떤차이 인가요?결과가 달라지는걸까요?다양한 실행방법이 있는것같은데 그 차이가 궁금합니다 선생님!ㅜㅜ
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
signup_page.dart 오류 질문있습니다.
프로필 이미지 업로드 기능 개발 강의 듣는 중위와 같은 오류가 나는데어디 부분을 확인해야 할까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 compare 함수 질문
안녕하세요 큰돌님. 120p string으로 이루어진 배열을 정렬한 코드에 대해 질문드립니다.제가 이해한 바로는 compare라는 함수는 문자열의 길이를 비교하는 함수입니다.if(a.size() == b.size()) return a < b; 는 문자열의 길이가 같으면 a b 크기를 비교합니다. 이 때 비교하는 기준은 아스키 코드입니다.만약 문자열의 길이가 같지 않으면 크기를 비교해서(아스키코드 기준) 바로 boolean 값을 반환합니다.111은 222와 아스키코드적으로 비교를 하게되는데.. 이때 1의 아스키코드는 49이고 2의 아스키 코드는 50입니다. 111이 a, 222가 b 이니까 a < b 는 T가 됩니다.111은 이제 33과 비교를 하게 됩니다. if문에 해당이 되지 않기때문에 바로 return a.size() < b.size() 를 하게 됩니다. a가 111, 33이 b이고 a의 size는 3, b의 size는 2입니다. 결과적으로 F가 됩니다.여기서 드리고 싶은 질문은F가 되면 순서를 바꾸는건가요? 그렇담 왜 33,222,111 가 되지 않는건가요?111과 33은 아스키코드순으로 비교할 필요가 없지 않나요? 자릿수가 다르니까 a < b를 할 필요가 없을텐데.. 왜 교안에는 아스키코드순으로 비교한다는 내용이 실려져 있는건가요? 없어도 되는 내용인것 같은데…. 실려져 있어서 제가 잘못 알고있는건지 너무 헷갈립니다…
-
미해결데이터 분석가, IT 엔지니어에게 필요한 MySQL 마스터 코스!
강의 오류
섹션5 상호 조인 내용이 없어요.외부 조인 내용만 반복됩니다
-
미해결데이터 분석가, IT 엔지니어에게 필요한 MySQL 마스터 코스!
강의 오류 (조인 부분)
수강 중 질문이 있으시면 댓글로 남겨주세요!!친절하게 답변해 드리겠습니다!! :)
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
질문있습니다!
안녕하세요!얼추 큰틀은 잡고 공부를 하던 중 궁금한 점이 있어 질문드립니다! 한국포렌식학회에서 제공하는 실습파일(3.3)에서 매체정보에 대해 기술하는 문제가 있습니다. 섹터 당 용량, 클러스터 당 섹터 수 등은 전부다 배운대로 하니 잘 맞는데 유독 디스크 전체 용량만 숫자가 계속 다르더라구요.. 총 용량(디스크 전체 용량) = NTFS = 총 섹터수 X 섹터당 용량 - 클러스터 용량(크기)FAT32 = 총 섹터수 X 섹터당 용량 - (4096X1024) 위의 공식이 배운 내용인데 이대로 계산하면 숫자가 조금씩 달라서 왜 그런지 궁금하여 질문남깁니다! 그리고 혹시 한국포렌식학회에서 제공하는 실습파일(3.3) 풀어보셨었는지 모르겠는데 위의 실습파일을 분석하던 중 0608_.hwp 와 923.hwp 이 두개의 파일 내부의 내용을 확인할 수가 없더라구요..(삭제된 파일이라 추출 후 헤더도 맞고 확장자도 맞게 열어도..) 이런경우 내부의 내용을 어떻게 확인하는지 알려주실 수 있을까요?(질문이 총 두가지인데 답변 남겨주시면 너무 감사하겠습니다!)
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
dfs를 호출 할 때 매개변수..?
안녕하세요! 강의 넘 잘 듣고 있습니다. 하루만에 거의 다들었네요,,ㅋㅋ질문이 있습니다혹시 dfs를 호출할 때 이런 '-'나 '|' 같은게 나오면매개변수로 '-' 나 '|' 를 추가해서 dfs함수에 넘겨도 되는건가요?저는 이렇게 할 때가 많은데 이렇게 하지 않고 오히려 dfs 함수 안에서 해결해주는 게 더 간단한 것 같기도 해서요.. 보통은 어떻게 하시나요? 전 4방 탐색을 하면서 이렇게 풀었었네요,, 한 방향만 탐색하는 팁 배워갑니다 ㅎㅎimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[] dr = {-1, 1, 0, 0}; static int[] dc = {0, 0, -1, 1}; static int N, M; static char[][] arr; static int ans; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); arr = new char[N+2][M+2]; for (int i = 1; i <= N; i++) { String str = br.readLine(); for (int j = 1; j <= M; j++) { arr[i][j] = str.charAt(j-1); } } for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if (arr[i][j] == '|') { dfs(i, j, '|'); ans++; } else if (arr[i][j] == '-'){ dfs(i, j, '-'); ans++; } } } System.out.println(ans); } private static void dfs(int r, int c, char shape) { int start = 0; int end = 0; if (shape == '|') { start = 0; end = 1; } else if (shape == '-'){ start = 2; end = 3; } arr[r][c] = '1'; for (int d = start; d <= end; d++) { int nr = r + dr[d]; int nc = c + dc[d]; if(arr[nr][nc] == shape) { arr[nr][nc] = '1'; dfs(nr, nc, shape); } } } }
-
미해결R로 하는 웹 크롤링 - 입문편
htmltab 패키지에서 url을 불러올 수 없습니다.
주식데이터 크롤링을 수강하고 있습니다. htmltab 패키지 설치 후 url를 정상적으로 입력을 했는데도 Error: Couldn't find a table. 이라는 메세지가 나옵니다. 무엇이 잘못되었을까요...
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
코드에 약간 오타가 있는거 같습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 백기선님수업을 잘 듣고 있습니다. 제 생각에 간단한(?) 오타같은게 있는거 같아서 제보드립니다. 혹시 오타가 아니라면 제가 잘못 이해한 부분을 말씀 부탁드리겠습니다.옵저버 패턴 3부 - 1:56초쯤 unregister 를 subject가 "디자인패턴"인 것에 대해서 user2 를 해지 해주었는데요.이미 user 2는 오징어게임에만 등록중입니다. 그래서 결과값도 user2 가 보낸 "옵저버 패턴 장, 단점 보는 중" 이 user1한테 가서 출력된거 같습니다.아마 user1을 해지하거나 user2를 오징어게임에 대해서 해지하려고 하지 않았나 싶습니다..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
DB 컬럼 생성 조건이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강사님. 엔티티 자바파일 생성 후 서버 구동시 DB에 해당 엔티티에 들어있는 필드들이 컬럼으로 생성이 되는것은 잘 알고 있습니다.그런데 컬럼으로 생성이 안되는 조건이 궁금합니다.왜 궁금하냐면, 예를들어 강이의 Order 엔티티에서 setMember, addOrderItem, getTotalPrice 등의 메서드들은 DB에 필드 생성이 되지 않아서 입니다.DB에 컬럼이 생성되는 조건/생성되지 않는 조건이 궁금합니다.
-
미해결MariaDB 클라이언트 개발, HeidiSQL
수업에서 설명해 주시는 소스는 어디서 다운로드하면 되는지요?
안녕하세요.수업에서 설명해 주시는 소스는 어디서 다운로드하면 되는지요?
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
도구 다운로드에서 복사 붙여넣기가 계속 안되는데 왜그러는 건지 알수 있을까요?
도구 다운로드에서 복사 붙여넣기가 계속 안되는데 왜그러는 건지 알수 있을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
코드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Spirte 코드 44~52번줄 부분에서 { } 안에 적는 이유는 코드 정리를 깔끔하게 하기 위함인가요? 아니면 다른 이유가 있는건가요?