inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

페이징 방식의 readAll에서 count 쿼리 변경?

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [댓글 수 구현] 강의의 마지막에서 페이징 방식 readAll() 메소드에서 commentRepository.count(~)를 이번에 ArticleCommentCount를 활용하여 구현한 count(articleid)로 바꿔도 된다고 말씀하셨는데, 둘이 엄밀히 다르지 않나요?? 기존에 구현한 commentRepository.count(~)는 게시글별 댓글수를 조회하지만 limit가 있고, 이번에 구현한 count(articleId)를 limit 없이 그냥 게시글에 대한 댓글 수를 모두 조회하니 의미가 다르지 않나 싶어서 질문드려봅니다!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
parkhs 댓글 2 좋아요 0 조회수 130

API 이용할때 @Transactional

미해결

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

API를 이용할때 Service를 거치지 않고 Repository를 사용하여 DB에 접근하게되는데 @Transactional를 Repository마다 붙이지 않는 이유를 알 수 있을까요? 어디서 Transactional을 걸어주는지 모르겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
hahahl 댓글 3 좋아요 0 조회수 158

중첩 클래스 내 private 멤버도 부모 클래스에서 접근가능합니다.

미해결

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

중첩 클래스와 외부 클래스는 private 변수에 접근할 수 있도록 명시되어있다고합니다. 단 완전한 외부 클래스에서 중첩클래스를 사용하면 접근이 당연히 안됩니다.

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

접근제이자 문제2번 ShoppingCart 클래스 내 calculateTotalPrice 메서드 중 Item 인스턴스 생성 이유가 궁금합니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 수강 중 궁금한 내용이 있어 질문드립니다. 강사님 코드를 보면 private int calculateTotalPrice() { int totalPrice = 0; for (int i = 0; i < itemCount; i++) { Item item = items[i]; totalPrice += item.getTotalPrice(); } return totalPrice; } 처럼 for 문 안에서 Item item = items[i]; 로 새로운 인스턴스를 만드셨는데 문제 풀이를 보기 전 아래와 같이 인스턴스 생성 없이 풀었더니 똑같은 결과가 나왔습니다. private int calculateTotalPrice(){ int totalPrice = 0; for (int i = 0; i < count; i++){ totalPrice += items[i].totalPrice(); } return totalPrice; } 혹시 강사님께서 새로운 생성하신 이유가 따로 있으실까요?

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

실습 권한 부탁드립니다..

미해결

개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기

들어가지를 못하구 있어요 ..ㅠ

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
qowjdduswkd 댓글 1 좋아요 0 조회수 126

퀴즈 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 퀴즈 기능은 데스크탑 환경에서만 이용 가능해요.다른 수업으로 이동해주세요. 라는 문구와 함께 퀴즈가 안보입니다 (데스크탑으로 강의 이용중인 상태입니다)

  • java
  • 객체지향
김현수 댓글 2 좋아요 0 조회수 123

LinkedList 배열 선언에 관해서

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) : 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) : 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) : 예 [질문 내용] LinkedList<Integer>[] buckets = new LinkedList[CAPACITY] 에서 제네릭을 이용한 배열 초기화를 한 이 부분에서 보통 제네릭으로 선언하면 LinkedList<Integer> buckets = new LinkedList<>() 이렇게 생성하는 것으로 아는데, 배열로 만들면 <>()은 생략되는건가요? 배열의 크기만 정하면 되는건가요?궁금해서 질문드립니다.

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

sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류

미해결

Flutter 중급 1편 - 클린 아키텍처

