묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 배우는 선착순 이벤트 시스템
프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!
프로젝트 처음 진행할때 보면, spring init에서 프로젝트를 만든 후 src파일을 삭제하고 대신 new Module로 api라는 디렉토리를 만들어서 진행하는데요.... 혹시 이렇게 하는 이유가 있나요??? 이런 방식은 처음봐서 질문 드립니다 !
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
블랙박스 테스트 부분에서 (장표 내용 중복)
섹션 10, 화면 설계 / 애플리케이션 테스트 강의 13분 쯤 보여주시는 자료 화면에서결정 테이블 테스트랑 상태 전이 테스트 내용이 동일하게 작성되어있는 것같습니다..! 결정 테이블 테스트 내용이 상태 전이 테스트 내용으로 써져있는 것같은데 맞을까요?
-
미해결김영한의 실전 자바 - 중급 2편
배열의 가장 앞쪽에 요소를 추가할때 의문점
배열의 가장 앞쪽에 요소를 추가할때, 기존의 요소를 전부 한 칸씩 오른쪽으로 옮기고 나서 확보된 빈 공간에 추가해야한다는건 이해했습니다! 그런데 곰곰히 생각해봤는데 그냥 배열자체의 시작 주소값을 한칸 앞으로 당기고 거기다가 새로운 요소를 추가하면 빅오 표기법상 O(1)? O(2)? 가 되는거 아닌가요? 예를들면 int[]의 기존 주소값이 x100이었다면 x96으로 옮기고 새로운 요소를 거기다 추가해주는거죠 주소값 자체를 명시적으로 할당하는 문법이 있는지 없는지는 모르겠지만 어쨋든 내부적으로는 그렇게 작동하도록 언어를 구현할수도 있는거아닌가요?? 그런데 당연히 이렇게는 안되니까 안하는것일텐데, 몇시간동안 생각해봐도 안되는 이유가 안떠올라서 질문드립니다 ㅠㅠ
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
30:00 sizeof 질문
00:30:00 대에서 int myArray[] = {100,22,34,55,70};int size = sizeof(myArray) / sizeof(myArray[0]);왜 size가 5가 되는지 설명부탁드리겠습니다..
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
PDF 파일 관련
섹션 10. 이론 문제 학습하기 강의부터는 전달해 주신 pdf 내용과 수업 내용이 너무 다른데 어떤걸 확인해야 하나요?자료에 없는 내용으로 수업을 하셔서 필기할 부분이 많습니다.. 혹시 수업 하시는 PPT 파일 받아보고 싶은데 어려울까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
4분 완전수
4:00초 완전수 구하는 문제 완전수가 6이랑 28이 있는데 완전수를 외워서 푸는건가요? 아니면 일일히 다 for문을 돌려서 찾으라는건가요?
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
Stream과 디버깅
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의 정말 잘 보고 있습니다. Stream관련하여 질문이 있는데요. Stream 같은 경우에는 파이프라인을 작성하면서 연산마다 body부가 추가될 수도 있고 중간 연산이 계속 체이닝 되는 형태로 구성이 될 수도 있습니다. 이럴 때 어느 연산에서 문제가 생기는지 디버깅을 하는게 참 번거롭다는 생각이 들곤했습니다. 저 같은 경우에는 이럴 때 peek 와 sout을 활용해서 어떻게든 값을 확인하는 식으로 디버깅을 해왔는데 더 좋은 방법이 없을까요? 브레이크 포인트를 잡기도 명령형 프로그래밍 방식보다 어려운 점이 있는 거 같아서요 ㅠㅠ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Comment 최상위 entity에서 parentCommentId를 자기 자신의 id를 두는 이유가 궁금합니다.
안녕하세요!강의 늘 잘 듣고 있습니다, 감사합니다.다름이 아니고, Comment 테이블 관련한 질문인데요.일전에 비슷한 경우를 보았는데, parentCommentId를 null로 둔걸 본 것 같습니다.(용량절약을 위한 목적이였다고 들었습니다)혹시 최상위 자신의 commentId로 parentComentId를 지정한 부분에 대해 궁금해서 글 올리게 되었습니다.감사합니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 참조 관계에서 `mappedBy` 를 생략하면 어떻게 될까요?
안녕하세요. JPA 학습중인 학생입니다.양방향 참조 관계에서 여러 방법으로 연습하던 중, 예상치 못한 행동을 발견해 왜 이렇게 작동하는지 궁금해서 질문드립니다. 연습한 코드입니다.// Team - Member 는 1:N @Entity class Member { @Id @GeneratedValue private Long id; private String name; // 편의상 public @ManyToOne @JoinColumn(name = "TEAM_ID") public Team team; public Member() { } public Member(String name) { this.name = name; } } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; // 편의상 public @OneToMany // 원래는 mappedBy = "team" 으로 owner 를 설정해야 함. @JoinColumn(name = "TEAM_ID") public final List<Member> members = new ArrayList<>(); public Team() { } public Team(String name) { this.name = name; } } 강의에서 배웠듯, 양방향 참조관계에선 mappedBy = ... 로 관계의 주인을 설정해야 합니다.그런데 만약 이를 생략하면 어떻게 작동할까 호기심이 생겨 아래의 코드를 실행시켰습니다. EntityManager em = getEm(); // 편의상 코드 생략 em.getTransaction().begin(); Member member1 = new Member("member1"); Member member2 = new Member("member2"); Team team1 = new Team("team1"); Team team2 = new Team("team2"); // 편의상 코드 생략 // 단순 em.persist( given ) 을 수행합니다. persistAll(member1, member2, team1, team2); em.flush(); // DB 반영 System.out.println("============== AFTER FLUSH =============="); member1.team = team1; // [1] : mem1 의 팀을 t1 으로 설정 team2.members.add(member2); // [2] : mem2 의 팀을 t2 로 설정 em.getTransaction().commit(); // Member - Team 연관관계 변경 내용 commit em.close(); System.out.println("============== END =============="); 제 예상은 실행시 오류가 발생하거나 [1] 내용만 반영되는 것이었습니다.하지만 실행하니 [1], [2] 모두 반영되는 것을 확인하였습니다. DDL & 출력 내용Hibernate: create table Member ( id bigint not null, name varchar(255), TEAM_ID bigint, primary key (id) ) Hibernate: create table Team ( id bigint not null, name varchar(255), primary key (id) ) Hibernate: alter table Member add constraint FKl7wsny760hjy6x19kqnduasbm foreign key (TEAM_ID) references Team ... ============== AFTER FLUSH ============== Hibernate: /* update scripts.entities.Member */ update Member set name=?, TEAM_ID=? where id=? Hibernate: /* create one-to-many row scripts.entities.Team.members */ update Member set TEAM_ID=? where id=? ============== END ==============실행 후 DB 조회 내용입니다. 위 상황에서 왜 member1, member2 의 팀 변경내용이 모두 반영되는지 알고 싶습니다. 이러한 경우 JPA 가 Member, Team 모두를 연관관계의 주인이라 인식하는 건가요?아니면 JPA 가 Member -> Team, Team -> Member 두 참조를 서로 다른 연관관계(?) 라 해석해 동작하는 걸까요?
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[수정 제안] 10. Optional.pdf - p.24 - orElse() 사용 용도
공부하던 중에 이 부분은 이렇게 수정해야 되는 것 아닌가..? 싶어서 글 남겨봅니다.[수정 제안 정보]대상 강의록: 10. Optional.pdf대상 위치: 강의록 p.24의 최상단 부분, 영상의 10분 50초~수정 제안수정 전: 사용 용도orElse(T other)- 값이 이미 존재할 가능성이 높거나, ...수정 후: 사용 용도orElse(T other)- 값이 존재하지 않을 가능성이 높거나, ...수정 제안에 대한 근거orElse(T other)는 other의 생성 비용이 높은 경우에 "값이 이미 존재함에도 불구하고 생성 연산을 수행해야됨"으로 인해서 비효율이 발생합니다.이는 바꿔 말하면 "값이 존재하지 않는 경우에는 생성 연산이 필수적임"이기 때문에 "값이 존재하지 않는 경우에는 비효율이 발생하지 않음"이라고 해석할 수 있을 것 같습니다.이때 강의에서 말하고자 하는 바는 "orElse()는 비효율이 발생할 수도 있다. 하지만 발생하지 않는 경우에는 사용해도 좋다." 라고 이해했는데, 이때 "비효율이 발생하지 않는 경우"를 "값이 존재하지 않는 경우(생성 연산이 꼭 필요한 경우)"라는 표현으로 대체할 수 있기 때문에"값이 존재하지 않을 가능성이 높은 경우(= 비효율이 발생하지 않는 경우)에는 orElse()를 사용해도 괜찮다."라고 수정해야 하는 것이 아닌가 싶어서 제안합니다.
-
해결됨실전 jOOQ! Type Safe SQL with Java
Routines 관련 질문
안녕하세요!이번에 jooq를 도입하게 되어 강의를 보며 천천히 따라해보고 있습니다.현재 Flyway + DDLDatabase(testcontainers 사용안함) 방식으로 dsl을 생성하는 것을 테스트하고 있는데요..flyway migration 파일(.sql)에 프로시저와 함수 생성문을 넣고 코드 생성을 실행 하니 상용 버전을 이용하라고 메시지가 나오며 실행이 안되길래 공식 문서를 확인해보니 오픈소스 에디션에서는 지원을 하지 않는다고 되어있더군요 ㅠㅠ 섹션2 - 생성된 DSL 구조 살펴보기 강의에서는 DB 스캔 방식이지만 Routines 클래스가 잘 생성되는 것을 볼 수 있는데 혹 강사님께서는 시 상용 버전을 사용하신 걸까요?? 아니면 DB 스캔 방식은 상용 버전 상관없이 Routines 클래스가 생성이 되는 걸까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
제 코드의 어떤 부분이 틀린지 모르겠습니다. (GPT도 오답인 케이스를 못찾아요..)
package section_2; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class GetRank { public static ArrayList<Integer> solution(int[] scores) { ArrayList<Integer> list = new ArrayList<>(); Integer[] sortedScores = new Integer[scores.length]; Arrays.setAll(sortedScores, i -> scores[i]); Arrays.sort(sortedScores, Comparator.reverseOrder()); System.out.println(Arrays.toString(scores)); System.out.println(Arrays.toString(sortedScores)); for (int score : scores) { for (int j = 0; j < scores.length; j++) { if (score == sortedScores[j]) { list.add(j + 1); break; } } } return list; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] scores = new int[n]; for (int i = 0; i < n; i++) { scores[i] = sc.nextInt(); } for (Integer i : solution(scores)) { System.out.print(i + " "); } } }
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
SQL기출문제(+DML변형문제)
SQL기출문제(+DML변형문제)20:39질문이요..답이 최소 점수가 91 이어야 하는거 아닌가요? HAVING AVG(점수) >=90이 뜻이 90보다 크거나 같은 거 아닌가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
33:56
Null을 세지않으면 col1이 null도 세지 않아서 count가 3이 되는거 아닌가요?질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야어떤 강좌에서 질문하셨는지 알 수 있습니다.영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
-
해결됨[말 한마디로 뚝딱!] AI와 함께 나만의 수익화 웹사이트를 만드는 법
DB다운로드에 대하여 문의드립니다.
안녕하세요 오늘 처음으로 강의를 신청하여 잘 보고있습니다.강의 내용중 DB다운로드에서 mysql다운로드에서 9.1이 아닌 9.2다운로드가 있는데9.2를 다운받고 하는 과정에 다른 부분이 있어서 혹시 9.2다운시 어떻게 해야하는지 알수있을까요?ㅠㅠ
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
[오타 제보] 10. Optional.pdf - p.11
[오타 정보]대상 강의록: 10. Optional.pdf대상 위치: 강의록 p.11의 2. ifPresentOrElse() 코드 부분, 영상의 5분 ~오타 내용수정 전public class OptionalProcessingMain { ... System.out.println("=== 2. ifPresentOfElse() ==="); // Of라고 오타 ...수정 후public class OptionalProcessingMain { ... System.out.println("=== 2. ifPresentOrElse() ==="); // 'Of' -> 'Or' 수정 ...
-
미해결실습으로 배우는 선착순 이벤트 시스템
Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...
위 도표를 보여주시면서 설명을 해주실때,10시 정각에 스레드 1이 쿠폰 발급 로직을 시작10시 2분에 완료가 된다면,스레드 2는 스레드 1의 작업이 모두 종료될때까지 기다렸다림.스레드 2는 10시 2분에 작업을 시작 이렇게 설명해주셨는데, 이게 잘 이해가 안됩니다... 제 생각에는 아래와 같이 10시에 동시에 처리되는 흐름이 되어야 할 것 같은데요... 즉, 스레드2는 쿠폰 생성 로직이 끝날 때까지 기다리지 않고,스레드 1이 쿠폰 발급 로직을 수행 중이라도 스레드 2는 곧바로 Redis 값을 받고 독립적으로 로직을 수행할 수 있을 것 같은데 아닌가요?? 레디스 자체는 싱슬스레드이니 레디스를 찌를때는 무조건 하나씩만 들어가겠지만 스레드 1은 레디스에 찌르고 값을 받아온 후 본인의 비즈니스 로직 수행할때 스레드2가 레디스 서버에 찌를 수는 없는건가요? 제가 이렇게 이해한 부분이 잘못된 것인지, 아니면 제가 강의 설명을 오해한 것인지 혼란스러워 질문을 드리게 되었습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
5분 13초
코드 문제에 대한 질문은 아니고 큰 따옴표와 작은 따옴표에 대한 질문입니다. 예를 들어 my_dict = {'name': 'WeekendCode''age': 30;} print(my_dict) 출력값: {"name": "WeekendCode", "age": "30"} 이렇게 해도 괜찮은가요? 큰 따옴표와 작은 따옴표를 구별해서 외워야하는지 아니면 똑같이 동작하는지 궁금합니다. 만약 구별해야된다면 어떤 기준일때 작은 따옴표를 사용하고 어떤 기준일때 큰 따옴표를 사용하는지 궁금합니다. 코드에서 변수명을 작성할때는 큰 따옴표인데 이것의 출력값은 또 작은 따옴표라서 좀 헷갈리네요.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
이론 PDF에 없는 내용 암기에 관한 질문
제공해주신 이론 정리 PDF에는 없는 내용을 문서로 정리해주셨는데 문서로 정리되어있는 것도 암기해야 하는 건가요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
24년 2회 기출문제 (1:02:00) 질문있습니다.
해당 문제에 따르면 strcopy 함수 내의 while문 내부에서 i++이 이루어지는 것으로 보이는데,while문에서 탈출될 때, str2는 firsttring 이 되고 i는 4인 상태로 추가 증가가 없다면d[i] = '\0' // 이때 i가 4이기에strcopy함수를 완료했을 때 str2가 first'\0'ring이 아닌 firs'\0'tring 이 되어야 할 것 같은데, 제가 잘못 이해했을까요 ??