묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 중급 1편
열거형 문제풀이 2번 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 열거형 문제풀이2를 복습하는 도중에,문제풀이2 설명 에서 "참고 : HTTP 상태 코드는 200 ~ 299사이의 숫자를 성공으로 인정한다.(pdf-30page)" 라는 말이 있어서,스캐너로 205번을 쳤는데, "true"라는것이 안나와서 강사님 코드에서,1.메서를 하나추가,2.기존 메서드 내용을 좀 변경하였는데 이런 식으로 해도 되는지 알고 싶어서 코드를 올립니다.메인은 여러번 입력하기 위해서 while문 추가,HttpStatus 이넘 클래스는 isInputSuccess()라는 메서드 추가,및 findByCode에 if문에 or을 추가해서(마우스 블락진데) 200~299번 되게 만듬.이렇게 하였는데 괜찮으지요?추가예전에 문제풀이 할때는 안했더라고요.+ 오류나서, 밑에걸로 바꿈..추가2글을 다시 읽어 보니까 개소리(내가 요구사항을 잘못 이해 했구냐.. 라는 생각이 어제밤에 들던데..)인것 같은데. 글을 지우는 것은.. 아닌것 같아서.. 이렇게 남겨 놓습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa repository에서 JPQL 엔티티 리턴 관련 질문
내가 댓글 단 게시글을 조회할 때, @JPQL을 이용해서 다음과 같이 댓글 Repository에서 JPQL 사용해서 PostEntity를 반환하고 있는데, 이 방식이 혹시 문제가 있을까요? @Repository public interface CommentRepository extends JpaRepository<CommentEntity,Long> { @Query("SELECT DISTINCT c.post FROM CommentEntity c WHERE c.user.userId = :userId") Page<PostEntity> findPostByUserComment(@Param("userId") String userId, Pageable pageable); }질문은 다음 3가지 입니다.1. CommentRepository에서는 CommentEntity로만 반환하고 CommentEntity.getPost()를 통해 게시글을 가져오는 게 맞을까요? 아니면 위 코드대로 진행해도 괜찮을까요? 실무에서 선호하는 방식이 궁금합니다. 내가 댓글 단 게시글을 조회하는거니까, CommentRepository에서 메소드를 만드는 게 맞다 생각했는데 혹시 PostRepository에서 메소드를 구현하는게 더 좋을까요?만약 위 코드처럼 한다면, 다대일이기 때문에 fetch join을 추가해서 pageable 같이 써도 문제 없는게 맞을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
오타 제보
'업캐스팅은 this를 무시합니다.'에서출력값 오타 있습니다. 코드는 XY를 예시로 드는데 출력값은 PC로 나옵니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
String.valueOf(CNT)
3:03초보면 앞뒤 문자가 다르면 answer에 해당 i값을 추가하고 나서 cnt를 1로 초기화하는데 왜 소스코드에는 cnt>1이상인 경우를 추가해서 ans+=String.valueOf(cnt)를 해주는 건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
소수 판별기 질문이요!
C언어 기출변형 문제 9분대 소수판별기 질문드립니다.출력값 첫번째에 2가 들어가던데 함수에 2를 집어 넣으면 num=2, i=2 가 돼서 2<2는 성립하지 못하기 때문에 2는 답이 못되지 않나요?그리구 출려값에 소수들끼리 띄어쓰셨는데 왜 띄어쓰는지 모르겠습니다ㅜㅜ
-
미해결실전! 스프링 데이터 JPA
DB,검증코드 에서는 member가 다른팀을 가지고있으나 soutv에서 같은팀을 가지고있다고 하는문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.member = Member(id=1, username=member1, age=10)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=1, username=member1, age=10), Member(id=2, username=member2, age=20)]member = Member(id=2, username=member2, age=20)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=1, username=member1, age=10), Member(id=2, username=member2, age=20)]member = Member(id=3, username=member3, age=30)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=3, username=member3, age=30), Member(id=4, username=member4, age=40)]member = Member(id=4, username=member4, age=40)member.getTeam() = Team(id=1, name=teamA)memberList = [Member(id=3, username=member3, age=30), Member(id=4, username=member4, age=40)]이부분이 soutv 프린트결과입니다.이부분부터 테스트코드인데요 여기서분명히 팀을 다르게넣어주었고 실제로 db에도 적용되어있습니다.@Test @DisplayName("entity test") void entityTest() { Team team = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(team); em.persist(teamB); Member member = new Member("member1",10,team); Member member1 = new Member("member2",20,team); Member member2 = new Member("member3",30,teamB); Member member3 = new Member("member4",40,teamB); em.persist(member); em.persist(member1); em.persist(member2); em.persist(member3); List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList(); for (Member memberList : members) { System.out.println("member = " + memberList); System.out.println("member.getTeam() = " + member.getTeam()); System.out.println("memberList = " + memberList.getTeam().getMembers()); } Assertions.assertThat(member.getTeam()).isEqualTo(team); Assertions.assertThat(member1.getTeam()).isEqualTo(team); Assertions.assertThat(member2.getTeam()).isEqualTo(teamB); Assertions.assertThat(member3.getTeam()).isEqualTo(teamB); } 어떤게 문제인지모르겠어서 질문남깁니다!entity code 도 남기겠습니다.package study.datajpa.entity; import jakarta.persistence.*; import lombok.*; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id","username","age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(String username) { this.username = username; } public void memberTeamSetting(Team team) { if (this.team != null) { this.team.getMembers().remove(this); } this.team = team; team.getMembers().add(this); } public Member(String username, int age, Team team) { this.username = username; this.age = age; if(team != null) { memberTeamSetting(team); } } } package study.datajpa.entity; import jakarta.persistence.*; import lombok.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id","name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); public Team(String name) { this.name = name; } }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
평소에 궁금했던 sql 문의드립니다
예시 문제학생 테이블에서 성적이 80점 이상인 학생의 이름을 뽑아라.평소 쿼리를 짤때 보면 Select 이름 from 학생Where 성적 >=80;이렇게 해왔는데, 가끔 기출이나 이런걸 보면 답지에Select 이름 from 학생Having 성적 >=80;이런식으로 having 절을 유독 사용하는데,, 답은 똑같으나 꼭 having을 사용해야하는건지 헷갈립니다.선생님 강의가 여지껏 들은 강의중 최고에요.. 딴말 필요없이 필요한거만 긁어주시네요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
메모리스페셜(배열과 포인터) 질문있습니다.
이 문장이 이해가 안갑니다 ㅠㅠ arr배열이 가리키는 주소가 가지고 있는 값은 12면서 + 1을 하기 때문에 13이 나오는 것은 알겠는데 **를 2개쓰는 이유를 모르겠어요 포인터 변수도 메모리 주소(a - 자기가 위치한 곳)를 가지고 있고, 가지고 있는 값(b - 내가 가리키고 있는 주소)가 있습니다.여기서 arr은 a-자기가 위치한 곳을 가리킵니다. 그것의 값을 arr 가져오라고 하니 b-내가 가리키고 있는 주소를 가지고 오게 되고, 거기에 다시 *을 씌우니 12를 가지고 오게 됩니다. 거기에 1을 더하면 13이 되죠.그래서 최종값은 24 + 13인 37이 됩니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
그럼 업캐스팅과 일반 상속의 차이점은 무엇인가요?
앞에 태그명? 다른 것 빼고는 차이점을 못느끼겠어서요모든 문제를 업캐스팅이라고 가정하고 풀어도 가능한건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
자바 실기 기출 변형 문제
영상 중 이 문제에서 처음에 부모 생성자를 호출하는데기본 생성자가 아닌 this(10) 의 값을 넣어 Par(int x) 호출을 해서 처음에 Par(int): 10, 그다음에 다시 원 생성자로 넘어와서 Par()를 프린트하는데, 기본 생성자가 아닌 아래 숫자넣은 int x를 받은 생성자를 먼저 돌리는 이유가 무엇인가요?저는 생성자를 따라서 처음에 Par()가 프린트 되는줄 알았습니다. 왜 그 아래 int값을 받는 생성자도 호출이 되는건가요? 조금 어렵네요 풀면 풀수록 더 어려우ㅓ 집니다 ㅜㅠ
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
소수판별기 질문드립니다
만약 num이 4일 때 i가 3이라면 나머지가 1이 나올 수 있어return이 1이 돼야 하는 거 아닌가요...?한 개의 경우라도 0이라면 if문이 통과돼버리나요?개별의 i에서 실행하는 것인지 전체의 i에서 실행하는 것인지 헷갈립니다
-
미해결김영한의 실전 자바 - 중급 2편
add 부분 코드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 코드는 LinkedList<Integer> bucket = new LinkedList - > buket = bukets[hashIndex] 이렇게 이어지는 코드인건가요 ..? bukets이라는 linkedlist의 배열을 만들고 bukets 1 bukets 2 하나 하나에 linkedlist를 넣는 과정인건 알겠는데 저 buket은 어떻게 나온 코드인지 모르겠어요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build.gradle 관련 오류[Unable to load class 'org.gradle.api.plugins.MavenPlugin'.]
현재 제 프로젝트 설정은 아래 3장 사진과 같습니다.도대체 무슨 이유 때문에 build.gradle에서 자꾸 에러가 발생하는 걸까요?spirng application은 정상 실행되는 상황입니다. build.gradle에서만 저런 오류가 나옵니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
continue;를 쓰는 조건문 for과 while의 차이를 알고싶습니다.(같은 방식인데 for이 출력이 안되는 이유)
반복문 안에 if문 continue를 걸어서 홀수만 출력 되도록 코드를 연습했습니다.. while문은 출력이 되었는데, for문은 같은 방식으로 하면 안되는 이유가 뭘까요..?Run창에서 따로 오류가 뜨진 않지만, 아무것도 출력이 되지 않습니다... package loop; public class LoopEx { public static void main(String[] args) { // while문 정상 출력 int i = 0; while(i<=10) { if ((i % 2) == 0) { i++; continue; } System.out.println("while = " + i); i++; } // for문 출력되지 않음 for(int j = 0; j < 10; j++) { if((j % 2)==0) { j++; continue; } System.out.println("for = " + j); } } }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
변수와 연산자 질문입니다.
3:17초 부분 입니다.print("a%%b = %d\n", remainder_result);영상에 나온 위 코드에 a를 b로 나눈 나머지를 구하는데 %%를 사용하는 이유가 무엇인가요?아 영상에서 설명을 해주셨군요. 해결됐습니다.문자로 출력하기 위함이군요.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
C언어 기출문제의 변형 37분 질문드려요
이와 같은 아스키 코드와 덧셈 문제가 출제 되면 딱 보면 이문제는 아스키 코드 뎃셈 문제 이다 알수 있는 것이 있을까요 ??
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 스레드관련 질문이 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.예전부터 궁금하던건데 고급강의에서 스레드를 다뤄주셔서 너무 감사드립니다.궁금했던 질문1.war,jar 파일이 tomcat 에서 구동되면 강의에서 설명해준것처럼 tomcat 프로그램을 프로세스가 작동할텐데 동시에 3개의 요청이 tomcat 으로 들어오게 된다면 tomcat 을 돌리고 있는 프로세스는 총 3개의 스레드를 스레드풀에서 가져와서 각 각 요청에 1개씩 스레드를 할당하여 was 가 멀티스레드 처럼 작동되게 되는건가요?2.tomcat 으로 war,jar 파일을 배포하고 운영하면 tomcat 의 스레드가 war,jar 의 소스를 1줄씩 읽는거고 war,jar(자바) 에서는 스레드가 따로 생성되지 않는건가요? (자바에서 멀티스레드 사용하지 않은경우)3.2번이 맞다고 했을때 만약 자바소스에서 멀티스레드를(총3개 스레드사용) 사용했다면 tomcat 의 스레드는 1개일텐데 어떻게 멀티스레드가 되는건가요..? 자바에서 스레드를 2개 더 생성시켜버리는건가요? 궁금합니다 ㅠ4.그리고 자바에서 스레드 숫자를 설정해버리면(4개로 설정) tomcat 에서 4명의 사용자 요청만 동시에 처리할 수 가 있다고 하셨는데자바에서 스레드 숫자를 설정하는순간 톰캣의 스레드풀에서 4개의 스레드만 사용가능해지는건가요..?
-
미해결김영한의 실전 자바 - 중급 1편
Class 클래스 질문입니다!
[질문 내용]강의 내용과 똑같이 코드를 작성했는데 다음과 같은 에러가 발생합니다. 원인을 도저히 찾지 못해서 질문을 남깁니다!!추가로다음 코드를 추가하면 해결이 되는데 이렇게 해결이 되어도 괜찮은 부분일지 궁금합니다..
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
예제6번에관하여 질문합니다
예제 6번에서 출력값이 출력 : g^= 5의 결과 : 9라고 적어놓으셧는데 예제 5번을 보면 %는 %를 출력하려면 두번쓰라고 하셧는데 ^=연산자는 한번만써도 출력이되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컨트롤러에서 호출하는 서비스 질문드립니다.(+더티체킹)
안녕하세요 항상 양질의 강의 해주셔서 먼저 감사드립니다. 현재 코드 작성 중에 어떤게 더 나은 방법인지 궁금해서 문의드립니다.카드 충전하는 서비스가 있다고 가정하면 컨트롤러를 통해 카드 충전 서비스를 호출할 예정입니다.class Controller { private final ChargeService chargeService; void charge() { chargeService.charge(); } }위와 같이 충전 진행 시, 내부에서는 카드를 찾고 외부 API를 통해 충전을 진행 후 더티체킹을 통해 카드 상태를 업데이트 할 예정입니다.class ChargeService { private final CardFindService cardFindService; private final ChargeHistoryService chargeHistoryService; void charge() { var card = cardFindService.findCard(); cardApiService.charge(); // 외부 API 호출 chargeHistoryService.save(); // 충전 내역 저장 card.updateStatus(); // 카드 상태 변경 } }여기서 궁금한게 충전을 진행하는 ChargeService 내에서 더티체킹을 통해 카드의 상태를 업데이트 하는게 좋을지, 아니면 컨트롤러단에서 ChargeService와 CardUpdateService를 각각 호출해주는게 좋을까요?class Controller { private final ChargeService chargeService; private final CardUpdateService cardUpdateService; void charge() { chargeService.charge(); cardUpdateService.updateCardStatus(); } }OSIV를 꺼둔 상태에서 진행 시 chargeService 내 하나의 트랜잭션 내에서 충전 내역과 카드 상태까지 업데이트를 하는게 편리해 보이긴 하지만, chargeService 내에서 카드의 상태를 업데이트하는 역할까지 주어지는 것 같아 고민이 됩니다. 만약 서비스 2개를 각각 호출하게 되면 cardFind도 각 서비스 내에서 1회 씩 총 2번 호출되는 점도 마음에 걸립니다.이와 같은 상황에서는 어떤 방식이 실무에 더 적합하고 좋을지 의견 부탁드리겠습니다.감사합니다.