The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류 관련으로 문의드립니다. sealed class에서 noteOrder.orderType를 접근할때 *참고사진1의 오류가 발생했습니다. 해당 오류는 sealed class 내부에 noteOrder.orderType에 접근 할수 없다라는 내용으로 *참고코드 2에서 *참고코드 3와 같이 sealed class에서 getter를 선언하고 각 클래스에서 해당 값을 사용할수 있도록 @override로 수정했으나 의문점이 생겨 문의드립니다. 1.*참고코드3 sealed class 수정사항이 맞는지 궁금합니다. 2.*참고코드3 사항이 맞는 경우 sealed class에서 getter로 OrderType get orderType; 사용했다면 나머지 class부분에서 orderType를 강제로 구현을 해야하기 때문에 orderType를 사용하지 않는 class 작성시 문제가 될것 같습니다. 혹시 해당 사항에서는 어떻게 해야할찌 궁금합니다. *오류 내용 *참고사진1 *order_section.dart *참고 수정코드1 import 'package:flutter/material.dart'; import 'package:flutter_note_app/domain/model/util/note_order.dart'; class OrderSection extends StatelessWidget { final NoteOrder noteOrder; final Function(NoteOrder noteOrder) onOrderChanged; const OrderSection({ super.key, required this.noteOrder, required this.onOrderChanged, }); @override Widget build(BuildContext context) { return Column( children: [ Row( children: [ Radio<NoteOrder>( value: NoteOrder.title(noteOrder.orderType), groupValue: noteOrder, onChanged: (NoteOrder? value) { onOrderChanged(NoteOrder.title(noteOrder.orderType)); }, ), ], ), ], ); } } *note_order.dart *참고 코드2 import 'package:flutter_note_app/domain/model/util/order_type.dart'; sealed class NoteOrder<T> { factory NoteOrder.title(OrderType orderType) = NoteOrderTitle; factory NoteOrder.date(OrderType orderType) = NoteOrderDate; factory NoteOrder.color(OrderType orderType) = NoteOrderColor; } class NoteOrderTitle<T> implements NoteOrder<T> { OrderType orderType; NoteOrderTitle(this.orderType); } class NoteOrderDate<T> implements NoteOrder<T> { OrderType orderType; NoteOrderDate(this.orderType); } class NoteOrderColor<T> implements NoteOrder<T> { OrderType orderType; NoteOrderColor(this.orderType); } *참고 코드3(수정함) import 'package:flutter_note_app/domain/model/util/order_type.dart'; sealed class NoteOrder<T> { OrderType get orderType; factory NoteOrder.title(OrderType orderType) = NoteOrderTitle; factory NoteOrder.date(OrderType orderType) = NoteOrderDate; factory NoteOrder.color(OrderType orderType) = NoteOrderColor; } class NoteOrderTitle<T> implements NoteOrder<T> { @override OrderType orderType; NoteOrderTitle(this.orderType); } class NoteOrderDate<T> implements NoteOrder<T> { @override OrderType orderType; NoteOrderDate(this.orderType); } class NoteOrderColor<T> implements NoteOrder<T> { @override OrderType orderType; NoteOrderColor(this.orderType); } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • ios
  • android
mhlee 댓글 2 좋아요 0 조회수 117

어려움!! 써있어서 긴장했는데

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

하나도 안 어렵고 그전의 Controller 사용하는게 10배는 더 어려웠어요

  • flutter
  • 클론코딩
GemstoneK 댓글 2 좋아요 0 조회수 87

유즈케이스 관련하여 질문 드립니다.

미해결

Flutter 중급 1편 - 클린 아키텍처

강의 정말 잘 듣고 있습니다! 혹시 유즈케이스 같은 경우는 레포지토리의 함수가 10개라고 가정하면 10개 다 만들어주는 편인가요??

  • flutter
  • ios
  • android
김태위 댓글 1 좋아요 0 조회수 113

mockito사용시 오류 해결법

미해결

Flutter 중급 1편 - 클린 아키텍처

mockito 사용시 최신버전 mockito: ^5.4.6으로 사용했을때 freeze와 동일한 오류가 나는 경우 analyzer문제 인것 같은데 mockito 상위버전 사용시 analyzer 높아서 빌드가 불가능한 현상이 있었습니다. clean후 아래 방법을 이용해서 빌드 진행하면 해결됩니다.! dependencies: analyzer: ^6.0.0 dev_dependencies: mockito: ^5.0.6 사용 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • ios
  • android
mhlee 댓글 2 좋아요 1 조회수 139

sealed class 사용 문의2

미해결

Flutter 중급 1편 - 클린 아키텍처

