H2데이터베이스 파일 생성
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] H2 데이터베이스 파일 생성방법 강의자료에서는 저장된 설정이 server가 아닌 embedded로 되어있는데 어떤것을 따라야할까요?
- java
- jpa
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] H2 데이터베이스 파일 생성방법 강의자료에서는 저장된 설정이 server가 아닌 embedded로 되어있는데 어떤것을 따라야할까요?
미해결
죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
... @Slf4j @Configuration @RequiredArgsConstructor public class LogProcessingJobConfig { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; private final String BASE_PATH = "C:\\Users\\user\\Desktop\\batch\\section3\\flatfileitemwriter"; @Bean public Job logProcessingJob( Step createDirectoryStep, Step logCollectionStep, Step logProcessingStep ) { return new JobBuilder("logProcessingJob", jobRepository) .start(createDirectoryStep) .next(logCollectionStep) .next(logProcessingStep) .build(); } @Bean public Step createDirectoryStep(SystemCommandTasklet mkdirTasklet) { return new StepBuilder("createDirectoryStep", jobRepository) .tasklet(mkdirTasklet, transactionManager) .build(); } @Bean @StepScope public SystemCommandTasklet mkdirTasklet( @Value("#{jobParameters['date']}") String date ) { SystemCommandTasklet tasklet = new SystemCommandTasklet(); tasklet.setWorkingDirectory(BASE_PATH); String collectedLogsPath = "collected_ecommerce_logs\\" + date; String processedLogsPath = "processed_logs\\" + date; try { tasklet.setCommand("cmd.exe", "/c", "mkdir", collectedLogsPath, processedLogsPath); tasklet.setTimeout(3000); } catch (Exception e) { log.error("mkdirTasklet error: ", e); } return tasklet; } @Bean public Step logCollectionStep(SystemCommandTasklet scpTasklet) { return new StepBuilder("logCollectionStep", jobRepository) .tasklet(scpTasklet, transactionManager) .build(); } @Bean @StepScope public SystemCommandTasklet scpTasklet( @Value("#{jobParameters['date']}") String date ) { SystemCommandTasklet tasklet = new SystemCommandTasklet(); tasklet.setWorkingDirectory(BASE_PATH); String processedLogsPath = "collected_ecommerce_logs\\" + date; StringJoiner commandBuilder = new StringJoiner(" & "); for (String host : List.of("localhost")) { // Windows 환경에서 해당 코드를 적용하려면 ssh 관련 설정들을 찾아야 해서 주석 처리 // String command = String.format("scp %s:~/ecommerce_logs/%s.log %s\\%s.log", host, date, processedLogsPath, host); String sourcePath = BASE_PATH + "\\ecommerce_logs\\" + date + ".log"; String command = String.format("copy %s %s\\%s.log", sourcePath, processedLogsPath, host); commandBuilder.add(command); } tasklet.setCommand("cmd.exe", "/c", commandBuilder.toString()); tasklet.setTimeout(10000); return tasklet; } @Bean public Step logProcessingStep( MultiResourceItemReader<LogEntry> multiResourceItemReader, LogEntryProcessor logEntryProcessor, FlatFileItemWriter<ProcessedLogEntry> processedLogEntryJsonWriter ) { return new StepBuilder("logProcessingStep", jobRepository) .<LogEntry, ProcessedLogEntry>chunk(10, transactionManager) .reader(multiResourceItemReader) .processor(logEntryProcessor) .writer(processedLogEntryJsonWriter) .build(); } @Bean @StepScope public MultiResourceItemReader multiResourceItemReader( @Value("#{jobParameters['date']}") String date ) { MultiResourceItemReader<LogEntry> resourceItemReader = new MultiResourceItemReader<>(); resourceItemReader.setName("multiResourceItemReader"); resourceItemReader.setResources(getResources(date)); resourceItemReader.setDelegate(logFileReader()); return resourceItemReader; } private Resource[] getResources(String date) { try { String formattedBasePath = BASE_PATH.replace("\\", "/"); String location = "file:///" + formattedBasePath + "/collected_ecommerce_logs/" + date + "/*.log"; PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); return resolver.getResources(location); } catch (IOException e) { throw new RuntimeException("Failed to resolve log files", e); } } @Bean public FlatFileItemReader<LogEntry> logFileReader() { return new FlatFileItemReaderBuilder<LogEntry>() .name("logFileReader") .delimited() .delimiter(",") .names("dateTime", "level", "message") .targetType(LogEntry.class) .build(); } @Bean public LogEntryProcessor logEntryProcessor() { return new LogEntryProcessor(); } @Bean @StepScope public FlatFileItemWriter<ProcessedLogEntry> processedLogEntryFlatFileItemWriter( @Value("#{jobParameters['date']}") String date ) { String outputPath = Paths.get(BASE_PATH, "processed_logs", date, "processed_logs.jsonl").toString(); ObjectMapper objectMapper = new ObjectMapper(); JavaTimeModule javaTimeModule = new JavaTimeModule(); javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))); objectMapper.registerModule(javaTimeModule); return new FlatFileItemWriterBuilder<ProcessedLogEntry>() .name("processedLogEntryJsonWriter") .resource(new FileSystemResource(outputPath)) .lineAggregator(item -> { try { return objectMapper.writeValueAsString(item); } catch (JsonProcessingException e) { throw new RuntimeException("Error Converting item to JSON", e); } }) .build(); } @Data public static class LogEntry { private String dateTime; private String level; private String message; } @Data public static class ProcessedLogEntry { private LocalDateTime dateTime; private LogLevel level; private String message; private String errorCode; } public enum LogLevel { INFO, WARN, ERROR, DEBUG, UNKNOWN; public static LogLevel fromString(String level) { if (level == null || level.trim().isEmpty()) { return UNKNOWN; } try { return valueOf(level.toUpperCase()); } catch (IllegalArgumentException e) { return UNKNOWN; } } } public static class LogEntryProcessor implements ItemProcessor<LogEntry, ProcessedLogEntry> { private static final DateTimeFormatter ISO_FORMATTER = DateTimeFormatter.ISO_DATE_TIME; private static final Pattern ERROR_CODE_PATTERN = Pattern.compile("ERROR_CODE\\[(\\w+)]"); @Override public ProcessedLogEntry process(LogEntry item) throws Exception { ProcessedLogEntry processedLogEntry = new ProcessedLogEntry(); processedLogEntry.setDateTime(parseDateTime(item.getDateTime())); processedLogEntry.setLevel(parseLevel(item.getLevel())); processedLogEntry.setMessage(item.getMessage()); processedLogEntry.setErrorCode(extractErrorCode(item.getMessage())); return processedLogEntry; } private LocalDateTime parseDateTime(String dateTime) { return LocalDateTime.parse(dateTime, ISO_FORMATTER); } private LogLevel parseLevel(String level) { return LogLevel.fromString(level); } private String extractErrorCode(String message) { if (message == null) { return null; } Matcher matcher = ERROR_CODE_PATTERN.matcher(message); if (matcher.find()) { return matcher.group(1); } // ERROR 문자열이 포함되어 있지만 패턴이 일치하지 않는 경우 if (message.contains("ERROR")) { return "UNKNOWN_ERROR"; } return null; } } } 윈도우즈에서는 scp 명령어 관련해서 windows 서비스에서 open-ssh-server 실행 현재 사용하고 있는 사용자(windows 사용자) 가 관리자 권한을 보유 할 경우 programdata/sshd_config 파일 수정 필요 기타 파일 권한 정리 필요 로 인하여 scp 프로그램을 windows 환경의 intellij idea 에서 id, 비번치게끔 ide 콘솔에서 지원하지 않는거 같아. 그래서 제미니가 추천해준대로 실습 환경에서 scp 접속 단을 copy 로 그냥 퉁치는 것으로 바꿔놨어. 나처럼 windows 환경인 사람들이 있으면 혹시나 참고했으면 좋겠네. ObjectMapper, JavaTimeModule 같은 경우는 org.springframework.boot:spring-boot-starter-json 의존성 추가 필요
미해결
2026 코딩테스트 올인원 [JAVA]
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요. 제가 DFS/BFS부분이 많이 약해서 ㅠㅠ 질문입니다. lockers = [[1, 2], [3], [], [0]] 이런 이중행렬인데 인접리스트로 코드 변환 안하고 생각해도 괜찮다는 의미 인거죠…? 감사합니다.
해결됨
수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
안녕하세요. 알 수 없는 에러가 나서 질문드립니다. 강사님이 추천해주신 z-image-turbo를 사용하여 n8n에서 http request를 만들고 있었는데요, 작동이 안되고 계속 에러가 납니다. json구문이 잘못된것 같은 에러메시지인데. 분명 틀린 곳이 없는데 왜이럴까요? 스샷에는 다 보이지 않아 상세 구문도 아래넣습니다. { "input": { "width": 1344, "height": 768, "prompt": "{{ $json.image_prompt }}", "go_fast": false, "output_format": "png", "guidance_scale": 0, "output_quality": 80, "num_inference_steps": 8 } } 도와주세요! 박사님!ㅜㅜ
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
CPU 스케줄링에서 SRTF(Shortest Remaining Time First)에 대해 질문 있습니다. 실제 시험에서 SRTF or SRT or SRF 셋 중에 하나를 쓰면 정답인가요? 시중에 있는 기출문제집의 해답에서는 SRT라고 되어 있어서 질문 드립니다.
해결됨
회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
윈도우 파워쉘에서 진행하고 있습니다. source .venv/bin/activate 수행시 아래와 같이 오류가 납니다. PS C:\Users\jj13.lee\agent-use-cases> source .venv/bin/activate source : 'source' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정 확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + source .venv/bin/activate + ~~~~~~ + CategoryInfo : ObjectNotFound: (source:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
미해결
윤파고의 정보처리기사 DB/프로그래밍 All-In-One
col2만 세어야 하니까 3이죠,,?
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
10. 프로그래밍 언어 활용 에서 3.java 관계연산자/비트연산자의 문제풀이 보시면 F | T 할때 F 를 0000 T를 1111로 표현하던데 true는 0001 아닌가요? F|T -> 0000 | 1111 -> 1111 -> T 라고 되어잇고 XOR 연산자에도 T를 1111 로 표기해서 묻습니다.
해결됨
수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
안녕하세요. 뒤늦게 강의를 신청한 수강생입니다. 섹션1 설치부분을 그대로 따라했는데, n8n 설치버전을 확인해 보니 2.15.0 버전이더군요. 정상적으로 n8n 앱은 구동이 되게 세팅이 완료된 상태로 세션1은 끝냈습니다만, 세션2부터의 수업영상은 1.x 버전대로 만드신걸로 아는데, 2.x 버전으로 진행해도 문제없을까요?
미해결
김영한의 실전 자바 - 기본편
@Override public void print() { super.print(); System.out.println("- 저자: " + author + ", isbn:" + isbn); } 다름이 아니고 @Override를 하는 이유가 부모에서 사용하는 메서드를 자식에서 재사용을 위해서 사용하신다고 했는데 궁금한 게 강의 내용 중에 객체를 생성하고 메서드를 사용할 경우 먼저 자식을 보고 그다음에 없으면 부모를 보신다고 하셨는데 그러면 이미 자식에는 print가 있으니까 저렇게 super.print();를 붙이면 굳이 @Override를 안 붙여도 상관없지 않나요? 관례가 있어서 많은 개발자분들께서 붙인다고 하셨는데 저 경우에는 재사용이 아니고 바로 자식 쪽에서 메서드가 있으니까 굳이 부모까지는 갈 필요가 없지 않나요??
해결됨
서버개발자 과제전형 완벽가이드 - 1편
학습관련 질문을 남겨주세요! 상세히 작성주시면 더 좋아요 🙂 안녕하세요, 강사님 🙂 이번 질문도 혼자 먼저 구현 후, 강사님의 강의를 들으며 리팩토링을 진행하며 궁금증이 하나 생겨 질문 드립니다. 저는 search-api 모듈의 com.library.repository의 NaverBookRepository.class 위치를 강사님과 다르게 external:naver-client 에 위치시켰습니다.(NaverBook/KakaoBook은 external 에 종속된 구현체라고 생각) 그러다 보니, naver-client 모듈이 search-api 모듈에 있는 BookRepository, PageResponse, SearchResponse 를 알아야 했으며, naver-client 모듈이 search-api 모듈을 implementation('...') 으로 의존?참조? 하게 되었습니다. // search-api 모듈 public interface BookRepository { PageResponse<SearchResponse> search(...); } 이렇게 external -> search-api 로 흘러가는 의존 방향에 이질감이 듭니다.(외부 API 가 app 을 안다..?) 그래서 모듈간 의존 방향이 search-api -> external 되도록 강사님 강의처럼 NaverBookRepository 를 search-api 모듈에 위치 시켜도 NaverClient 때문에 search-api에 feign 종속성이 생긴 다는 것이 모듈간 의존성 격리가 되지 않아서 멀티모듈의 장점이 퇴색되었다고 생각합니다. 강사님은 과제가 아닌 실무에서 search-api 와 external 간의 모듈 격리를 어떻게 하시며, 의존 방향을 어떻게 하시는지 궁금합니다. 저의 부족한 지식을 확장할 수 있게 강사님의 인사이트 공유해주시면 감사하겠습니다!
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요 31분 50초 Child() 함수에 this(5000) 이 있는데 부모를 호출 할 수 있나요? 저는 super, this 아무것도 없을때 명시적으로 super 는 없지만 자동으로 부모를 호출한다 super 가 있으면 부모를 호출한다. super, this 는 함께 못 쓰인다. 이렇게 알고 있어서, 문제를 풀 때 super 가 명시적으로 없어도 항상 숨어있다고 생각하고 접근했습니다. 그래서 Child() 생성자에 this 가 있으면 super 는 실행되지 않는다고 생각해서 부모 생성자 호출 과정을 제외하고 풀었는데, 결과가 다르게 나와서 헷갈렸습니다 this 가 있는데도 부모 호출이 맞는지 궁금합니다. 그리고 부모를 호출한다면 child() -> parent() -> parent(int x) -> child(int x) 순서가 맞는지도 알려주세요
해결됨
원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)
영상보고 다시 해봤는데도 계속해서 오류가 납니다. 원인이 뭘까요?
미해결
실전! Querydsl
plugins { id 'java' id 'org.springframework.boot' version '4.0.5' id 'io.spring.dependency-management' version '1.1.7' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'study' version = '0.0.1-SNAPSHOT' description = 'querydsl202604' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-h2console' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-webmvc' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // test 롬복 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' // Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } // querydsl 추가 def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } 이렇게 하면 build 폴더에도 Q붙은 엔티티들 나오고요. 테스트 코드 짤 때도 Q붙은 엔티티들 불러올 수 있습니다. 참고하세요.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
v1.0 이론을 업로드해주신다고 하였는데, 혹시 언제쯤 업로드될까요?
해결됨
[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
완전 초보를 위한 n8n 설치부터 셀프호스팅까지 - docker 실습편 듣고 있습니다. 듣는중에 궁금한 점이 있어서 질문드립니다. 제가 주의사항을 안보고 인강을 구입했습니다 맥북 에어15 m2칩인데 2강 7분쯤 봤는데 설치를 어떻게 해야될지 모르겠어서 질문드립니다 맥북 설치방법은 따로없는건지? 없다면 그냥 유튜브같은곳에서 맥북에서 n8n 도커설치방법 보고 설치하면 되는지 궁금합니다 그리고 그럴시에 주의사항이나 유의할 점도 궁금합니다 올라마나 그런거 어떻게 하는거건지 궁금합니다 만약 알아서 설치한 뒤에는 어떻게 2강을 안보고 넘기는게 나은지 궁금합니다.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
이번에 2026년 8월 실기준비하고 있는데 들어도될까요 ?
해결됨
수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
감사합니다. 강사님 제가 찾던 강의 더라구요 잘듣고 있습니다. 우선 질문이 두개가 있는데요 구글 검색이 api 방식에서 Vertex AI Search 방식으로 변경된다고 하셨는데 혹시 추가 강의를 찍으시거나 계획이 있으실까요? 두번째는 저는 n8n 서버와 wordpress 서버를 별도로 둘 생각인데 n8n 서버에서 wordpress 를 컨트롤 할 수 있을까요? n8n 에서 작업을 마치고 워드프레스 api 를 이용하여 글을 적으려고 합니다.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
(기출)2025년 3회 코드해설 14분 40초 리스트, 딕셔너리, 튜플에 대해 말씀해주시는데, python부분을 모두수강하였는데 이 부분은 따로 들은 기억이 없어 혹시 어디에 이부분 설명이 있는지 궁금하여 질문남깁니다. 좋은 강의 잘듣고있습니다. 감사합니다.
해결됨
수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
안녕하세요. 강의 잘듣으며 어렵지만 열심히 해보고 있습니다. 그런데 이상하게 클로드 연결이 오류가 나서요. 혹시 현재 n8n버전에서는 설정해야할 것이 따로 있을까요? 클로드에서 api key 잘 복사하여 붙여넣고 save했는데, 연결 sucess가 안되네요. key값이 잘못되었나? 하고 클로드가서 api key를 지우고 다시 생성하여 try해보았는데도 안됩니다. 혹시몰라 결제도 15불 더하여 밸런스 20불 맞추어놓았는데도 연결이 안되는데, 무슨 문제일까요...? 간단한 문제일 것 같은데 도저히 잘모르겠어서 질문드립니다 .