inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

스프링 2.7.x 사용자 오류

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

오류 난 거 몇 가지 적겠습니다. 이제 User 클래스에 @Table(name = "users") 붙여줘야 합니다. h2 버전 올라가면서 테이블 이름 user를 사용 못 합니다. 9:15에서 실행하면 중간에 에러 떠요. 15:44 sql: init: mode: always 그리고 이전까지 h2가 잘 실행됐는데 이번 편에서 localhost:8080/h2-console 접속 시 whitelabel이 계속 나오고 Application 실행 시에 h2가 실행된다는 메시지도 안 나오는 미친 에러 걸려서 (h2 로그 안 나옴) 해결법을 못찾아서 압축하고 드라이브 올리고 마지막으로 확인차 다운받아서 확인해 봤는데 다시 h2 실행이 잘 되네요..? 왜 그런지 아시는 분 댓글 부탁드립니다 ㅎㅎ

  • spring-boot
  • jpa
intshc 댓글 1 좋아요 1 조회수 585

날짜데이터에 문자데이터 입력시 파워쿼리 오류

해결됨

업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우

안녕하세요 강사님 지난번 질문한게 잘 이해가 되지 않습니다. 날짜데이터에 문자데이터가 있어서 오류가 있을 경우 어떻게 수정해야 하는지요..? 원본데이터에 (총합계 데이터가 없는것)과 (결제일에 문자데이터)를 추가해봤고, 새로고침하니 파워쿼리에는 공란으로 나오고, 옆에 1개 오류라고 나왔고요 파워쿼리편집기에서.. 어떻게 오류를 수정하는 건지 잘 모르겠습니다. 파워쿼리는 강의처럼 1. 통화 null 삭제 2. 아래로 채우기 3.결제일 날짜형식으로 변경 순서로 진행했습니다. ( 변경된 유형1이 결제일 날짜형식 변경 단계입니다) 답변 부탁드립니다.

  • excel
  • ms-office
슝슝슝 댓글 1 좋아요 1 조회수 606

extenal libraies 목록이 안뜹니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 이번 강의로 인텔리제이를 공부하고있는 학생입니다. 초반 부분 강사님께서 extenal libraies 목록을 펼치셔서 보여주셨는데 , 제 프로젝트 창에서 extenal libraies의 목록을 보여주는 화살표가 아예 뜨질 않습니다.

  • java
  • spring
  • mvc
  • spring-boot
panguse1 댓글 2 좋아요 0 조회수 258

Querydsl random select 쿼리

해결됨

실전! Querydsl

https://www.inflearn.com/questions/284950/querydsl-random-select%EA%B4%80%EB%A0%A8 2년정도 전에 Querydsl에서 ramdom select는 지원하지 않는다고 하셨는데 지금은 찾아보니 Expressions.numberTemplate()을 통해 SQL Function을 사용할 수 있다고 하는데 권장하는 사용법인지, 올바른 random select 방법인지 궁금합니다. 추가로 같은 결과를 반환하는 random select, distinct, limit, 프로젝션을 한번에 수행하는 2개의 방법인데 2개의 차이는 다음과 같고 어느것을 추천하시는지 궁금합니다. case1의 방법이 limit를 가져오기에 불필요한 count쿼리를 추가로 날리지 않지만 실행 시간이 더욱 큽니다. case1 - Querydsl 사용 테스트 실행시간 : 78ms count 쿼리를 추가로 생성하지 않음 public List<QuizWordDto> findMyWordRandomForQuiz() { return queryFactory .select(Projections.constructor(QuizWordDto.class, myWord.name, myWord.morpheme, myWord.mean)) .distinct() .from(myWord) .orderBy(Expressions.numberTemplate(Double.class, "RAND()").asc()) .limit(40) .fetch(); } case2 - 페이징을 이용하여 Limit 가져오기 테스트 실행시간 : 22ms count 쿼리를 추가로 생성 @Query(value = "SELECT DISTINCT new com.ll.kotudy.word.service.dto.QuizWordDto(mw.name, mw.morpheme, mw.mean) " + "FROM MyWord mw " + "ORDER BY FUNCTION('RAND')", nativeQuery = false) Page<QuizWordDto> findDistinctRandomQuizWords(Pageable pageable); 테스트 코드 @BeforeEach void init() { for (int i = 0; i < 50; i++) { myWordRepository.save(new MyWord("동물" + i, "명사", "사람을 제외한 길짐승, 날짐승, 물짐승 따위를 통틀어 이르는 말." + i)); } } @Test void findMyWordForQuiz() { long startTime = System.currentTimeMillis(); PageRequest pageRequest = PageRequest.of(0, 40); Page<QuizWordDto> distinctRandomQuizWords = myWordRepository.findDistinctRandomQuizWords(pageRequest); long endTime = System.currentTimeMillis(); System.out.println(String.format("코드 실행 시간: %20dms", endTime - startTime)); } @Test void findMyWordForQuiz_querydsl() { long startTime = System.currentTimeMillis(); List<QuizWordDto> myWordRandomForQuiz = myWordRepository.findMyWordRandomForQuiz(); long endTime = System.currentTimeMillis(); System.out.println(String.format("코드 실행 시간: %20dms", endTime - startTime)); }

  • java
  • jpa
  • jpql
