묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
6. 장난꾸러기
선생님, 선생님이 짜주신 코드로 풀었는데, 오답이 나왔는데, 만약에 같은 키가 많은 친구들중에 하나가 철수고, 바꿔준 짝꿍도 동일한 키의 사람들이 있다면 누가 철수인지, 짝꿍인지 어떻게 구분하나요??import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; class problem06 { // 06. 장난꾸러기 //선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학생부터 일렬로 키순으로 세웠습니다. //제일 앞에 가장 작은 학생부터 반 번호를 1번부터 N번까지 부여합니다. 철수는 짝꿍보다 키가 큽니다. //그런데 철수가 앞 번호를 받고 싶어 짝꿍과 자리를 바꿨습니다. //9 //120 125 152 130 135 135 143 127 160 public ArrayList<Integer> solution(int n, int[] arr){ ArrayList<Integer> answer = new ArrayList<>(); int[] tmp = arr.clone(); // 깊은 복사해야 기존의 arr이 변하지 않음. Arrays.sort(tmp); // 오름차순 정렬 //다른애들만 그 순서를 ArrayList에 넣어준다. for(int i=0; i<n-1;i++){ if(arr[i] != tmp[i]) answer.add(i+1); } return answer; } public static void main(String[] args){ problem06 T = new problem06(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); // 캐시의 크기 int[] arr = new int[n]; for(int i=0; i<n;i++){ arr[i] = kb.nextInt(); } for(int x : T.solution(n, arr)){ System.out.print(x+" "); } } }
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
yield() 호출
안녕하세요 좋은 강의 감사합니다. package thread.control.printer; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.ConcurrentLinkedQueue; import static util.MyLogger.log; public class MyPrinterV4 { public static void main(String[] args) { Printer printer = new Printer(); Thread printerThread = new Thread(printer, "printer"); printerThread.start(); Scanner userInput = new Scanner(System.in); while (true) { log("프린트할 문서를 입력하세요. 종료 (q): "); String input = userInput.nextLine(); if (input.equals("q")) { printerThread.interrupt(); break; } printer.addJob(input); } } static class Printer implements Runnable { Queue<String> jobQueue = new ConcurrentLinkedQueue<>(); @Override public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { Thread.yield(); // 추가 continue; } try { String job = jobQueue.poll(); log("출력 시작 : " + job + ", 대기 문서: " + jobQueue); Thread.sleep(3000); log("출력 완료"); } catch (InterruptedException e) { log("인터럽트!"); break; } } log("프린트 종료"); } public void addJob(String input) { jobQueue.offer(input); } } }위의 코드에서요 yield() 의 의미와 취지는 알겠으나, 수업에서 말씀주셨던 위의 코드에서는 결국 printerThread 쓰레드 1개잖아요? (다른 쓰레드는 main) 그래서 yield() 를 넣더라도 다른 쓰레드에 양보할 쓰레드가 없는 것 아닌가요? (코어 갯수랑 별개로요) 감사합니다.
-
미해결실전! Querydsl
OpenFeign/QueryDSL 관련 정보 공유
Spring Data 조직에서도 OpenFeign/QueryDSL를 공식적으로 지원(Support)한다고 합니다. 현재 공식QueryDSL 최신 버전인 5.1.0에서 아래와 같은 문제가 있습니다.CVE-2024–49203 이슈(CVSS 3.1기준 9.8 높은 심각도)Kotlin KSP 지원관련기타 문제(Issues)등등 공식 QueryDSL에서는 유지보수가 전혀 안되고 있기 때문에 혹시나 궁금하신 분들을 위해 정보 공유 드립니다.1번, 2번관련 내용은 OpenFeign/QueryDSL 에서 모두 패치완료된 내용입니다.KSP - 6.9버전 이상, CVE-2024–49203 6.10.1버전 이상 Spring 공식 홈페이지 OpenFeign/QueryDSL 관련 내용https://docs.spring.io/spring-data/jpa/reference/repositories/core-extensions.html Spring Git OpenFeign/QueryDSL 관련 내용https://github.com/spring-projects/spring-data-jpa/pull/3859 OpenFeign/QueryDSLhttps://github.com/OpenFeign/querydsl
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
이 질문이 왜 없는지 이해가 안 되지만 문제 인식 및 해결 방법 남깁니다.
getStats() 안에 쿼리 작성할 때, book에서 id와 name은 불러와지는데, type이 불러지지 않습니다. QBook 클래스에서 확인해보니 final type만 없더군요. 찾아보니 이유는 이러합니다. "Kotlin에서 type은 리플렉션/메타프로그래밍에서 자주 사용되는 예약 필드명이고, QueryDSL이 Q 클래스 생성 시 내부적으로 getType()을 쓰기 때문에 필드명 충돌이 발생했을 가능성이 높아 생성되지 않을 수 있습니다. 이러한 경우 ./gradlew clean kaptKotlin 명령어로 재빌드 한 후 Q 클래스를 다시 생성하거나 type 명칭을 bookType으로 수정하여 해결할 수 있습니다."저는 ./gradlew clean kaptKotlin로 재빌드하니 해결됐습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Missing constructor for type 'OrderQueryDto'
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.실행시 다음과 같은 오류가 발생하는데 ... 정확히 왜 오류가 나는지 이해가 되지 않습니다. ㅠ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
키워드 검색 페이징에 대한 Redis 캐시
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요! 강의 잘 들었습니다! 궁금한 점이 있어서 문의 드립니다.강의에서는 상위 1000건에 대해서 articleId를 기준으로 Redis 캐시를 해두었는데 혹시 키워드(제목, 작성자, 내용등)에 대한 검색 페이징 처리도 캐시가 가능한걸까요? 제가 생각했을 때는 아래와 같은 방법으로 처리가 가능할 것 같은데 보통 대용량 트래픽 환경에서 해당 케이스를 어떻게 처리하는지 궁금합니다!키워드 검색이 있을 경우 RDB에서 직접 조회키워드 검색 조건 별로 Redis 캐시Elasticsearch 도입 후 동기화하여 키워드 검색시 Elasticsearch에서 조회
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
노션에 오타가 있는 거 같아요
[4주차] 꼬임을 막는 트랜잭션과 락 전략02.트랜잭션가 ACID7) 초기 DDL & DML 설정1000건인 거 같은데 50만이라고 적혀있어요
-
해결됨실전! 스프링 데이터 JPA
단건 update 질문
안녕하세요.단건 update관련 질문이 있습니다.update +연산update Member m set m.stock = m.stock + 1 where m.id = :id 이런식으로 해야하는 연산은 어떻게 처리하나요?벌크작업은 아니지만 개수를 증가시킬 때 할당으로 쓰면 덮어씌워질 수 있느니 + 1 로 처리하는 경우도 있는 것으로 아는데, 이런 경우는 영속성 컨텍스트에 반영이 안되는걸로 알고 있습니다.객체를 기반으로 업데이트 하는 경우 m.stock = n으로 할당이 되어서 이런 경우는 객체지향관점에서 어떻게 처리하고 설계하시는지 궁금합니다.업데이트 전 조회업데이트 전에 findOne 조회를 하시던데, 전 업데이트할 때 요청받은값만 덮어쓰면 되고 그게 더 안전할때도 있다고 생각이 듭니다.이런 경우에는 어떻게 처리하시는지 궁금합니다. 또한, 객체를 기반으로 업데이트하기에는 요청받은 데이터가 객체랑 필드가 정확히 매핑될것 같지 않아서 결국 update문 하나만 요청하는 방식으로 처리해야 할 것 같은데 어떻게 처리하시는지 궁금합니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 21:06의 코드
강의 21:06에서 작성하신대로 LAZY로 설정한 객체에 접근하면 프록시 객체가 초기화되면서 필요한 때에 DB에 쿼리를 날린다고 하셨는데요. 반복문 횟수만큼 order.getMember().getName()을 사용하니 여기서 N+1 문제가 발생하는건가요? (LAZY 로딩의 객체를 초기화할 때는 테이블 전체를 가져오는 게 아니라 객체 하나만 로딩해오는거죠?) 감사합니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
14번쨰 부분 중 질문드립니다..<ai답변으로 해도 안되요>
에러: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.example.feign.NaverClientIntegrationTest': Unsatisfied dependency expressed through field 'naverClient': Error creating bean with name 'com.example.feign.NaverClient': FactoryBean threw exception on object creation NaverClientIntegrationTest파일 작동시 위와 같은 에러가 납니다. NaverClientInt 파일에서 컨피규레이션을 넣어도 위와 같은 에러가 나옵니다.제가 강의 자료 와 비교해도 NaverErrorDecoder(강의자료와 다름. 아직 진도 안나감)를 제외하고 나머지 다 똑같거든요.근데 에러가 나는 이유를 몰라서 질문올립니다. <jaytech108@gmail.com>이쪽으로 파일 보냈습니다.
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
배열과 포인터 증가 문제
63강 c언어 기출문제 변형해서 배열과 포인트 증가 문제에서++* ptr은 arr 인덱스 0 위치에 있는 숫자를 증가시키고 위치는 변하지 않는다* ptr ++는 포인트 변수 ptr이 가지고 있는 값을 증가시키지 않고 arr 인덱스 1 위치로 이동한다 이렇게 이해하는게 맞나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
기본 키 매핑
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요!기본 키 매핑 같은 경우는 다 외우는게 좋은건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@JoinColumn 질문드립니다
연관관계 관련 강의를 봐도 이해가 잘 안되는 부분이 있어서 질문드립니다. 본 강의에서는@OneToMany@JoinColumn(name = "MEMBER_ID") private List<AddressEntity> addressHistory; 이렇게 되어있는데요. 여기서 연관관계의 JoinColumn에 의해 외래키 컬럼이 생성되는것으로 알고있는데, 일대다 단방향 연관관계와 다대일 단방향 연관관계에서 각각 어느 테이블에 외래키 컬럼이 생성되는것인가요?일대다 연관관계에서는 어느테이블에 생성되고, 다대일 연관관계에서는 어느테이블에 생성되는지가 규칙이 있는것일까요?위 해당 테이블에 외래키컬럼이 생긴다고 할때, 그럼 외래키 컬럼의 값은 어떤 방법으로 값이 할당되어 테이블에 저장되는것인가요?그리고 왜 @Joincolumn에 name속성으로 MEMBER_ID로 지정해주어야하는것인가요?
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
영상을 볼때 필기나 ide를 이용해서 코드를 직접 쳐서 돌려봐야 될까요?
아니면 그냥 영상만 보면서 공부할수있을까요?
-
해결됨김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
메서드 참조 4가지 유형(정적, 임의 객체) 구분 할수 있는 방법에 대해서,
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 드립니다.메서드 참조의 4가지 유형중정적메서드 참조, 임의 객체의 인스턴스 메서드 참조의 표현 방식을 보시면"클래스명::메서드명" 똑같이 적힌 것 을 알수 있었습니다. 그래서 함께 쓰면 어떻게 될까 해보니 써지더라고요.여기서 질문이 생깁니다.이렇게 임의 객체, 및 정적 메서드를 같이 쓸 경우 구분법이 따로 있냐요?(아니면 변수 이름을 잘 지정해야 하는지?)Ide의 도움으로 메서드 이름을 클릭으로 구분은 가능한데,다른 방법이 없는지 궁금합니다.답변 부탁 드립니다.수정1 : 사진 수정(다른 것들도 되는지 확인하기 위해서)
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
공부 순서를 어떻게 해야할까요?
공부 순서를 어떻게 해야할까요?보통 교재는 이론이 앞부분이고 프로그래밍이 뒷부분인데 시험 공부는 프로그래밍이랑 병행해라뭐 이런말을 들었는데, 공부 순서? 커리큘럼을 어떤식으로 가져가야할지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring에서 maven을 사용하여 강의를 수강하는 것과...
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]지난 주 입사한 신입개발자입니다. 저는 STS에서 spring, maven으로 공부를 했었고, 현재 다니는 회사에서도 egovframework를 사용합니다. 현재 수업은 Spring Boot에서 gradle을 활용하는데, Spring에서 maven을 활용해서 수업을 진행해도 문제가 없는지 궁금합니다.(부트사용 X) 불가능 하다면 intelliJ에서 gradle을 활용해서 공부를 해도 현업에서 eclipse, spring, maven에서도 충분히 활용가능하게끔 강의가 구성되어있는지도 궁금합니다! 감사합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Error creating bean with name 'initDb': Invocation of init method failed
강의 보면서 작성한 코드에서 오류여서 , 수업자료 복사해서 실행해봤는데 동일하게 오류네요.어떤 부분에서 오류인지 알기 어려워 문의 드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
IntelliJ에서 devtools로 자동 재시작이 안 되네요
dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' developmentOnly 'org.springframework.boot:spring-boot-devtools' }의존성에 맨 아랫줄 코드를 추가하고, Build project automatically 이 부분도 체크하고,Advanced Settings의 자동 시작 이 부분도 체크했는데 컨트롤러 파일 수정 후 저장을 해도브라우저엔 변경 사항이 적용이 안 됩니다.검색을 해서 application.properties 파일에 spring.thymeleaf.cache=false 이 코드를 추가도 해보고, 또 Settings > Build, Execution, Deployment > Compiler > Resource patterns에!?*.html를 추가해 봐도 안 되네요..참고로 제 프로젝트에선 Run/Debug Configurations 창에서 Modify options에 Spring Boot 항목이 없는데 이건 왜 그런 걸까요, 여기서 On 'Update' action에서 또 뭘 선택하라는 블로그들도 보긴 했는데 이 부분은 제 프로젝트에선 아예 없네요. Spring Boot 항목없이 바로Operating System부터 나옵니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
콘솔창 오류 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]H2 database 상에는 테이블이 잘 만들어졌고 오류도 안뜨는데 콘솔창에 create table~ 이 문장들이 출력되지가 않습니다.상관없는 것인지 아니면 뭐가 문제일까요 ?