inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

22분32초에 정답이 S라고해주셨는데 인덱스 3이라 S가 나오는건 이해했습니다. 근데 위에 print("실제로 잘린 값 : ", end="")를 통해서 실제로 잘린 값 : ['I','IS','ES','S','RING']이거도 같이 출력되야되는거 아닌가요?? 왜 정답이 그냥 S하나만 나오는건지 모르겠습니다.

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
sgim7100 댓글 3 좋아요 0 조회수 106

실무 조언 관련 질문입니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 실무 조언으로 묵시적 조인 대신 명시적 조인을 사용하라는 부분에 대해 질문이 있습니다. 단일 값 경로 표현식이나 컬렉션 값 경로 표현식을 사용하면 무조건 내부 조인이 발생하는데 명시적 조인을 쓰라는 것이 어떤 의미인지 잘 모르겠습니다. 어차피 발생할 조인을 겉으로 드러내서 내부 조인이 발생하는 지점이라도 명시하자 라는 의미로 말씀하신걸까요? 아니면 다른 개선책이 있어서 명시적으로 조인을 사용하라고 하시는걸까요?

  • java
  • jpa
쉽지않네 댓글 1 좋아요 0 조회수 88

업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

영상에 있는 업케스팅 에시들 다 따라해보고 이해도 했습니다. 볼때마다 안하고 상속하는 거와 별차이 없는 거 아닌가 이런 생각만 듭니다. 상속을 해도 부모 생성자부터 호출하고 상속을 해도 자식 메서드를 우선 적용하고 업캐스팅 표시가 있어서 생성자를 부모먼저 자식먼저 하는 건 업캐스팅이 있으나 없으나 마찬가지 아닌가 이런 생각만 듭니다.

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
Remi Yun 댓글 2 좋아요 0 조회수 82

sdk 설정 오류

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이렇게 오류가 떠서 jdk oracle을 다운 받고 sdk도 설정하고 IVM도 설정했습니다. 자바 스프링 버전은 최신 버전인 4.0.5 대신 강의 자료에서 3.x인 최신버전을 선택하라길래 3.5.13.을 선택했습니다. 무슨 문제일까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김주현 댓글 2 좋아요 0 조회수 116

consumer에서 에러가 발생할 경우 데이터 유실 문의

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요. kafka 관련해서 질문이 있습니다. MessageRelay > publishEvent 에서 outbox를 삭제했는데 consumer에서 에러가 발생하면 데이터가 유실되는게 아닌가요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
hack4569 댓글 2 좋아요 0 조회수 95

게시글 테스트 데이터 삽입

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

DataInitializer 자체가 이해가 안되는게 있습니다. Test 환경에서 @Autowired 가 가능한건지 궁금하네요

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
w ho 댓글 2 좋아요 0 조회수 79

20장. rm 대체 쉘 스크립트

해결됨

맥북 처음 샀을 때 꼭 해야 할 세팅 A to Z (Claude Code · OpenClaw · Hermes Agent | macOS 올인원)

안녕하세요. 주말에만 강의를 들을 시간이 나는지라, 매번 휴일에 문의를 남기네요 ㅠ 20장 rm 을 대체하는 부분을 보았는데, 실습을 하려고 하니, 올려놓겠다고 하신 스크립트를 찾지 못하고 있습니다. 어디를 봐야할지 안내를 부탁드려요 ㅠ

  • macos
  • homebrew
  • 인공지능(ai)
  • ai-agent
  • claude
Do Hun Kim 댓글 2 좋아요 0 조회수 90

사용하면서 불편한 점

해결됨

AI Agent 영어 과외 선생님과 함께하는 요즘시대 영어 학습법! (2026년 7월 업데이트!!)