SIUUUUE 댓글 1 좋아요 -1 조회수 1431

깃헙 권한 요청 드립니다!

미해결

Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념

인프런 아이디 : mwkang@ecstel.co.kr 인프런 이메일 : mwkang@ecstel.co.kr 깃헙 아이디 : mwkang@ecstel.co.kr 깃헙 Username : goo1949

  • javascript
  • vue.js
mwkang 댓글 1 좋아요 1 조회수 401

2-A 맞왜틀

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 강사님 2-A 맞왜틀 원인을 알고싶습니다! http://boj.kr/7829432fbf3947d7a15bad0490d056d6

  • c++
  • 코딩-테스트
eunjin 댓글 1 좋아요 0 조회수 296

작성글 저장2 - 클래스 분리

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.selfstudy.request.PostCreate]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.selfstudy.request.PostCreate (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2] 안녕하세요 호돌님, 강의의 '작성글 저장2 - 클래스 분리' 파트 초반부분에서 영상대로 따라했는데 테스트가 실패하여서 관련 오류를 찾아 PostCreate 클래스에 @NoArgsConstructor 어노테이션을 이용해 기본생성자를 추가하는 방법으로 오류를 해결했습니다. 그런데 영상에선 분명히 PostCreate 클래스에 따로 기본생성자를 추가한 것이 안보이는데 어떤 차이로인해 오류가 발생한 것인지 궁금합니다

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
nose딩 댓글 1 좋아요 1 조회수 530

Docker - Ubuntu - Docker

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

선생님, 안녕하세요. 좋은강의 정말 감사합니다. 도커를 이용해 aws Ec2에 배포하기 전, 미리 ec2와 같은 환경을 조성해, 그 안에 다시 도커를 설정해 가동해보고 싶은데요. 말이 좀 복잡하지만 정리해서 보여드려보자면 Mac (제 PC) - Docker Ubuntu Container - Docker 설치 및 실행 Mac (제 PC) Docker Ubuntu 이미지 설치 및 컨테이너 접속 2에서 접속한 컨테이너에서 Docker 설치 Docker 실행 여기서 3번 까지는 성공했는데, 4번에서 Docker 실행이 안됩니다. docker -v Docker version 23.0.6, build ef23cbc 도커 버전확인이 되는 걸 보니 도커가 설치된 거 같긴한데, 여기서 간단한 명령인 sudo docker run hello-world 를 입력하면 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'. 이런 메세지가 뜹니다. 구글링을 통해 sudo systemctl start docker 명령어를 입력하면 된다고 해서 sudo systemctl start docker System has not been booted with systemd as init system (PID 1). Can't operate. 입력해봤지만, 여전히 위와 같은 메세지가 나오며 실행되지 않습니다. 혹시 방법이 있을까요??

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
google_user 댓글 1 좋아요 0 조회수 859

혹시 수업자료는 따로 없을까요?

미해결

오라클 성능 분석과 인스턴스 튜닝 핵심 가이드

아무리 찾아봐도 없어서 질문 남겨봅니다

  • oracle
  • dbms/rdbms
newbyd 댓글 1 좋아요 0 조회수 597

섹션5 데이터 추가하기 강의에 질문있습니다.

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

섹션 5 useRef , 데이터 추가하기 강의에서 useRef가 dom을 지정하기 위해 사용한다고 이해했거든요? 근데 데이터를 전달을 위해 const dataID = useRdf(0)하고 dataId.current += 1처럼 변수같이 사용하는데 그냥 변수처럼도 사용한거는건가요? 아니면 저가 이해를 못한 사용 의미가 있는건가요 제 생각엔 그냥 변수 하나 0으로 초기화하고 그걸 써도 되지 않나란 생각이 들어서요

  • javascript
  • react
  • node.js
김강연 댓글 2 좋아요 0 조회수 562

