묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O
createNewFile() 멱등성
방금 예제를 여러번 실행하면 어떻게 되는지 궁금해서 몇번 실행해봤는데, 최초에 생성된 시간 그대로 파일이 유지돼있네요. 파일 생성만 하고 또 실행 -> 파일 바뀌지 않음생성된 파일 수정하고 또 실행 -> 파일 바뀌지 않음(수정한 내용이 그대로 있음) 확인해보니 createNewFile() 는 true와 false를 반환하여 false일 때에는 생성을 하지 않고 있네요.해당 함수는 멱등성을 보장한다고 해야되는지 아닌지 궁금합니다.그런데 멱등성을 보장한다고 하기엔 안에 내용을 유지시켜주지는 않는거 같네요. 완전한 멱등성이라고 하면 수정된 내용도 없어지고 아무것도 없는 파일로 바뀌어야 되는거 아닐까 생각이 들어서 명확하게 확신이 없어서 질문 드립니다.
-
해결됨기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O
잘못 작성
잘못 작성
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
28분 23년1회 java문제 다시
설명을 들어서a=10 static.b = a니까 static.b++의 출력값은 10이고, 이후 11이 된다고 이해를 했는데,그러면 그 아래 출력값 a가 10 이면 그대로 똑같이 10이 아니라왜 st.a는 class Static의 20을 가져오나요? 두번째 출력값은 바로 위 출력값에서 계산된 걸 가져왔는데 네번째 출력값은 왜 가장 위의 클래스 거를 가지고 오는지 개념이 이해가 안됩니다
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
28분 문제..
28분대에 있는 23년 1회 JAVA 문제인데요.출력값 처음에Static.b++는 a=10 static.b=a 때문에 출력값 10인 건 이해가 되고,st.b는 왜 0이 아니고, 11인지 이해가 안되고.. 마지막 출력값 st.a은 왜 10이 아니고 20인지 이해가 안되네요. 기출문제부터 따라가기 너무 힘든데 이거 강의를 다시 들어야하나요? 혼자서 문제를 풀면 문제 설명하는 흐름대로 생각이 잘 안나는 것 같아요
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
Redis 캐싱 시 발생하는 대표 문제 사례와 해결책 3 강의가 누락된 거 같습니다.
Redis 캐싱 시 발생하는 대표 문제 사례와 해결책 3 강의가 없습니다.바로 6주차 숙제로 넘어가네요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
13:40 di가 ..
질문이 2개인데요...문제 풀이영상을 보면sum + (input[a][b]) * di ; input[a][b]에 %10을 넣으면 뭐 때문에 순차적으로 0 , 10, 100, 1000, 00000, 100000 이렇게 되는지 이해가 안되고, 2번째는di가 1부터 시작을 하고 di*2면 2,4,6,8,10 이렇게 커지는거 아닌가요? 그렇다면 2의2승 2의3승 2의4승 2의5승 이렇게 커지지 않으니까 계산이 안되는 것 같은데 ㅠ.. 좀 어렵네요
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
인덱스 데이터 흐름
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?3-6. 쿼리플랜이란? 여기까지 이해하신 내용은 무엇인가요?옵티마이저가 스토리지 엔진으로부터 가장 효율적으로 데이터를 가져오기 위해 쿼리플랜을 작성한다는 것을 이해했습니다. 2. 어려움을 겪는 부분어떤 개념이 헷갈리시나요?이때 인덱스를 참고해서 데이터를 가져온다면 이 인덱스는 메모리에 올라와 있는 상태인가요?? 아니면 디스크에 있는 인덱스를 확인하고 디스크에서 데이터를 가져오는 건가요? 데이터를 가져오는 전체적인 흐름이 궁금합니다! 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
-
미해결마이크로서비스 디자인 패턴 완벽 가이드
https://github.com/joneconsulting/eshop 소스
강의에 나온https://github.com/joneconsulting/eshop강의 공개 후에도 비공개 레포지토리로 보이는데요어디서 확인가능할까요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
group_concat 사용자 정의 함수 등록하는 방법
섹션 11-9 JPQL 함수에서, 사용자 정의 함수(group_concat) 구현 시 Hibernate(6.4.2.Final)버전을 사용할 때 가능한 방법 공유드립니다. 강의에서 MyH2Dialect 클래스 구현하는 대신, FunctionContributor를 구현public class MyH2FunctionContributor implements FunctionContributor { @Override public void contributeFunctions(FunctionContributions fc) { TypeConfiguration typeConfig = fc.getTypeConfiguration(); SqmFunctionRegistry registry = fc.getFunctionRegistry(); // ✅ 문자열 반환 타입을 직접 조회 BasicType<?> stringType = typeConfig.getBasicTypeRegistry().getRegisteredType("string"); // ✅ 사용자 정의 함수 등록 registry.registerPattern( "group_concat", "group_concat(?1)", stringType ); } } 서비스 등록 (META-INF/services/org.hibernate.boot.model.FunctionContributor)jpql.MyH2FunctionContributor 예시 쿼리Team team = new Team(); team.setName("teamA"); em.persist(team); Member member = new Member(); member.setUsername("관리자"); member.setAge(10); member.setType(MemberType.ADMIN); Member member2 = new Member(); member2.setUsername("사용자2"); member2.setAge(10); member2.setType(MemberType.USER); member.changeTeam(team); em.persist(member); em.persist(member2); em.flush(); em.clear(); String query = "select group_concat(m.username) from Member m"; List<String> result = em.createQuery(query, String.class).getResultList(); for (String s : result) { System.out.println("s = " + s); }결과 쿼리Hibernate: /* select group_concat(m.username) from Member m */ select group_concat(m1_0.username) from Member m1_0s = 관리자,사용자2
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
cache eviction 관련 질문입니다.
위의 내용과 같이 언제, 어떻게 만료 시킬 지에 대한 만료 방식을 cache eviction이라고 해주셨는데 검색해보니까 내용 상의 차이가 있다는 것을 알게 됐습니다. TTL, TTI와 같은 특정 시간, 점유 시간에 대해 발동되어 cache expiration으로 정의가 됐습니다. 반면 cache eviction은 메모리 공간이 부족한 경우 발동되어 LRU, LFU, FIFO 등으로 구분됐습니다.결국 둘 다 캐시 삭제 기법이긴 하나, 트리거 조건에 차이가 있었습니다. 면접에서 eviction 관련 질문을 받는다면 둘을 혼용해도 무방할까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실제 실무에서 RestController 하나로만 개발이 가능한가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]RestController 는 JSON 으로 응답을 돌려주는 역할을 하며 redirect 와 같은 것을 사용하지 않는 이상 view페이지로 리턴해주는 건 따로 없고, 권장하지 않는다고 배웠습니다. view 페이지 이동 및 view 에서 표출할 단순한 데이터는 @Controller , "기능"에 관련된 것은 @RestController 을 사용해야할 거 같습니다. 예를 들어, 1. 회원목록 페이지 이동은 Controller 및 회원목록조회(DB조회) -> member_list.html 리턴2. 회원상세보기 페이지 이동은 Controller 및 회원상세조회(DB조회) -> member_detail.html 리턴3.회원 상세보기페이지에서의 수정 기능은 RestController 및 JSON 응답 리턴 이렇게 구현이 되어야할 거 같더라구요 !RestAPI 및 @RestController 형식을 사용한다하더라도 전체를 RestController 를 사용하는 건 구현에 무리도 있고 권장되지 않는 거 같기도 하더라구요.패키지 구조로 치면domain(package)-member(package)-controller(package) > MemberApiController.java, MemberController 이렇게요! RestController 하나만 사용하게 된다면메인페이지에서 [회원목록] 을 클릭한다.클릭과 동시에 axios/fetch 등의 비동기 통신이 이루어진다.비동기통신의 url 은 회원목록데이터를 return 하는 @RestController 메서드에 도착한다.응답이 성공하면 axios/fetch 비동기 메서드에 200코드와 회원목록데이터를 전달한다.응답이 성공하면 그 데이터를 회원목록페이지를 보여주는 @RestController 에 다시 전달한다.해당 RestController 메서드가 전달받은 데이터를 view페이지에 표출한다.순서가 이렇게 될 거 같은데5번의 회원목록 페이지를 보여주는 RestController 또한 view 페이지를 열수없으니, redirect 와 같은 걸 사용해야할 거 같더라구요. 상당히 복잡하고 비효율적인거 같아 RestController(기능) 와 Controller(view 페이지 이동) 을 분리해서 사용하기로 결정했는데 실제 현업/실무에서도 @RestController(ResponseEntity) 와 @Controller(ModelAndView) 를 위처럼 기능 / view 페이지 이동 이렇게 구분해서 사용하나요?아니면 RestController(ResponseEntity) 하나만 사용하나요?만약 구분해서 사용해야한다면MemberApiController 는 ResponseEntity 메서드MemberController 는 ModelAndView 메서드 를 작성하는 것을 염두에 두고 있습니다 !
-
미해결김영한의 실전 자바 - 중급 1편
공통 예외 처리 부분의 Exception
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.체크 예외를 사용하면서 수많은 예외를 Excption으로 처리하는 것을 최악의 수라고 하셨는데 공통 예외 처리를 하면서 공통 예외 처리 메서드를 catch 부분에서 호출하면서 catch(Exception e)와 같이 사용하는데 이 부분의 Exception과 체크 예외의 Exception은 다르게 봐야할까요? 햇갈려서 질문해봅니다.
-
미해결마이크로서비스 디자인 패턴 완벽 가이드
강의 pdf교재는 별도로 없나요?
강의 pdf교재는 별도로 없나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컬렉션 조회 최적화 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예안녕하세요. 강의를 듣다가 제가 컬렉션 조회 최적화에 대해 이해했던 내용을 정리해봤는데 맞는지 확인해주실 수 있을까요??
-
미해결서버개발자 과제전형 완벽가이드 - 1편
16강 api서버구현 질문있습니다.
16강 api서버구현 질문있습니다.18분 46초에서 인자를 넣는데 mock이라서 의미가 없다는게 어떤 말씀인지 알 수 있을까요? 목킹은 객체를 만드는데 넣을 인자값이 없어서 의미가 없다는 건가요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
@StepScope 질문
@Bean public Step systemDestructionStep( SystemInfiltrationTasklet tasklet // Tasklet을 주입받는다 ) { return new StepBuilder("systemDestructionStep", jobRepository) .tasklet(tasklet, transactionManager) .build(); } @Slf4j @Component @StepScope // Tasklet에 StepScope를 달았다 public class SystemInfiltrationTasklet implements Tasklet { private final String targetSystem; public SystemInfiltrationTasklet( @Value("#{jobParameters['targetSystem']}") String targetSystem ) { this.targetSystem = targetSystem; } @Override public RepeatStatus execute(StepContribution contribution, ChunkContext context) { log.info("{} 시스템 침투 시작", targetSystem); return RepeatStatus.FINISHED; } }여기서 @StepScope를 tasklet에 작성하는 이유가 있나요?아래 방식처럼 Step에 @StepScope를 작성하면 안되나요?@Bean @StepScope public Step systemDestructionStep( SystemInfiltrationTasklet tasklet // Tasklet을 주입받는다 ) { return new StepBuilder("systemDestructionStep", jobRepository) .tasklet(tasklet, transactionManager) .build(); }
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
.close()이후 poolSize문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]21 버전의 자바를 사용 중입니다. .close()를 하여도 pool의 개수가 0개로 변경되지 않습니다.main 스레드에서 인지하는데 시간이 걸리나 하여 sleep()을 통해 시간의 변화를 줬지만 여전히 동일한 결과값이 도출됩니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 객체와 엔티티 객체를 연결짓는 부분만 초기화 문의, 초기화란?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]em.getReference() 시 처음으로 영속성 컨텍스트에서 프록시 객체 반환 후 find() 메소드 호출하면 그대로 프록시 객체가 반환되는걸로 이해하였습니다.find()시 실제 DB에 접근하여 데이터를 가져오는데 이를 실제 엔티티에 저장하고프록시 객체와 엔티티 객체를 연결짓는 부분만 초기화?(재설정) 하는건가요?!초기화 라는 용어가 헷갈리고, 실제 DB 데이터를 어떻게 프록시 객체와 연결하는지 궁금합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 선생님 게시글 목록 API-페이지 번호 구현 강의에서 질문 있습니다.
안녕하세요 선생님 좋은 강의 감사합니다.저희 articleController에서 readAll 부분을 보면@GetMapping("/v1/articles") public ArticlePageResponse findAll( @RequestParam("boardId") Long boardId, @RequestParam("page") Long page, @RequestParam("pageSize") Long pageSize ) { return articleService.readAll(boardId, page, pageSize); }이런식으로 pageSize를 쿼리 파라미터로 넘겨주도록 설계가 되어 있는데, pageSize라는 파라미터는 값을 받아서 처리하는 것이 아니라, 서버에서 값을 정하고 항상 똑같은 pageSize를 써야하는 것 아닌가요 ??왜 pageSize를 인자로 받는지 이해가 잘가지 않습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
안녕하세요 ! 강의 잘 듣고 있습니다.
안녕하세요 선생님 강의 잘 듣고 있습니다 .controller를 구현하실때 중복되는 부분을전부 다 쓰신 이유가 따로 있으신가요 ?예를 들어 ArticleController에서@RequestMapping("/v1/articles")public class ArticleController{...}이런식으로 RequestMapping 애노테이션을 붙여 중복을 줄일 수도 있는데 선생님은 전부 다 그냥 쓰셔서 어떤 의도가 있는 것인지가 궁금합니다.