inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

amend commit 질문

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

amend commit 실행하고 insert로 바꿨는데 수정모드 끄는건 어떻게하는건가요 나와지질않네요 insert랑 replace 상태여서 :wq를 입력못하고있습니다 ㅠ insert에서 못벗어나서 종료하고 reset하고 다시 했는데 아예 amend commit이 안되네요.. E325: ATTENTION Found a swap file by the name "C:/Users/user/PycharmProjects/git-tes/.git/.COMMIT_EDITMSG.swp" owned by: user dated: Thu Dec 30 09:41:32 2021 file name: ~user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG modified: YES user name: user host name: DESKTOP-C2BR6PG process ID: 1916 While opening file "C:/Users/user/PycharmProjects/git-tes/.git/COMMIT_EDITMSG" dated: Thu Dec 30 10:00:55 2021 -- More --

  • docker
  • architecture
  • git
  • python
  • oop
  • tdd
  • 동시성
  • cicd
  • 소프트웨어-테스트
댓글 1 좋아요 1 조회수 487

revert 오류

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

이런 상태에서 git revert하면 아래처럼 오류가뜹니다. $ git revert 7a6a52c error: Your local changes to the following files would be overwritten by merge: a Please commit your changes or stash them before you merge. Aborting fatal: revert failed a가 merge가 되있어서 revert가 안된다는뜻인가요?

  • git
  • python
  • tdd
  • docker
  • architecture
  • oop
  • 동시성
  • 소프트웨어-테스트
  • cicd
댓글 1 좋아요 1 조회수 1309

통합테스트에서 @Autowired

미해결

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

안녕하세요! 강의 너무 잘 듣고 있습니다. 듣다가 잘 모르겠는 점이 있어서 질문을 드립니다. 기존 서비스 테스트코드에서는 @BeforeEach로 의존주입을 했는데, 통합테스트에서는 아래와 같이 @Autowired로 끌어온다고 하셨습니다. 테스트코드인데도 SpringConfig코드에서 아래의 서비스와 레포지토리 객체를 실제로 끌어오는 건가요?

  • spring
  • java
  • spring-boot
  • MVC
hyewon981019 댓글 1 좋아요 1 조회수 249

컬렉션 값 연관 경로 : 명시적 조인 질문

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 명시적 조인 예시로 보여주신 다음 JPQL에 궁금한적이 있습니다. select m.username from Team t join t.members m 위 코드에서 alias m은 무엇에 대한 별칭인가요? 1. t.members as m 위 코드 처럼 team과 members를 묵시적으로 조인한 결과 릴레이션을 m이라 칭한다는 의미인가요?? 아니면... 2. (Team t join t.members) m 위 코드처럼 t와 t.members 를 조인한 릴레이션을 m이라 칭한다는 의미인가요?? PPT를 보면 "FROM 절에서 명시적 조인을 통해 별칭을 얻는다" 라고 하셨는데, 명시적 조인을 통해 => 즉 2번 을 통해 m을 얻는다는 의미 인가요? 이게 한줄로 써있다 보니까 햇갈리는것 같습니다 ㅠ.ㅠ

  • 명시적조인
  • join
  • java
  • JPA
  • 컬렉션값연관경로
zbqmgldjfh 댓글 1 좋아요 1 조회수 373

파이썬 FinanceDataReader 질문

미해결

코드와 에러는 붙임과 같습니다. 1. 한국주식은 가격데이터가 불러와지나 미국주식은 에러 출력(no tables found) 2. 다른 사람 PC에서는 동일코드 정상 동작 확인 에러의 원인과 해결책을 알고 싶습니다.

  • python
훈훈한 치타 댓글 0 좋아요 0 조회수 308

목차 활성화가 안나옵니다.

미해결

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기

알려주신 두가지 방법으로 설치를 실행했지만, 목차 활성화 창이 뜨지 않습니다. 왜 그럴까요? 알려주시면 감사하겠습니다.

  • numpy
  • 웹-크롤링
  • pandas
  • python
  • seaborn
  • matplotlib
  • plotly
  • 웹 스크래핑
윤경주 댓글 2 좋아요 1 조회수 728

안녕하세요 영한님 질문이있습니다

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니요 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요 강의잘보고있습니다 다름이 아니라 제가 취업준비하려는 회사가 jsp를 사용하는데 jpa활용2편 까지의 기능을 타임리프 대신 jsp로 적용하여 구현할수있는지 궁금합니다 구현하려면 코드수정이 컨트롤러 에서도 일어나야하는지 궁금합니다!

  • jsp
  • thymeleaf
  • JPA
  • java
  • spring-boot
  • spring