알려주신 sealed class으로 내용 작성 중에 선생님이 의도하신 부분으로 작성을 했는지 문의드립니다. 1.get_notes_use_case.dart 부분 switch case 이중 작성 부분 2.switch case 이중 작성 부분 *참고코드4 처럼 final을 안쓰고 사용가능 여부 note_order.dart *NoteOrder sealed class 구현부 *참고 코드1 import 'package:flutter_note_app/domain/model/util/order_type.dart'; sealed class NoteOrder<T> { factory NoteOrder.title(OrderType orderType) = NoteOrderTitle; factory NoteOrder.date(OrderType orderType) = NoteOrderDate; factory NoteOrder.color(OrderType orderType) = NoteOrderColor; } class NoteOrderTitle<T> implements NoteOrder<T> { OrderType orderType; NoteOrderTitle(this.orderType); } class NoteOrderDate<T> implements NoteOrder<T> { OrderType orderType; NoteOrderDate(this.orderType); } class NoteOrderColor<T> implements NoteOrder<T> { OrderType orderType; NoteOrderColor(this.orderType); } order_type.dart *OrderType 구현부 sealed class 구현부 *참고 코드2 sealed class OrderType<T> { factory OrderType.ascending() = Ascending; factory OrderType.descending() = Descending; } class Ascending<T> implements OrderType<T> { Ascending(); } class Descending<T> implements OrderType<T> { Descending(); } get_notes_use_case.dart *notes use case 구현부 *참고 코드3 import 'package:flutter_note_app/domain/model/note.dart'; import 'package:flutter_note_app/domain/model/util/note_order.dart'; import 'package:flutter_note_app/domain/model/util/order_type.dart'; import 'package:flutter_note_app/domain/repository/note_repository.dart'; class GetNotesUseCase { final NoteRepository repository; GetNotesUseCase(this.repository); Future<List<Note>> call(NoteOrder noteOrder) async { List<Note> notes = await repository.getNotes(); switch (noteOrder) { case NoteOrderTitle(orderType: final orderType): switch (orderType) { case Ascending(): notes.sort((a, b) => a.title.compareTo(b.title)); break; case Descending(): notes.sort((a, b) => -a.title.compareTo(b.title)); break; } break; case NoteOrderDate(orderType: final orderType): switch (orderType) { case Ascending(): notes.sort((a, b) => a.timestamp.compareTo(b.timestamp)); break; case Descending(): notes.sort((a, b) => -a.timestamp.compareTo(b.timestamp)); break; } break; case NoteOrderColor(orderType: final orderType): switch (orderType) { case Ascending(): notes.sort((a, b) => a.color.compareTo(b.color)); break; case Descending(): notes.sort((a, b) => -a.color.compareTo(b.color)); break; } break; } return notes; } } *저번 질문에서 선생님이 알려준 final 안쓰고 사용할수 있는 팁 *참고 코드4 switch (event) { case ChangeColor(): _changeColor(event.color); break; case SaveNote(): _saveNote(event.id, event.title, event.content); break; } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • ios
  • android
mhlee 댓글 2 좋아요 0 조회수 104

다시 정리하여 질문드립니다

미해결

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

질문1) 한 트랜잭션 안에서 최초 getReference() 를 통해 가져온 애는 쭉 프록시 객체 로, find() 를 통해 가져온 애는 쭉 일반 객체 로 영속성 컨텍스트에 남는다고 보면 되나요? (두 경우 모두 별도로 영속성 컨텍스트를 비우는 등의 작업을 하지 않는다고 가정) 질문2) 링크1 의 답변에 의하면 영속성 컨텍스트 안에 프록시 객체를 담는 Map 과 진짜 객체를 담는 1차 캐시 가 있는 것으로 이해했습니다. 그럼 find() ( getReference() )는 아래와 같은 흐름으로 동작하는 게 맞나요? 프록시를 담는 Map 을 먼저 조회 (1차 캐시를 먼저 조회) 있으면 프록시 객체를 가져오고 없으면 1차 캐시에서 조회 (있으면 진짜 객체 가져오고 없으면 프록시 담는 Map 에서 조회) 1차 캐시에 있으면 그대로 가져오고 없으면 DB에서 조회 ( Map 에 있으면 그대로 가져오고 없으면 프록시 객체 생성) 질문3) 링크2 의 답변을 통해 프록시 객체는 영속 대상이 아니라고 말씀해주셨습니다. 그렇다면 em.detach(프록시객체); 는 어떻게 이해하면 되나요? detach() 라는 것이 영속 상태인 것을 준영속 상태로 바꿔주는 것인데 프록시 객체는 애초에 영속 대상이 아니라고 말씀해주셔서 헷갈리네요 전에 올렸던 다른 질문들인데요 AI 답변만 달려서 그런데 한번 확인부탁드립니다 https://inf.run/EcpuQ https://inf.run/75Xi1

  • java
  • jpa
조태준 댓글 2 좋아요 0 조회수 145

앱 재시작 후 회원가입

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요. 정말 도움을 많이 받고 있습니다. 감사합니다. 항상 앱을 재시작하고 같은 아이디(whiteship)로 회원가입을 하시는데 계속 성공하시는 것 같아서 질문드립니다. 혹시 앱을 재시작하면 회원 목록이 초기화되는 코드가 있으신가요? 제가 놓친 것 같지만 부득이하게 질문드립니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
jinw0909 댓글 1 좋아요 0 조회수 128

swich1에서 coupon이 변수 초기화가 안됐다는데

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 뭐가 문제일까요 똑같이 타이핑 한 것 같은데 변수 초기화 오류 뜨네요

  • java
  • 객체지향
안병욱 댓글 2 좋아요 0 조회수 102

mac에서 발생하는 문제

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