안녕하세요? 사이트 이용하면서 개인적으로 불편했던 점입니다! (개인의 생각이므로 틀릴수도 있습니다.) 단어장 생성시 이미지 파일 렌더링에 시간이 오래 걸린다. 어떤 방식으로 웹을 구현하셨는지는 잘 모르겠지만... 단어별로 이미지가 떠오르는데 시간이 너무 오래 걸리는거 같습니다. 모든 이미지를 매번 API 요청해서 새로 생성하는거라면 API 비용도 클것 같구요. 발음 연습하는 문장의 종류가 랜덤으로 바뀌면 좋을 것 같습니다. 원래 의도하신게 비슷한 문장을 반복적으로 듣고 연습하는거라면 믿고 따라가겠지만, 매번 같은 문장이 나와서 원하는 지점까지 가는데 시간이 오래 걸립니다. (발음이 안좋나봐요..) 한정된 시간안에 공부를 해야하는데 시간이 효율적이지 못하다는 생각을 가끔 하는거 같습니다. (제가 틀릴수도 있어요) 단어장 생성시 분당 요청수에 제한을 두는게 좋을것 같습니다. 간단한 자바스크립트로 단어장 생성을 광클했는데, 분당 생성수에 제한이 없어서 계속 동작을 하는거 같더라고요. 혹시나 악의적인 사용자가 매크로로 계속 단어를 생성한다면 이미지도 계속 생성할테니까 서버 비용이 많이 나올거 같습니다. 단어장 생성시 단어가 중복되어 등록된다. 단어장에 추가하는 버튼을 눌렀을 때 단어가 여러번 등록됩니다. 회화 연습할 때 상대방 목소리가 너무 AI 같습니다. 번역기에 영어 단어를 넣고 다시 출력하는 악센트 같습니다. 그래서 종종 몰입도가 떨어져요 서비스의 가치에 비해 수강료는 싸다고 느끼는 편입니다. (AI API 너무 비싸요..ㅠㅠ) 좋은 강의 감사드립니다. 좋은하루 보내세요.

  • 인공지능(ai)
  • ai-agent
정용욱 댓글 2 좋아요 0 조회수 105

강의파일 통합본

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요. 강의 너무 잘 보고 있습니다. 새로운 강의마다 자료를 하나하나 다운받아야해서 불편한데, 통합본은 따로 올라와있지 않은건가요? 강의는 노트북으로 보고, 강의자료는 탭에서 다운받아 필기중인데 여간 불편한게 아니라 질문드립니다.

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
fpemvneld 댓글 2 좋아요 0 조회수 90

Orchestration SAGA 패턴 보상에 대한 질문입니다.

해결됨

카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴

Orchestration SAGA 패턴 구현에 대해 고민하다가 질문이 생겨 남깁니다. 보상을 요청하는 메서드가 명시적으로 나와있어 호출할 때(동기로 호출) 만약 rollback을 요청하는 호출이 실패하게 된다면 이후의 순서대로 service에 보상 요청을 하는 동작을 멈춰야 할지 계속 진행하는 게 바람직할지 고민이 됩니다. 예를 들어 서비스 1,2,3,4가 있고 center server가 orchestration 관리를 하고 1,2,3,4 순서대로 서비스 호출해서 관리를 진행한다고 했을 때 3에서 장애가 발생해서 2를 롤백하던 중 2 롤백에서 예외가 발생해서 롤백에 실패한 경우 orchestration에서 1에 대한 롤백을 진행해줘야 할지 아니면 일단 멈춰야 할지 고민입니다. 고민의 이유는 순서대로 롤백을 해주는 것은 앞에 작업이 뒤의 작업에 의존성이 있을 때만 그렇게 해주면 되나에 대한 고민이 있었습니다. 두 롤백 간에 데이터 의존성이 없다면 괜찮지 않을까 고민했습니다. 다음으로 일단 1도 롤백을 한다면 어디서부터 어디까지 롤백이 진행됐는지 추적이 어려워지지 않을까 고민했습니다. 롤백을 어떤 것은 해주고 어떤 것은 안해준다면 어디까지 롤백했는지 추적이 힘들어지지 않을까 생각이 들었습니다.

  • java
  • spring
  • mysql
  • spring-boot
  • msa
won 댓글 2 좋아요 0 조회수 80

라이브 녹화 문의

미해결

[무료 Live] 하네스 엔지니어링: 혼자서도 돌아가는 AI 개발 시스템 구축

현재 올라온 2시간 34분 길이의 라이브 녹화 영상이 이상한데 혹시 이건 시스템 상 자동으로 올라온 것인가요?

  • cursor
  • chatgpt
  • ai-agent
  • 바이브코딩
  • 무료-라이브
Wyatt 댓글 2 좋아요 0 조회수 113

남은 기간 학습방향

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 강의 잘 듣고있습니다. 프로그래밍을 배운적이 있어서 기출 문제 강의 부터 보고 킬러문제 1,2개 제외한 나머지는 대체로 이해 하고 푸는 수준입니다. 올려주신 문제는 모두 다 풀었는데 현시점에서 새로운문제를 더 풀어보는게 나은지 이론암기와 현재까지 풀었던 문제 복습하고 시험장 가는게 나을지 .. 조언을 구해 봅니다..

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
김선경 댓글 2 좋아요 0 조회수 123

