inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

57분35초 dict형태 관련해서 질문있습니다.

해결됨

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

n <=1이므로 1을 반환받았는데, memo[n]=result가 왜 dict형태로 {2:2} 형태로 저장되는지를 모르겠습니다. 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.

  • python
  • 정보처리기사
멋있는맛 댓글 2 좋아요 0 조회수 222

D 예시의 공백을 인식하지 않는 것 같습니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 D에서 세번째 'ab cd ' 마지막에 공백이 있음에도 공백제거를 하지않아도 True 판단되고있어서 강의 내용과 다릅니다. 제가 작업한 것에 문제가 있는 것인지 확인부탁드려요.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
JH 댓글 2 좋아요 1 조회수 104

업캐스팅 관련 질문드려요. 자식의 형태로 자식을 생성한것도 생성자의 경우 부모를 먼저 호출하는것일까요? 그리고 부모의 형태로 부모를 생성하더라도 매서드의 경우 자식이 오버라이드 하는걸까요?

해결됨

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

질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.

  • python
  • java
  • c
  • 정보처리기사
박기정 댓글 2 좋아요 0 조회수 206

private 인데 static 을 붙인이유

미해결

김영한의 실전 자바 - 중급 1편

강사님 답변을 부탁드려봅니다 왜 private인데 static 을 붙여뒀는지 알수있을까요? 어차피 NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }

  • java
  • 객체지향
플하 댓글 2 좋아요 0 조회수 360

코드 빈칸문제 나오면

해결됨

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

문법적인 빈칸 문제면 괜찮은데 정렬 같은 수학적인게 들어가면 막막하고 풀지 못하겠더라구요ㅠ 이런건 어떻게 공부해야 하나요 여러 문제를 많이 경험하고 풀어보면 해결될까요?

  • python
  • java
  • c
  • 정보처리기사
희원 댓글 2 좋아요 0 조회수 195

static 붙인 이유

미해결

김영한의 실전 자바 - 중급 1편

왜 static 을 붙여뒀는지 알수있을까요? NetworkMessage클래스를 Network클래스 안에서만 쓰려고 private 을 붙여뒀는데 왜 static 을 붙여둔건가요? public class Network { public void sendMessage(String text) { NetworkMessage networkMessage = new NetworkMessage(text); networkMessage.print(); } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }

  • java
  • 객체지향
플하 댓글 1 좋아요 0 조회수 176

최초로그인 -> 로그아웃 후 다시 로그인 시 질문

미해결

스프링 시큐리티 OAuth2

처음 서버 run 하고 google, naver, keycloak 전부 처음에는 아이디, 비밀번호를 입력하는 사용자입력이 필수적인데, 한번 로그인하고 나서는 웹어플리케이션 서버를 종료하고 다시 시작해도 구글, 네이버, keycloak 계정으로 로그인하는 과정이 필요없이 바로 인증이 됩니다. 왜이런건가요? 로그아웃했으면 당연히 다시 로그인하는 과정이 필요한데 이러면 잘못된거 아닌가요?

  • java
  • spring
  • spring-boot
  • oauth
댓글 2 좋아요 0 조회수 373

kafka connector 등록 후 조회 시 에러

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강의에서 알려주신대로 my-source-connect라는 connector를 등록한 후 http://localhost:8083/connectors 로 GET 조회시 아래와 같이 connector가 잘 뜨는 것을 확인하고 http://localhost:8083/connectors/my-source-connect/status 로 GET 조회시 아래와 같은 오류 메시지가 응답됐습니다. { "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "127.0.0.1:8083", "trace": "java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)'\n\tat io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57)\n\tat io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134)\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n" }, "tasks": [], "type": "source" } kafka connect 터미널 로그에는 다음과 같이 찍혀있었습니다. [2024-10-13 23:15:36,747] ERROR WorkerConnector{id=my-source-connect} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector:193) java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)' at io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57) at io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134) at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87) at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185) at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) [2024-10-13 23:15:36,747] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to start connector 'my-source-connect' (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1339) org.apache.kafka.connect.errors.ConnectException: Failed to start connector: my-source-connect at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$startConnector$5(DistributedHerder.java:1305) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:335) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) 다음은 제가 시도해본 해결방법 3가지 입니다. 테이블 이름 수정 https://www.inflearn.com/community/questions/618181/source-connector-%EC%98%A4%EB%A5%98?srsltid=AfmBOooaiA_jLl3ijo0mPjPhnhjM4FQeCSDVdXjgXAAHMsN7sojnFkIR users 테이블은 예약어라고 해서 user1으로 수정해서 POST 요청을 보냈을 때는 아래와 같이 응답이 잘 왔습니다. mariadb-java-client.jar 파일 올바른 폴더에 넣기 https://www.inflearn.com/community/questions/970970/kafka-connectors-%EC%97%90%EB%9F%AC?srsltid=AfmBOoopKwFbCFMIgaLAKg5-4urO7Fzzxwl2ChzmqH8evzNEc4H1ECsD 다음 글을 참고해서 mariadb-java-client.jar 파일을 아래와 같이 kafka 폴더에 옮겨 놓았습니다 플러그인 확인 https://www.inflearn.com/community/questions/245034/localhost-8083-connectors-%ED%98%B8%EC%B6%9C%EC%8B%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4?srsltid=AfmBOophiRaXpfFVHkArBbyirgaPdUfbGUP2W8o5Px-k_ZZDJ2b7wgmf 다음 글을 참고해서 http://localhost:8083/connector-plugins [ { "class": "io.confluent.connect.jdbc.JdbcSinkConnector", "type": "sink", "version": "10.8.0" }, { "class": "io.confluent.connect.jdbc.JdbcSourceConnector", "type": "source", "version": "10.8.0" }, { "class": "org.apache.kafka.connect.file.FileStreamSinkConnector", "type": "sink", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.file.FileStreamSourceConnector", "type": "source", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.mirror.MirrorCheckpointConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorSourceConnector", "type": "source", "version": "1" } ] 다음과 같이 응답이 왔습니다. jdbc connector는 잘 등록된 것 같습니다.. 뭐가 문제일까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
Strongkmh 댓글 2 좋아요 1 조회수 382