jpa save 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 보통 jpa에서 제공하는 save는 Customer를 저장하고 싶은 경우(모든 컬럼에 값이 설정돼있지 않음) Customer customer = new Customer(); customer.setCustomerName("aa"); customerRepository.save (customer); setter로 설정하기엔 컬럼이 너무 많은데 이게 맞는건지 아니면 컨트롤러에서 파라미터를 OrderVO로 받아서 Entity로 변환한 다음 저장하는게 맞는지 잘 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
이혜정 댓글 1 좋아요 0 조회수 426

다대일 매핑 테일에 대해서.. spring jpa 연관관계

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://b it.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이런식으로 node 와 edge가 다대일 관계로 마인드맵과 연관 관계를 맺으면 관리가 되나여.? node가 리스트 형식으로 저장되서 마인드맵의 id를 fk로 가져와서 이 마인드맵 번호로 관리할려고 하는데? 보통은 마인드맵쪽에서 다대일 관계로 되야하는데 그렇게 하면 이상해서..

  • java
  • jpa
tv0602 댓글 1 좋아요 0 조회수 495

sbyte? 답변해주세요

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

4:29 쯤에서요 sbyte를 설명해주셨나요? 강의 보다가 sbyte는 언급안해주신것같던데 잘모르겠습니다

  • C#
김태원 댓글 1 좋아요 0 조회수 456

복습 방법 및 로드맵 문의

미해결

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 실무 경험은 1년 6개월 정도 있고, Java와 Spring 프레임워크 사용 경험이 있는 주니어 개발자입니다. 그러나 경력 동안 흔들리는 기초 개념도 많고, 제가 잘하고 있는 것인지 의문이 많이 들어서 얼마 전에 퇴사를 하고, 자바 기본 이론책과 인프런 강의를 수강하고 있는데요. 지금은 인프런 강의에 집중해서 공부를 하고 있습니다. 입문 강의 때부터 강의를 쭉 듣고, 인프런 강의노트에 필요한 이야기들은 받아 적고, 코드를 따라치면서 학습을 해나가고 있습니다. 이해가 안가는 부분들은 강의를 멈추고 검색을 해서 추가적으로 알아보는 부분도 있습니다. 곧 스프링 핵심 원리도 완강을 앞두고 있는데요. 뭔가 온전히 제 것이 된 느낌들은 아니어서.. 이걸 조금 더 효율적으로 학습해서 어떻게 제 것으로 더 흡수하면 좋을지가 고민이 됩니다. 1) 완강 이후에 전체적으로 한 번 쭉 복습을 하는 것이 좋을지 궁금합니다. 2) 추천하는 복습 방법이 있을까요? 복습 시에도 그대로 코드를 따라치면서 한 번 더 공부를 하는 게 좋을지. 아니면 기존에 학습했던 코드와 강의 자료를 같이 보면서 학습하는 게 좋을까요? 3) 현재 개인 프로젝트를 준비 중에 있는데, 로드맵 순서 및 유튜브에 업로드된 로드맵 영상처럼 쭉 수강하면서 프로젝트 구현에 힘을 쓰면 좋을지, 아니면 스프링 핵심 원리 강의 수강 이후에 MVC 1편-JPA 활용1 보면서 개인 프로젝트 진행해도 괜찮을지 궁금합니다. 강의 재미있게 잘 보고 있습니다. 감사합니다.

  • spring
  • 객체지향
  • 복습
Woxxy 댓글 1 좋아요 0 조회수 648

[수업질문] mysql_cdc_oc_source_test01.json 업로드 에러

미해결

카프카 완벽 가이드 - 커넥트(Connect) 편

안녕하세요. 'Debezium Source Connector 생성하기' 수강중에 진행이 막혀 질문드립니다. config를 register_connector로 등록할 때 발생한 이슈인데 해당 이슈 : { "error_code": 400, "message": "Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\nYou can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate`" } = 커넥터 구성이 잘못되어 MySQL 서버에 연결할 수 없다로 해석되어 다음과 같은 해결책을 시도해보았습니다. 0. http GET http://localhost:8083/connector-plugins | jq '.[].class' 조회시 io.debezium.connector.mysql.MySqlConnector 정상등록 확인 1.MySQL 서버 정상실행중 확인 2.포트 확인 > SHOW VARIABLES LIKE 'port'; >> 3306 3.네트워크 연결 상태 확인 3-1. mysql 외부접속 허용 확인 : my.cnf에서 bind항목 점검 >> 없음=기본세팅인 허용 3-2. 방화벽 규칙 확인 : Chain INPUT, FORWARD, OUTPUT : Accept , sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 4.SSL 문제인가? >> my.cnf에 따로 ssl-mode 설정은 없음. 5.ifconfig >> enp0s8 inet 192.168.56.101 이렇게 확인했음에도 해결되지않아 도움요청드립니다. config { "name": "mysql_cdc_oc_source_test01", "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", "tasks.max": "1", "database.hostname": "192.168.56.101", "database.port": "3306", "database.user": "connect_dev", "database.password": "connect_dev", "database.server.id": "10000", "database.server.name": "test01", "database.include.list": "oc", "database.allowPublicKeyRetrieval": "true", "database.history.kafka.bootstrap.servers": "192.168.56.101:9092", "database.history.kafka.topic": "schema-changes.mysql.oc", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter": "org.apache.kafka.connect.json.JsonConverter" } } connect 로그는 다음과 같습니다. ERROR Failed testing connection for jdbc:mysql://192.168.56.101:3306/?useInformationSchema=true&nullCatalogMeansCurrent=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&connectTimeout=30000 with user 'connect_dev' (io.debezium.connector.mysql.MySqlConnector:103) com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:244) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:888) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:883) at io.debezium.jdbc.JdbcConnection.connect(JdbcConnection.java:411) at io.debezium.connector.mysql.MySqlConnector.validateConnection(MySqlConnector.java:98) at io.debezium.connector.common.RelationalBaseSourceConnector.validate(RelationalBaseSourceConnector.java:54) at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:459) at org.apache.kafka.connect.runtime.AbstractHerder.lambda$validateConnectorConfig$2(AbstractHerder.java:362) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

  • kafka
  • 데이터-엔지니어링