"Cannot invoke 'jdk.internal.platform.CgroupInfo.getMountPoint()' because 'anyController' is null" 다음과 같은 에러가 발생합니다. Mac Docker Desktop 환경 OpenJDK 17 slim 이미지 사용 로컬에서 진행했을 때 gpt에게 물어봤을 때와 stackoverflow를 확인해봤습니다. 이 에러는 Java 17 이상에서, JVM이 리눅스 컨테이너(CGroup) 안에서 리소스(CPU, 메모리 등) 정보를 가져오려고 할 때, Mac OS 에서는 리눅스 CGroup 시스템 이 아예 존재하지 않아서 발생 그리고 문제를 해결하기 위한 방법으로 프로메테우스를 비활성화하라는 답변을 주었는데, 해결방안을 적용해봐도 해결할 수 없었습니다. 그래서 생각한게 리눅스 컨테이너 이미지인 slim 버전에 대해서 생각하게 되었고, Dockerfile의 이미를 교체했을 때 FROM eclipse-temurin:17-jdk 정상적으로 실습을 수행할 수 있었습니다. 답변보다는 mac에서 진행할 경우 다음과 같은 문제로 머리아플 분들을 위해 작성했습니다.

  • java
  • spring
  • 에러
  • docker
Anfield 댓글 2 좋아요 1 조회수 388

강의 자료 요청

미해결

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

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

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 252

video_call 에서 아래와 같은 에러가 발생합니다.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

video_call 에서 아래와 같은 에러가 발생합니다. Launching lib/main.dart on sdk gphone64 arm64 in debug mode... Running Gradle task 'assembleDebug'... FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ':agora_uikit'. > Could not create an instance of type com.android.build .api.variant.impl.LibraryVariantBuilderImpl. > Namespace not specified. Specify a namespace in the module's build file: /Users/nana/.pub-cache/hosted/pub.dev/agora_uikit-1.3.10/android/build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace. If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . BUILD FAILED in 845ms Error: Gradle task assembleDebug failed with exit code 1 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> agora_rtc_engine: ^6.3.0 agora_uikit: ^1.3.8 permission_handler: ^11.3.0

  • flutter
  • 클론코딩
댓글 2 좋아요 0 조회수 144

빕문 챕터 9 매서드) 문제와 풀이 2 질문

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] import java.util.Scanner; public class Empty { public static void main(String[] args) { Scanner sc = new Scanner( System.in ); int balance = 0, depositAmount = 0, withdrawAmonut = 0; int chooose; while (true) { title(); chooose = sc.nextInt(); switch (chooose) { case 1: balance = deposit(balance, depositAmount, sc); break; case 2: balance = withdraw(balance, withdrawAmonut, sc); break; case 3: printNowBalance(balance); break; case 4: endSystem(); return; default: System.out.println("올바른 선택이 아닙니다. 다시 선택해주세요."); } } } public static void title() { System.out.println("-----------------------------------"); System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료"); System.out.println("-----------------------------------"); System.out.print("선택: "); } public static int deposit(int balance, int depositAmount, Scanner sc) { System.out.print("입금액을 입력하세요: "); depositAmount = sc.nextInt(); balance += depositAmount; System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance); return balance; } public static int withdraw(int balance, int withdrawAmount, Scanner sc) { System.out.print("출금액을 입력하세요: "); withdrawAmount = sc.nextInt(); if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); System.out.println("최종 잔액: " + balance + "원"); } return balance; } public static void printNowBalance(int balance) { System.out.println("현재 잔액 : " + balance + "원입니다"); } public static void endSystem() { System.out.println("시스템을 종료합니다."); } } 문제풀이 2를 최대한 메서드를 활용하기위해 이런식으로 해보고 김영한선생님 코드와 비교해봤는데 살짝 다르더라고요 비교해서 장담점이 어떤 것인지 실무에서는 어떤 스타일을 선호하는지 궁금합니다!

  • java
  • 객체지향
정의석 댓글 1 좋아요 0 조회수 119

CascadeType.ALL vs orphanRemoval=true

해결됨

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

둘의 차이를 테스트 해본 결과 아래와 같은 결과가 나왔습니다. CascadeType.REMOVE 의 경우는 findParent.getChildList().remove(0) 를 해도 자식이 삭제가 안 되고 orphanRemoval = true 는 삭제가 된다. (대신, CascadeType.PERSIST 가 있어야지만 됨) 여기서 의문인 점이 있습니다. orphanRemoval = true 의 경우 왜 CascadeType.PERSIST 가 있을 때만 그렇게 작동하나요?

  • java
  • jpa
조태준 댓글 1 좋아요 0 조회수 146

인기 태그

인프런 TOP Writers

주간 인기글