공부를 오늘 시작했습니다...

해결됨

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

일요일에 시험을 치는데 일주일 동안 어떻게 공부하는게 좋을까요..???ㅠ 많이 떨립니다

  • python
  • java
  • c
  • 정보처리기사
starkshn 댓글 2 좋아요 0 조회수 334

식별 연산자 질문 드립니다.

해결됨

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

안녕하세요. 식별연산자 질문 드립니다. print (b is c) # False print (b is not c) # True print (b == c) # True -> False print (b != c) # False -> True 위와 같이 되야되는게 아닌가요? 제가 뭘 놓치고 있나요 ;;;

  • python
343536 댓글 2 좋아요 0 조회수 107

선생님 기출은 어디서 풀 수 있을까요?

해결됨

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

선생님 기출은 어디서 풀 수 있을까요?

  • python
  • java
starkshn 댓글 2 좋아요 0 조회수 234

여러가지를 넣은 자료형

해결됨

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

여러가지를 넣은 자료형 2:10에 \ //문자열 보면 chararray[5] = {'a','b','c', d, e } 되어 있는데 칸을 5개로 제한하고 5칸에 null값 포함해서 6개가 넘어버리면 오류가 뜨지 않나요? 마지막엔 null값이 들어간다고 배워서요

  • python
  • java
  • c
  • 정보처리기사
youngsu616 댓글 3 좋아요 0 조회수 161

gradlew build는 성공했는데 .jar이 생성되지 않아요

미해결

안녕하세요 혼자 만들고 싶은게 생겨서 인터넷의 도움을 받으며 만들고 있는 학생입니다. 문제가 두가지 정도 있는데요 먼저 JDK를 zulu17.52.17 버전으로 설치했는데 터미널에서 java -version을 사용해서 확인하면 17.0.12로 나오네요. 시스템 변수에서 JAVA_HOME 추가해서 경로도 설정했고 Path에도 제가 설치한 버전으로 경로를 설정했는데 계속해서 17.0.12로 표시돼요. 두번째는 터미널에서 gradlew build로 빌드를 시도했는데요 classpath No dependencies A web-based, searchable dependency report is available by adding the --scan option. BUILD SUCCESSFUL in 606ms 이것처럼 SUCCESSFUL이라는 출력값은 받았는데 builds/libs 폴더도 생성되지 않았고 .jar 파일도 생성되지 않았어요 도와주실 수 있을까요?

  • gradlew
  • java
  • jar
  • gradle
  • gradle-plugin
김준우 댓글 1 좋아요 0 조회수 306

반복문+조건문 문제풀이 질문입니다.

해결됨

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

16:11에서 a,b,sum에 대한 표중에 sum에 대한 부분이 한칸 밀린것 같습니다. a 1 2 3 4 5 6 b 1 3 5 7 9 11 sum -1 -4 -9 -16 -25 실행안됨 이렇게 해야 사람들이 헷갈리지 않을 것 같네요

  • python
  • java
  • c
  • 정보처리기사
k1mdev 댓글 2 좋아요 1 조회수 89

2024년 1회 코드해석문제 삼항연산자와 비트연산자

해결됨

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

2024년 1회 코드해석문제 삼항연산자와 비트연산자 두번째로 해설해주신 문제인데요. v3 = 29 이면 11101이고 <<2 이렇게 하면 10100으로 20이 되는거 아닌가요? 왜 116이 되는건가요..

  • python
  • java
  • c
  • 정보처리기사
