묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 페이징시 게시글 수
안녕하세요!BoardArticleCount 데이터를 추가로 관리하면서 게시글 수 조회 성능이 개선돼 PageLimitCalculator를 통한 최적화 방식을 더 이상 사용하지 않아도 될 것같은데 혹시 맞을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
잘 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자바와 SQL문법도 어느정도 해뵈서 다행히도 영한님이 강의할 때 자바의 문법으로 이해가 됩니다.하지만 스프링에 관한 것들(MVC, 이노테이션, 내장 서버, 스프링이 뭔지 등등) 이것들이 이해가 잘 안 갑니다. 그냥 이런게 있구나만 알아두고 뒤의 강의에서 다 이해하고 넘어갈 수 있을까요??지금은 따라치기만 하면 될까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private String id;강의에서는 위와 같이 타입을 String으로 하셔서 신기하다 하고 따라했는데 오류가 뜨더라고요 (애초에 테이블 자체가 안만들어짐, 쿼리는 날라감)그래서 그냥 원래 하던대로 Long으로 했는데 잘 되는 거보니, 강의가 옛날 버전이기도 하고해서 예전에는 h2에서 String 타입의 ID 형식도 허용해줬던건가요?[오류 일부 스크린샷]
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
"MemberFinderTest, MemberRegisterTest" record관련
record + 클래스 레벨 @Transactional에서 에러가 발생합니다.!질문은 record 예약어는 final 클래스라서 상속이나 프록시 생성이 불가능한거 같은데@Transactional 어노테이션은 Spring AOP기반이라 프록시 객체 생성이 안되서 에러가 발생하는거 같은데... 강의에서는 통과가 되더라구요 제가 어떤 부분이 놓쳤을까요?
-
미해결김영한의 실전 자바 - 중급 2편
중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 중급 2편의 56강 9분19초에서 size++; 윗 줄의 bucket.add(value); 라는 코드는 자바 라이브러리에 있는 코드인가요? 아니면영한님께서 작성한 코드인건가요?강의에서 사용한 코드를 보면 배열의 값을 대입시키는 코드는 안보이는데 마지막에 있는 add()메서드가 값을 저장하게 된다고 말씀하셨는데 앞선 강의에서는 해당인덱스게 정수 값을 대입시키는 것 밖에 나와있지 않아서 질문하게 되었습니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
ArticleQueryModel 질문
안녕하세요. 강의 잘 수강하고 있습니다 : )다름이 아니라 게시글 같은 경우에 레디스에 저장해서 조회할 때 빠르게 조회하는 건 이해했습니다. 그런데 ArticleQueryModel에 들어가있는 요소들을 보니까 댓글같은 경우에는 댓글 수만 넣어주더라고요. 프런트에서 게시글을 클릭했을 때 게시글에 저장되어 있는 댓글 데이터들을 조회하려면 comment-service로 요청을 해야하는 거죠??ArticleQueryModel은 순수하게 게시글을 위한 용도인거고 댓글들 같은 경우에는 comment-service로 요청을 해야하는 것 같은데 댓글들은 redis에 저장하지 않고 rdb에서 조회를 해야하는건가요??
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
File,Files 강의 2번쨰 Files 07:30 에 tmep 파일들을 다 지운건가요 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]7분 30초 즘에 편집 되고 temp 파일 쪽이 다 지워진거같은데 강의 처럼 지우고 따라가야하는지 궁금합니다. 흐름상 delete 부분에서 isRegularfile 이 false 가 나와서 원인을 찾는 과정에서 삭제된거같은데 굳이 삭제를 안해도 되는지 궁금합니다.
-
해결됨죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
allowStartIfComplete 질문
킬구형 안녕,강의를 보다가 궁금한 점이 생겨서 문의를 남겨. "정리하자면, allowStartIfComplete은 식별 파라미터 없이 Job을 재시작한 경우에만 적용되는 옵션이다." 이 문장을 보고 궁금증이 생겼는데,identifying JobParameters 가 없어서 Job 그리고 그 하위 Step 들이 다시 수행될수도 있겠지만, Job => Step A (성공) / Step B (실패) 여서 잡을 재시작하는 케이스에서,Step A 가 allowStartIfComplete true 면 A부터 스텝을 수행할텐데, 이 케이스에서도 allowStartIfComplete 를 쓰는게 아닌가 싶어서 문의를 남겨!이러면 Spring Batch 6 에서도 의미있는 파라미터가 아닌가 싶어서! (강의 잘보고 있습니다, 감사합니다!!)
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
peek() 메소드 사용한 문제풀이
이전 글에 같은 내용의 질문을 확인했는데 해당 글에 다른 분이 댓글다신거 확인하고도 의문이 안풀려서요.저는 peek() 메소드를 사용해서 코드를 작성했는데 첫번째 예시에 대한 답은 잘나오는데 두번째 예시의 답이 24가 아닌 26으로 나옵니다.왜 26이 나오는지 도저히 모르겠어요..혹시 peek() 메소드로는 해당 문제풀이가 힘든걸까요? import java.util.Scanner; import java.util.Stack; public class IronRod { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String laser = scanner.next(); System.out.println(solution(laser)); } private static int solution(String laser) { int answer = 0; Stack<Character> stack = new Stack<>(); // 선생님 풀이 for(int i = 0; i < laser.length(); i++){ if(laser.charAt(i) == '('){ stack.push('('); } else { stack.pop(); if(laser.charAt(i - 1) == '('){ answer += stack.size(); } else { answer++; } } } // 제가 작성한 코드 for(char c : laser.toCharArray()){ if(c == '('){ stack.push(c); } else { if(stack.peek() == '('){ stack.pop(); answer += stack.size(); } else { stack.pop(); answer++; } } } return answer; } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
롬복과 사용자 정의 setter 메서드
강의 23:03분에서 setMember(Member member)라는 setter 메서드를 작성하는데요.제가 기억하기로는 @Setter를 설정하면 자동으로 필드 이름을 딴 setXXX()인 setter가 만들어지는 것으로 알고 있습니다.그러니까 현재 Member 필드가 있으니까 롬복인 @Setter 에 의해 setMember(Member member)가 자동으로 생성되지 않을까 생각하는데요. 제가 생각한게 맞다면 이때 강의에서 만든 setMember(Member member)와 충돌? 이런 문제는 없나요? 시그니처까지 똑같은 것 아닌가요?아니면 이런경우 사용자가 직접 만든 것이 더 우선시 되는건가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
2장.작전1. 실행시 오류에 대해서 문의.
,로분리된 csv파일로 하고 public FlatFileItemReader<SystemFailure> systemFailureItemReader( @Value("#{jobParameters['inputFile']}") String inputFile) { return new FlatFileItemReaderBuilder<SystemFailure>() .name("systemFailureItemReader") .resource(new FileSystemResource(inputFile)) .delimited() .delimiter(",") .names("errorId", "errorDateTime", "severity", "processId", "errorMessage") .targetType(SystemFailure.class) .linesToSkip(1) .strict(true) .build(); }----------실행하면, 오류가 발생합니다.PS D:\Test\springboot\kill-batch-system> ./gradlew bootRun --args='--spring.batch.job.name=systemFailureJob inputFile=d:/Test/springboot/kill-batch-system/system-failures.csv'.....Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 5 actual 1..... PS D:\Test\springboot\kill-batch-system> 그런데, \t으로 구분하고, .delimiter("\t")로 하면 정상작동합니다. 이유가 뭘까요?윈도우 환경입니다.그리고, 실행시 파일의 위치를 절대경로로 주어야 하나요?상대경로일경우, 파일의 위치를 어디에 두어야 하나요?
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
인터페이스
안녕하세요! 이번 강의 수강 중 서비스 인터페이스에 대해 궁금하여 글을 남기게 되었습니다. 흔히 스프링 프로젝트에서 보통 Service 인터페이스와 ServiceImpl 구현체로 나누어 개발하며 제가 참여하게 된 프로젝트 또한 이러한 구조였습니다.이미 이전 개발자 분께서 Service 인터페이스와 ServiceImpl 구현체로 나눠놓은 상태였고, 제가 A 기능의 AServiceImpl 안에 특정 서비스 로직이 비대해짐에 따라 해당 코드가 명확하지 않다고 생각되어 메서드로 분리하게 되었습니다. A 엔티티의 상태, 계산 등의 로직으로 private 메서드를 두었습니다.여기서 동료와 의견이 갈렸습니다:동료 입장:1. ServiceImpl 안의 모든 메서드는 반드시 인터페이스에 있어야 한다.2. 인터페이스는 외부·내부 구분이 아니라, 구현체가 제공하는 기능을 보장하는 것이므로 전부 담아야 한다.3. 내부 메서드를 둘 거라면 굳이 인터페이스로 추상화할 필요가 없고 그냥 클래스로 쓰면 된다.제 입장:1. 인터페이스에는 “외부 계약(=공개 API)”만 있어야 한다.2. 구현체 내부에서만 쓰이는 로직은 private으로 감추는 게 맞고, 외부에서 호출할 필요가 전혀 없다.3. 인터페이스를 구현체 내부 헬퍼까지 다 포함하면, 오히려 계약이 불필요하게 비대해지고 역할이 모호해진다.핵심 쟁점저는 public 메서드는 모두 인터페이스에 있어야 한다는 데에는 동의합니다. 또한, 단순 public, private 만 있다면, 인터페이스의 역할이 모호하다는 것또한 이해하지만, 이전 코드와의 일관성과 운영 중인 시스템에 대한 변경이 필요할정도의 중대사항이라고 생각하지 않습니다.궁금한 점은 private/내부 헬퍼 메서드까지 인터페이스에 강제로 올리는 게 맞는지, 인터페이스를 사용하는 의의가 궁금합니다. 긴글 읽어주셔서 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
redis 종료시 캐싱 처리
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요!article-read service에서 ArticleIdListRepository는 createdEvent를 받았을 때만 추가되는데 만약 redis가 종료돼 데이터가 유실된다면 createdEvent로만 추가되기 때문에 당장 캐시 db로서 역할을 못 할 것 같습니다이 부분은 redis에 데이터가 유실되지 않는다고 가정하신 뒤 코드를 작성한 것이 맞을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
fail을 똑같이 쳤는데 오류가 발생해요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]fail을 썻는데 전 빨간 밑줄이 떠요gpt한테 무르니까 import 써야 한다는데 import쓰고 실행 돌리니까 또 틀렸다고 하고..
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
전처리기의 마지막 예제 메인함수안에 printf안에 있는 "\"%S\"\n" 에서
안녕하세요? 주말코딩님,전처리기의 마지막 예제 메인함수안에printf("%s\n", 인사말); printf("제 이름은 %s입니다.\n", 이름);printf("제가 좋아하는 명언은: \"%s\"\n", 좋아하는_명언)이렇게 되어 있는데요인사말과 좋아하는_명언의 출력문 차이가 왜 발생하는지 궁금합니다. (개행은 설명안해주셔도 됩니다.)"%s\n" vs \"%s\"\n"감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
궁금한게 있습니다.
ManyToOne 이 N : 1이라는관계를 표현한다는건 이해가 가는데 그게 어떻게 User 객체와 user_id bigint 컬럼과 매핑이 되는지 잘 모르겠습니다. 대출기록이 여러개고 User 가 1개 라는 것과 저것이 무슨 연관인지 이해가 안갑니다ㅜ
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
섹션 14. 115번 강의 내용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하십니까 선생님, 115번 강의 내용 중 질문이 있습니다.각각 작업의 크기를 1100, 1200, 1201번 경우로 나눠서 테스트를 하였는데 작업 처리 속도가 더 빨라서 max 스레드 개수까지 안 늘어날 수도 있지 않을까 하는 생각이 들었습니다. 즉, 작업 처리 속도가 빨라서 큐에 적재되는 작업이 줄어들어 큐에 담긴 작업이 1000개 되지 않아 스레드 긴급 투입이 발생하지 않을 수도 있지 않은가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
챕터별 설명하신 내용의 실행가능한 소스가 있는지 궁금합니다.
중간중간 소스만으로 실행가능한 소스를 만들고, 이해하는게 어렵습니다.큰 챕터별로 실행가능한 소스가 없는지 궁금합니다.즐거운 하루보내세요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
index.html Welcome page
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. Index.html 설정 후 localhost:8080 하여도 welcome page가 뜨지 않습니다.1:36 확인 부탁드립니다. 감사합니다.
-
미해결스프링 시큐리티 OAuth2
FormLoginConfigure에서 생성하는 필터
FormLoginConfigure에서 생성하는 필터가 UsernamePasswordAuthenticationFilter라고 말씀해주셨는데(8:37) ㅎinitDefaultLoginFilter 메서드에서 생성되는 필터 클래스가 DefaultLoginPageGenerationgFilter인거같은데 맞을까요?