좋은 낙지 댓글 1 좋아요 0 조회수 1226

AWS EC2 여러 대를 사용할 때 내부 IP로 연결이 안됩니다.

미해결

데브옵스(DevOps)를 위한 쿠버네티스 마스터

워커노드에 파드를 올리고 curl 요청을 보내면 사진처럼 요청이 될 때도 있고 안될 때도 있습니다. 안될 때는 계속 기다리면 타임 아웃 뜹니다 뭐가 문제일까요,,?

  • docker
  • kubernetes
Cad 댓글 1 좋아요 0 조회수 421

for-each 중 break, for loop 사용 간 차이

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

안녕하세요. 강의 잘 듣고 있습니다. 쉽게 잘 풀어 설명해주셔서 재미있게 듣고 있습니다! Array Loop 파트 중 궁금증이 생겨 질문 드립니다. for loop를 이용해 배열 순회: 순회 범위를 조절하는 경우 유리 for-each를 이용해 배열 순회: 배열의 처음부터 끝까지 순회하는 경우 유리 정도로 우선 이해했는데, 만약 for-each를 사용하고 내부에서 조건문을 이용해 break 처리해 반복을 멈출 수도 있다는 생각이 듭니다. 두 가지 방법에 유의미한 차이가 있나요? (e.g. 배열이 큰 경우 속도 차이가 있어 성능 문제로 이어질 수 있나요?) 두 방법 중 무엇을 사용하든 차이가 없다면 기기 성능이 점점 좋아지기 때문에 무의미해진 건가요? 아니면 단순히 가독성의 문제인가요? 위 두 질문 이외에 개발 공부를 하면서 든 궁금한 점이 있어 추가로 질문을 드리고 싶습니다. 어떤 문제를 해결하는데 가능한 방법이 여러가지가 있다면 성능 측면에서 더 좋은 해결 방법을 선택하고 싶습니다. 어떤 방법이 더 성능이 좋은지(빠르고 부하가 덜한지)를 알려면 어떻게 해야 하나요?

  • java
  • 객체지향
hyese ch 댓글 1 좋아요 0 조회수 452

자바와 스프링프레임워크 강의

미해결

비전공자를 위한 개발자 취업 올인원 가이드 [통합편]

여기 강의추천해주시는거는 특정언어나 프레임워크는 제외하셨는데 혹시 자바와 스프링프레임워크 강의중 추천해주실만한것 있을까요?

댓글 1 좋아요 2 조회수 641

final 질문이 있어요.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

섹션 0, dartpad 기본기인 첫 번째 영상을 보고있는데요. Set함수를 배우는 부분에서 final Set<String> names = { ... 하셨는데, 제가 영상 앞에서 배우기로는 final은 타입을 따로 주지 않아도 되고, 값을 바꿀 수 없다는 걸로 배웠는데 제가 따로 테스트해본 결과 (1): final Set<> names ... 로 작성 -> 타입이 없다며, 오류발생. (2): names.add("") -> final로 선언을 하면, 값을 바꿀 수 없는걸로 아는데 값이 추가가능함. 이 부분에서 앞에서 배운 final 개념이 혼동이 와서 이렇게 질문을 남겨봅니다. 리스트에서의 final은 다른 개념인건가요?

  • flutter
  • 클론코딩
김시현 댓글 1 좋아요 0 조회수 378

인기 태그

인프런 TOP Writers

주간 인기글