댓글 1 좋아요 0 조회수 191

회원가입 동시성 문제

해결됨

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

안녕하세요. 강의를 보다가 질문 드립니다. 회원가입 중복처리 부분에서, 김영한님 말대로 회원가입하는 사람수가 매우 많으면 validateDuplicateMember만으론 부족하여, 결국 동시성문제가 발생 할 수밖에 없습니다. 그래서 name에 대하여 unique제약조건이 필수인데요. 그런데 생각해보면 그럴거면 굳이 validateDuplicateMember를 할 필요없이 그냥 unique제약조건을 걸어놓기만 해도 충분합니다. 제가 보기에는 에러처리를 괜히 두번해주는 느낌을 받았거든요. 여기서 이렇게 해주는 이유는 1. 단순 예시를 보여주기 위함. 2. 도메인에 unique제약 조건을 거는 것만으론 테스트를 통과하지 못함(@Commit을 추가하지 않는 이상). 이부분이 테스트 할때 좀 거슬리긴 하더라구요. 3. 좀 더 빠른 반응성? 4. db쪽 예외는 나중에 앞단에서 처리해주기 까다로움. 5. 그 외 다른 이유가 있음. 이정도 생각해보았는데요. 어떤 이유에서 인지 알려주시면 감사하겠습니다.

  • 회원가입
  • join
  • spring
  • 웹앱
  • 동시성
  • unique
  • JPA
  • java
  • spring-boot
whrbdnjs33 댓글 1 좋아요 0 조회수 1264

8분 19초에 gst는 왜치는건가요?

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

gst 치는이유 알고싶습니다.

  • git
  • docker
  • python
  • architecture
  • tdd
  • oop
  • 동시성
  • 소프트웨어-테스트
  • cicd
댓글 1 좋아요 1 조회수 396

git init 오류

미해결

모든 개발자의 실무를 위한 올인원 기본기 클래스

0 git init 부터 막혔는데 해결법 계속 찾고 있는데 뭐가 문제일까요..? git : 'git' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + git init + ~~~

  • architecture
  • git
  • tdd
  • oop
  • docker
  • python
  • cicd
  • 동시성
  • 소프트웨어-테스트
댓글 2 좋아요 1 조회수 1126

H2 database GenerationType.IDENTITY 오류 질문입니다.

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. <dependencies> <!-- H2 데이터베이스--> <dependency> <groupId> com.h2database </groupId> <artifactId> h2 </artifactId> <version> 2.0.202 </version> </dependency> <!-- JPA 하이버네이트--> <dependency> <groupId> org.hibernate </groupId> <artifactId> hibernate-entitymanager </artifactId> <version> 5.6.1.Final </version> </dependency> </dependencies> @Entity public class Member { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private Long id ; ... } public class EntityMapping { public static void main (String[] args) { EntityManagerFactory emf = Persistence. createEntityManagerFactory ( "hello" ) ; EntityManager em = emf.createEntityManager() ; EntityTransaction tx = em.getTransaction() ; tx.begin() ; try { Member member = new Member() ;; member.setUsername( "AAA" ) ; em.persist(member) ; tx.commit() ; } catch (Exception e){ tx.rollback() ; e.printStackTrace() ; } finally { em.close() ; } emf.close() ; } } 실행하면 콘솔에서 Hibernate: drop table if exists Member CASCADE Hibernate: create table Member ( id bigint generated by default as identity, name varchar(255) not null, primary key (id) ) 와 같이 테이블이 생성되고 Hibernate: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) insert 쿼리는 위와 같이 데이터베이스로 호출하는것이 보입니다. [오류로그] 12월 23, 2021 10:44:53 오후 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: NULL not allowed for column "ID"; SQL statement: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) [23502-202] javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:780) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:760) at hellojpa.EntityMapping.main(EntityMapping.java:18) Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:200) at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3885) at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:330) at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287) at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:123) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:774) ... 2 more Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "ID"; SQL statement: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) [23502-202] null이 들어 갈수 없다고 나오는데 강의중에는 어떻게 오류가 안나고 되는지 궁금합니다.

  • java
  • JPA
댓글 3 좋아요 2 조회수 6101