Unauthorized 에러

해결됨

#1 OpenClaw: 나만의 AI 비서 만들기

안녕하세요, 터미널에서 강의대로 openclaw gateway run을 하고, 나오는 url로 들어가게 되면 사진과 같이 Unauthorized라고 뜹니다. 해결하기 위해 아래의 방법들로 진행하였으나 계속 해당 오류가 떠서 문의하게 되었습니다 root 환경에서 openclaw 삭제 후, 개인사용자 환경에서 재설치 openclaw.json에 openclaw.remote.token이 없어서, openclaw gateway token값과 동일 값으로 추가 어떻게 해결할수 있을까요..?!

  • linux
  • vmware
  • 인공지능(ai)
  • llm
  • ai-agent
  • openclaw
joyj2761 댓글 2 좋아요 0 조회수 130

섹션3 강의들의 나오지 않습니다.

해결됨

클로드코드 | PM/PO서비스기획자를 위한 에이전트 설계

섹션 3의 5~7강 강의가 보이지 않습니다. 확인 부탁드려요

  • 업무-생산성
  • 기획서
  • 인공지능(ai)
  • ai-agent
  • mcp
댓글 1 좋아요 1 조회수 81

[건의][6장][작전1] deprecated 메소드

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

형 ... @Bean public Step threatAnalysisStep( JpaPagingItemReader<Human> humanThreatDataReader, ItemProcessor<Human, TargetPriorityResult> threatAnalysisProcessor, FlatFileItemWriter<TargetPriorityResult> targetListWriter ) { return new StepBuilder("threatAnalysisStep") .<Human, TargetPriorityResult>chunk(10, transactionManager) .reader(humanThreatDataReader) .processor(threatAnalysisProcessor) .writer(targetListWriter) .taskExecutor(taskExecutor()) // deprecated 되어서 안씀 // .throttleLimit() .build(); } ... 에서 .throttleLimit() 부분이 5 이후로 deprecated 된다고 명시되어 있어. 관심사 분리로 인해서 taskExecutor 정의 부분에서 설정하라고 권장하는 것을 확인했거든. 현재 강의가 사실상 Spring Batch 5.x 까지의 기본 내용과 원리를 살펴봤잖아 ? 그렇다 하더라도 혼란을 줄 수 있기 때문에 해당 부분은 삭제하던지 아니면 추가 내용을 기재해야 할 것으로 보여.

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
댓글 2 좋아요 1 조회수 108

Rider대신 VS를 써도 괜찮나요?

해결됨

바닥부터 만드는 언리얼 에이전트 (Liu)

단순 궁금증이지만 가능한지 여쭙고 싶습니다. Rider IDE 대신 VisualStudio2022를 사용해도 강의 진행이 가능한지 궁금합니다.

  • C#
  • unreal-engine
  • web-api
  • 인공지능(ai)
  • ai-agent
trfkvdef 댓글 2 좋아요 0 조회수 219

H2데이터베이스 파일 생성

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] H2 데이터베이스 파일 생성방법 강의자료에서는 저장된 설정이 server가 아닌 embedded로 되어있는데 어떤것을 따라야할까요?

  • java
  • jpa
김주현 댓글 2 좋아요 0 조회수 98

[예제][3장][작전2] windows 에서 마지막 예제

미해결

죽음의 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 의존성 추가 필요

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
qlghwp123 댓글 2 좋아요 1 조회수 97

DFS/BFS

미해결

2026 코딩테스트 올인원 [JAVA]

학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요. 제가 DFS/BFS부분이 많이 약해서 ㅠㅠ 질문입니다. lockers = [[1, 2], [3], [], [0]] 이런 이중행렬인데 인접리스트로 코드 변환 안하고 생각해도 괜찮다는 의미 인거죠…? 감사합니다.

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
제비꼬리 댓글 2 좋아요 1 조회수 80

운영체제 강의 27분 (CPU 스케줄링 - SRTF)

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

CPU 스케줄링에서 SRTF(Shortest Remaining Time First)에 대해 질문 있습니다. 실제 시험에서 SRTF or SRT or SRF 셋 중에 하나를 쓰면 정답인가요? 시중에 있는 기출문제집의 해답에서는 SRT라고 되어 있어서 질문 드립니다.

  • python
  • java
  • c
  • 정보처리기사
  • 정보처리산업기사
준상 댓글 2 좋아요 0 조회수 81

인기 태그

인프런 TOP Writers

주간 인기글