nemo 댓글 3 좋아요 0 조회수 198

pydantic

해결됨

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

from langchain_core.output_parsers import PydanticOutputParser from langchain_core.pydantic_v1 import BaseModel, Field, validator 예제 코드에 맞춰 pydantic_v1을 사용하였지만, deprecate되었다는 경고문이 떴습니다. pydantic_v2가 나왔으니 해당 라이브러리고 교체하라는 내용이였습니다. v1을 v2로 변경해서 적용해보았지만, 빨간줄이 떴습니다. 그래서 저는 임시 방편으로 다음과 같이 코드를 수정했습니다. from pydantic import BaseModel, Field, validator0 해당 부분에 대해서 왜 deprecate가 떴는지, 그리고 왜 deprecate된 코드를 사용할 수 없는 것인지 궁금하여 질문을 남기게 되었습니다. 감사합니다.

  • python
  • 챗봇
  • llm
  • langchain
  • rag
박종범 댓글 2 좋아요 0 조회수 327

직접 구현하는 연결 리스트2- 데이터 추가 삭제1, 코드 리뷰 좀요.

해결됨

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 영상 강의를 보면서 영상에 나온 그림을 보면서 코드를 만들어봤습니다. 그래서 코드 리뷰 좀 받고 싶게 되더군요. 좀 부족하지만 올립니다. 힌트는 동영상에 나오는 그림에 나오는 노드 연결 했을때 나오는 코드(초록색 으로 칠해져 잇는 그림 들) 를 보고 영상을 돌려보면서 만들었습니다. 메인이 된것은 NodeMain3에서 스테틱 메서드 입니다. 반환이 안되면 값이 똑같이 나와서 반환을 해주었습니다.(이유를 모르겠음) 메인 코드 결과 추가1 인덱스 리무브에서, 맨마직꺼 리므브는 안되겟네요. 올리고나서 발견.. 추가2 설명 하라고 하신다면 솔직히 못 하겠습니다. sout로 node 값 찍어 보고, 어찌저찌 하다가 된거 라서요. 답변 부탁 드립니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
생각하는자 댓글 3 좋아요 0 조회수 275

수업자료 질문드립니다

해결됨

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

10:12 안녕하세요. 해당 화면에서 해당하는 수업자료가 3페이지 같은데 맨 하단부분의 내용이 화면과 설명해주신 부분과 달라서 질문드립니다. 아래 캡쳐화면은 수업자료 3페이지 맨 아래 별표 부분입니다. 강의에서는 print("%d", *p) 인데 수업자료는 &p로 되어 있어서요. *p가 맞는 표현이지요??

  • python
  • java
  • c
  • 정보처리기사
오뎅님 댓글 2 좋아요 0 조회수 94

3분02초 상속부분 다시 공부하다가 멘탈이 터졌습니다.

해결됨

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

이전 업캐스팅 부분이랑 상속부분이 이해가 완벽이 되지않아 반복하여 공부 중입니다. 해당 부분을 풀었을때 Parent: 5 Parent default 5 Child default 라고 답을 내놓았는데, 자식클래스의 display부분이 10이네요.. this에서 5를 받아왔기 때문에 5를 출력하지 않나요? 클래스가 다르기 때문에(혹은 static이 아니기때문에) 10이라고 생각해야할까요? 3분02초 부분을 업캐스팅 코드로 수정하였는데요.. class Parent { int x = 25; Parent() { this(5); this.display(); System.out.println("Parent default"); } Parent(int x) { System.out.println("Parent: " + x); } void display() { System.out.println("Parentdis: " + x); } } class Child extends Parent { int x = 10; Child() { super(); System.out.println("Child default"); } void display() { System.out.println("Childdis: " + x); } Child(int x) { System.out.println("Child: " + x); } } public class TestInheritance { public static void main(String[] args) { Child child = new Child(); } } this(5)부분을 Child: 5가 되지않나 싶은데 코드를 돌려보면 Parent: 5가 나오네요. 반면에 this.display()는 Childdis :10을 뽑습니다.. 같은 업캐스팅임에도 불구하고 this가 가르키는게 생성자와 매서드가 다른가요?

  • python
  • java
  • c
  • 정보처리기사
주서 댓글 2 좋아요 0 조회수 237

9분50초 질문있어요

해결됨

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

해당 문제가 있는지 찾아보려했으나 23년1회차 기출에 아무리 찾아봐도 없네요 ㅠㅠ.. 만약 해당 문제가 나온다면 답이 public static String get()이 되는건가요? 코드를 읽어봤을때 get()를 호출하는 부분이 안보여서 오류는 안날거 같은데.. 아니면 제가 빠뜨린 부분이 있을까요?

  • python
  • java
  • c
  • 정보처리기사
주서 댓글 1 좋아요 0 조회수 190

인기 태그

인프런 TOP Writers

주간 인기글