coef와 그래프 모습에서 보이는 회귀선 간의 관계 문의

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요. 아래와 같이 13개 feature 모두 그래프로 그려보았습니다. 그런데 하단을 보면 AGE, B, INDUX, TAX feature는 price와의 회귀 직선이 음의 상관관계로 나오는데, 강의에서 coef를 보면 0으로 나옵니다. 그리고 RAD는 그래프로 보면 음의 상관 관계인데 coef는 0.4가 나옵니다. 개별 feature들과 price간의 관계를 보면 음의 상관관계인데 모든 feature들을 이용해 linear regression을 만들어봤을 때의 coef는 각 개별 상관관계와는 다르게 될 수도 있는 것인지요?

  • 통계
  • python
  • 머신러닝 배워볼래요?
Abraham 댓글 1 좋아요 0 조회수 381

MyBatis vs JPA vs JPA + querydsl 질문이 있습니다.

미해결

실전! Querydsl

JPA(ORM) 장점 1) RDB에 종류와 관계없이 사용 가능하다. 추후 DB 변경이나 코드 재활용에 용이하다. 2) 비지니스 로직에 집중할 수 있다. 3) 테이블 생성, 변경 등 엔티티 관리가 간편하다. 4) 쿼리에 집중할 필요 없어 빠른 개발이 가능하다. 단점 1) 어렵다. 단방향, 양방향, 임베디드 관계 등 이해해야할 내용이 많으며, MyBatis(SQL Mapper) 장점 1) JPA에 비해 쉽다. SQL 쿼리를 그대로 사용하기에 복잡한 Join, 튜닝 등을 좀더 수월하게 작성 가능하다. 2) SQL의 세부적인 내용 변경 시 좀 더 간편하다. 3) 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다. 단점 1) 데이터 베이스 설정 변경 시 수정할 부분이 너무 많다. (Oracle의 페이징 쿼리를 MySQL에서 사용 불가능!) 2) Mapper작성부터 인터페이스 설계까지 JPA보다 많은 설계와 파일, 로직이 필요하다. 3) 특정 DB에 종속적이다. Querydsl 장점 1) 쿼리를 자바 코드로 작성 2) 문법 오류를 컴파일 시점에 잡을 수 있음. 3) 쉬운 SQL 스타일 문법(복잡한 쿼리 작성 용이) 질문 : Querydsl 초반부만 듣고 있는 수강생입니다. 1) 서비스가 MVC + MYBatis에서 JPA + querydsl 바꾸는 점에 있어 생기는 기본적인 문제들이 있을까요? 2) QueryDSL 이 MyBatis 를 대신해 커버 가능할까요 ?

  • java
  • JPA
수환무 댓글 2 좋아요 3 조회수 4065

싱글톤에서 Early, Lazy 초기화의 차이

해결됨

코딩으로 학습하는 GoF의 디자인 패턴

안녕하세요. 싱글톤에서 Early, Lazy 초기화의 차이를 공부하기 위해 클래스 로드에 개념을 처음으로 딥하게 공부해보고 있습니다. 클래스 로드와 사용에 따른 초기화간 heap 메모리 할당이 되는지도 공부하기 위해 위와 같이 트래킹해봤습니다. 저는 트래킹 결과를 보고 아래와 같이 해석했습니다. 1. 사용하지 않으면 early, lazy 모두 초기화되지 않는다. 2. early 는 getInstance() 메소드로 진입할 때 초기화 된다. lazy 는 getInstance() 메소드가 끝날 때 Holder 를 통해 초기화 된다. 하지만 강의에는 early 초기화시 사용하지 않아도 생성된다고 말씀해주셨습니다. 그렇다면 캡쳐 1에서 인스턴스가 보여야된다고 생각했는데 보이지 않아 혼동이 와서 질문 드립니다. 혹시 제가 개념이 헷갈리거나 트래킹을 잘못하고 있는 것일까요..? ㅠㅠ public class App { public static void main ( final String [] args) { singleton () ; } private static void singleton () { final EarlyInitializationSingleton early = EarlyInitializationSingleton . getInstance () ; // 캡쳐 1 final LazyInitializationSingleton lazy = LazyInitializationSingleton . getInstance () ; // 캡쳐 3 System . out . println ( "end" ) ; // 캡쳐 5 } } public class EarlyInitializationSingleton { private static final EarlyInitializationSingleton INSTANCE = new EarlyInitializationSingleton () ; private EarlyInitializationSingleton () { } public static EarlyInitializationSingleton getInstance () { return INSTANCE ; // 캡쳐 2 } } public class LazyInitializationSingleton { private LazyInitializationSingleton () { } private static class LazyInitializationSingletonHolder { private static final LazyInitializationSingleton INSTANCE = new LazyInitializationSingleton () ; } public static LazyInitializationSingleton getInstance () { return LazyInitializationSingletonHolder . INSTANCE ; // 캡쳐 4 } }

  • 디자인-패턴
  • java
Byung Hyun Choi 댓글 1 좋아요 0 조회수 504

API 파이썬 connection error 발생 , 클라이언트 인증서 , CA인증서, 클라이언트 개인키 관련 옵션 코드 작성

미해결

파이썬으로 API 호출하는 과정에서 SSL 핸드쉐이크 오류가 발생하여 관련 기관에 물어보니 아래와 같은 답변을 받았습니다. SSL 핸드쉐이크 오류가 발생한 이유는 클라이언트 인증서, CA인증서, 클라이언트 개인 키 등의 정보를 옵션으로 사용하여야 하는데 이러한 옵션들이 없어 상호 인증에 실패 하였다고 합니다. 쿼리문 으로 curl -k --tlsv1.2 --cacert ./ca-chain.crt --cert ./client.crt --key ./client.key -H 위와 같은 설정이 있어야 한다고 합니다. 맨 처음에 tlsv1.2 부분은 알아보니 파이썬에서 import ssl context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) 구문을 추가하면 된다고 배웠습니다. 그다음 cacert ./ca-chain.crt --cert ./client.crt --key ./client.key 이 부분은 어떻게 파이썬으로 코드로 구현해야 할지 몰라서 질문을 올리게 되었습니다. 긴글읽어주셔서 감사합니다. 항상배움의 자세를 갖추어 열심히하고자합니다. 도움주시면 정말 너무감사하겠습니다.

  • python
  • 파이썬
  • api
  • connectionerror
  • 인증서
  • ssl
김현준 댓글 0 좋아요 0 조회수 349

enum 객체는 멀티쓰레드 환경에서 안전한가요?

해결됨

코딩으로 학습하는 GoF의 디자인 패턴

안녕하세요. 기선님. 좋은 강의 감사합니다. 이번 수업을 들으면서 궁금한 점이 생겨 질문 남깁니다. 1:34초쯤 Settings enum 클래스에 number 필드 및 게터 세터를 생성하셨는데, 이러한 상황에서도 동기화 블록없이 커스터마이징된 enum 객체가 쓰레드-세이프한건가요? 답변 부탁드립니다. 감사합니다.

  • java
  • 디자인-패턴
정현주 댓글 1 좋아요 1 조회수 437

질문있습니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

안녕하세요 강사님! solution함수에서 파라미터 n은 사용하지 않으셨는데 그럼 없어도 상관없는건가요?

  • java
  • 코테 준비 같이 해요!
lamisu77 댓글 0 좋아요 0 조회수 295

블로깅할 때 주의점 & 강의 장표의 질문들의 답

해결됨

코딩으로 학습하는 GoF의 디자인 패턴

안녕하세요. 싱글톤 하나만 들었는데도 안일하게 사용하고 있던 지식들이 채워지는 너무너무 좋은 강의입니다. 강의를 들으면서 공부하는 데 질문이 있어 남깁니다. --- 1. 저는 공부하는 자료에 대해서 가능하면 블로깅을 남기고 있습니다. 남에게 설명할 수 있는 수준이 되어야만 진정으로 이해하는 것이라고 생각하기 때문입니다. 혹시 강의 내용을 블로깅하는데 있어 제약사항이 있을까요? ex) - 강의 장표 캡쳐 불가 - 강의 장표의 질문 노출 불가 2. 동영상 뿐만이 아니라 강의 장표에 많은 질문들로 한번 더 생각할 기회를 주시는 것 같아 너무너무 감사합니다. 물론 제가 먼저 찾고 공부하는 것이 우선이지만, 제가 답을 냈을 때 비교를 할 수 있는 답이 있으면 더 좋을 것 같은데 혹시 공개되어 있을까요? 다시 한번 좋은 강의 너무너무 감사합니다!!!!

  • 블로깅
  • java
  • 디자인-패턴
Byung Hyun Choi 댓글 1 좋아요 1 조회수 465

Could not find querydslplugin 문제 (해결완료)

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 아래 처럼 에러가 뜹니다. Could not find gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10 로딩이 안되네요. buildscript { dependencies { classpath( "gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10" ) } } plugins { id 'org.springframework.boot' version '2.6.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } apply plugin : "com.ewerk.gradle.plugins.querydsl"

  • querydsl
  • java
  • JPA
  • gradle
  • java
  • spring
  • configuration
  • spring-boot
댓글 4 좋아요 2 조회수 654

인기 태그

인프런 TOP Writers

주간 인기글