inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

19강 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 선생님 늘 친절하게 답변해주셔서 감사합니다. 19강에서 궁금한 게 있는데 service와 repository를 스프링 빈으로 만들기 전에 왜 jdbctemplate에 의존할 수밖에 없는 건가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
댓글 2 좋아요 1 조회수 687

예제를 하다 오류가 발생되어 문의합니다.

해결됨

Flutter 앱 개발 기초

아래 코드를 복사 붙이기 하니깐 오류가 나네요...어떻게 수정해야하나요? 추가하기 버튼을 누를 때, textController 를 이용하여 TextField 에 입력된 가져와 보도록 하겠습니다. 코드스니펫을 복사해 132번째 라인 맨 뒤에 추가해 주세요. String job = textController.text; // 값 가져오기 print(job);

  • flutter
Kyung-il In 댓글 2 좋아요 2 조회수 568

쿼리가 강의보다 더 나오고 있습니다.

미해결

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

"/api/v2/simple-orders " 이 url로 호출했을 때, (1) order테이블에서 가져오는 쿼리 1번 => (2개의 데이터) (2) member 쿼리 1번 * 2 (3) delivery 쿼리 1번 * 2 해서 총 5번이 나오는 걸로 알고 있습니다. 근데 현재 로그에서 총 쿼리가 7번이 나가고 있습니다. 코드를 따라쳐보면서 했는데도 왜 다르게 나가는지 원인을 짐작하기가 힘듭니다. 현재 제 쿼리는 (1) order 테이블에서 가져오는 쿼리 1번 (2) member 쿼리 1번 (3) delivery 쿼리 1번 (4) delivery id 조건절로 order 찾는 쿼리 1번 (2)~(4)번 한 번 더 반복 이렇게 해서 총 7번 쿼리가 나가게 됩니다. 쿼리만 보고 어떤 부분때문에 더 나가게 됐는지 짐작할 수 있을까요? 엔티티 간의 연관관계 매핑은 강의를 보면서 했기 때문에 제가 중간에 놓쳤나 생각이 들기도 하네요ㅜ 원인을 짐작하기가 어렵습니다. select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only 2023-03-23T19:03:54.387+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-03-23T19:03:54.390+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-03-23T19:03:54.393+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2023-03-23T19:03:54.395+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-03-23T19:03:54.396+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-03-23T19:03:54.397+09:00 DEBUG 56506 --- [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=?

  • java
  • spring
  • spring-boot
  • jpa
감자 댓글 5 좋아요 9 조회수 1382

createSchedule 함수의 리턴 값이 null 이 나올 수가 있다며 에러가 납니다

미해결

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

안녕하세요 강의 너무 잘 듣고 있습니다. 강의를 쭉 따라오다가 글작성시 key를 리턴 받으려고 했는데 null 이 들어오길래 drift_database 파일로 와서 Future<int> 를 명시했는데요 (그전에는 요것을 제가 추가를 안해놓고 createdSchedule 부터 작성했었어요.) 그랬더니 아래와 같이 null 이 들어올 수 있다며 ? 를 붙이라고 에러가 나네요. 이것 처음에 디비 생성할 때부터 (Future<int>를 명시안해놓고 생성했기 때문에) 이미 잘못된 걸까요?

  • flutter
  • 클론코딩
Jihyun Won 댓글 1 좋아요 0 조회수 330

다대다 데이터 조회 질문입니다.

해결됨

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

강사님 강의를 보고 최근에 프로젝트를 하다 궁금한게 생겨 질문 남기게 되었습니다. Product <-> Category Entity 다대다 매핑을 위해 product(OneToMany) <-> product_category(ManyToOne) <-> category(OneToMany) 위와 같은 테이블로 매핑한 상태이고 join 상속 전략으로 district_category 테이블도 생성 하였습니다. district_category를 쿼리 파라미터로 받고 해당 district_category를 갖고 있는 상품들을 검색하고 페이징을 하는 로직을 짠다고 했을때 두가지 방법이 생각났는데 둘 중 어느게 더 적합한지 모르겠습니다 검색어를 바탕으로 product_category에서 Product를 EntityGraph로 같이 찾은 후에 찾은 ProductCategory.getproduct() 와 같은 방식 SearchService Category category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return new ProductCategoryToProductPage(productCategoryRepository.findAllByCategory(pageable, category)); ProductCategoryRepository @EntityGraph(attributePaths = "product") Page<ProductCategory> findAllByCategory(Pageable pageable, Category category); ProductCategoryToProduct public ProductCategoryToProductPage(Page<ProductCategory> page) { this.content.addAll(page.getContent().stream() .map(ProductCategory::getProduct) .map(ProductListGetResponseDTO::new) .collect(toList())); this.totalPages = page.getTotalPages(); this.totalElements = page.getTotalElements(); this.pageNumber = page.getNumber() + 1; this.size = page.getSize(); } 발생 쿼리문 select districtca0_.category_id as category2_1_, districtca0_1_.parent_id as parent_i3_1_, districtca0_.district_enum as district1_2_ from district_category districtca0_ inner join category districtca0_1_ on districtca0_.category_id=districtca0_1_.category_id where districtca0_.district_enum=? select productcat0_.product_category_id as product_1_8_0_, product1_.product_id as product_1_7_1_, productcat0_.category_id as category2_8_0_, productcat0_.product_id as product_3_8_0_, product1_.created_date as created_2_7_1_, product1_.content_detail as content_3_7_1_, product1_.product_content as product_4_7_1_, product1_.product_name as product_5_7_1_, product1_.product_price as product_6_7_1_, product1_.product_status as product_7_7_1_, product1_.product_thumbnail as product_8_7_1_ from product_category productcat0_ left outer join product product1_ on productcat0_.product_id=product1_.product_id where productcat0_.category_id=? limit ? select count(productcat0_.product_category_id) as col_0_0_ from product_category productcat0_ where productcat0_.category_id=? 검색어를 바탕으로 product에서 직접 찾기 (데이터 뻥튀기의 문제는 쿼리dsl 이용 productId로 groupBy로 해결) 글 쓰고 생각해보니 A카테고리는 B라는 상품 안에서는 하나밖에 있을 수가 없으니 굳이 groupBy를 안써도 될거 같네요 SearchService Category category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return productRepository.findAllByCategory(pageable, category); ProductRepository @Override public Page<Product> findAllByCategory(Pageable pageable, Category category) { List<Product> content = queryFactory.selectFrom(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .groupBy(product.productId) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); Long total = queryFactory .select(Wildcard.count) .from(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .fetchOne(); return new PageImpl<>(content, pageable, total); } 발생 쿼리문 select districtca0_.category_id as category2_1_, districtca0_1_.parent_id as parent_i3_1_, districtca0_.district_enum as district1_2_ from district_category districtca0_ inner join category districtca0_1_ on districtca0_.category_id=districtca0_1_.category_id where districtca0_.district_enum=? select product0_.product_id as product_1_7_, product0_.created_date as created_2_7_, product0_.content_detail as content_3_7_, product0_.product_content as product_4_7_, product0_.product_name as product_5_7_, product0_.product_price as product_6_7_, product0_.product_status as product_7_7_, product0_.product_thumbnail as product_8_7_ from product product0_ inner join product_category productcat1_ on product0_.product_id=productcat1_.product_id where productcat1_.category_id=? group by product0_.product_id limit ? select count(*) as col_0_0_ from product product0_ inner join product_category productcat1_ on product0_.product_id=productcat1_.product_id where productcat1_.category_id=?

  • java
  • jpa
말차 댓글 1 좋아요 0 조회수 362

실무에서는 스크립트를 다듬는다고 하셨는데 지금 예제에서는 어떤 점을 다듬어야 할까요?

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 영한님, 강의 잘 듣고 있습니다! 강의에서 JPA가 생성해준 테이블을 그대로 쓰면 안되고, JPA가 쓴 DDL을 다듬어서 쓴다고 하셨는데 생각해보니 저는 토이프로젝트에서 항상 JPA가 만들어주는 그대로 썼던 것 같습니다. 그렇다면 지금 예제에서는 어떤 점을 보완하는게 필요할까요? 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
MyCatIsRockstar 댓글 1 좋아요 2 조회수 501

Windows로 작업한 내용물을 그대로 Ios빌드용으로 사용가능한가요?

미해결

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

안녕하세요! 앱 만들어보고 싶어서 수강신청을 하게됐습니다. 반갑습니다ㅎㅎ 빌드 환경에서 궁금한게 있습니다...! Windows에서 작업한 프로젝트를 그대로 Ios에서 빌드용 프로젝트로 사용이 가능한가요? 혹시 IOS에서는 IOS 빌드 및 출시와 Android 빌드 및 출시 두 개 다 가능한가요? 만약에 2번 경우가 가능하면 아에 맥북을 사는 것도 고려를 해봐야할것같네요...ㅎㅎ 그럼 중급수업까지 잘 들어보겠습니다. 감사합니다.

  • flutter
  • 클론코딩
모름 댓글 1 좋아요 0 조회수 2030

SpringConfig import문제

미해결

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

강의영상에서는 MemberService가 제대로 import 되고 MemberService의 메서드도 불이 잘들어가있는데 왜 import가 안되는지 모르겠습니다. 앱실행하면 구동은 잘됩니다

  • java
  • spring
  • mvc
  • spring-boot
Jd Lee 댓글 1 좋아요 0 조회수 437

flutter_secure_storage 를 설치하고 난후 안드로이드 에뮬레이터가 실행이 안됩니다.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

flutter_secure_storage를 추가하고난후 앱 실행을 하면 안드로이드 에뮬레이터가 실행이 됐다가 바로 꺼집니다. 혹시 원인을 알수 있을까요? 추가: flutter_secure_storage를 제거하고 안드로이드 에뮬레이터를 다시 실행하면 정상적으로 작동이 되는걸 확인했습니다.

  • flutter
  • 하이브리드-앱
hyokil jung 댓글 2 좋아요 0 조회수 535

calendar_scheduler update 쿼리의 이해 안되는 부분 3가지

미해결

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

FutureBuider if문 해석 질문 FutureBuilder에서 if(snapshot.hasData && startTime == null){ } 이 부분이 이해가 가지 않습니다. 강의에서는 "데이터는 존재하지만 우리가 한번도 startTime을 설정하지 않았을 경우"라고 조건을 해석해주셨는데, 우리가 만약 스케줄 카드 내용을 수정하는 경우라면 분명 startTime(시작시간)라는 변수에 몇시인지 입력이 되어있는 상태일텐데 왜 startTime을 설정하지 않았을 경우를 고려해야 하는지 몇번을 돌려봐도 이해가 잘 안됩니다. initialValue 질문 initialValue에서 왜 기본값을 꼭 지정해주어야만 스케줄 카드 내용을 수정할 수 있는지 정확히 이해가 가지 않습니다. 만약 기본값이 안되어있다면 아예 카드 내용을 수정할 수 없는지 궁금합니다. widget. 질문 이부분은 전부터 계속 궁금했는데, 어떤 변수에는 widget을 붙이는 경우가 많던데 특별히 widget이 필요한 변수인지 확인할 수 있나요? 답변 부탁드립니다...

  • flutter
  • 클론코딩
elcy12 댓글 1 좋아요 3 조회수 424

onpressed에서 함수 두개 사용하기

미해결

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

안녕하세요 선생님. 플러터 공부 중에 궁금한 것이 있어 문의드렸습니다. 부모 위젯에서 Voidcallback파라미터로 함수를 불러오고, 그 함수를 버튼 위젯의 onpressed에서 불러와서 활용할 수 있다는 것을 활용하여 자식 위젯에서의 함수와 함께 onpressed에서 부모위젯의 함수를 사용하고자 코드를 작성해보았습니다. 오류 없이 실행되긴 하지만, 부모위젯에서 가져온 voidcallback함수가 작동하지 않습니다. 어떻게 해야 버튼을 눌렀을 때, 자식 위젯에서의 함수와 부모위젯에서의 함수를 함께 실행할 수 있나요? 부모위젯과 자식 위젯 모두 Stateful함수이고, 부모위젯에서 가져온 함수는 이 함수이며, 자식위젯에서 함께 실행하고자 하는 함수는 위와 같습니다.

  • flutter
  • 클론코딩
kimsuin 댓글 1 좋아요 0 조회수 811

patchBasket 실행시 badResponse 에러가 발생합니다.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

장바구니 기능 구현 중 Optimistic Response 부분에서 dio패키지의 badRespons 에러가 납니다. 요청 body에 포함될 PatchBasketBody와 PatchBasketBodyBasket도 틀린 곳이 없는 것 같은데 계속 에러가 납니다. patch_basket_body.dart import 'package:json_annotation/json_annotation.dart'; part 'patch_basket_body.g.dart'; @JsonSerializable() class PatchBasketBody { final List<PatchBasketBodyBasket> basket; PatchBasketBody({ required this.basket, }); Map<String, dynamic> toJson() => _$PatchBasketBodyToJson(this); } @JsonSerializable() class PatchBasketBodyBasket { final String productId; final int count; PatchBasketBodyBasket({ required this.productId, required this.count, }); factory PatchBasketBodyBasket.fromJson(Map<String, dynamic> json) => _$PatchBasketBodyBasketFromJson(json); Map<String, dynamic> toJson() => _$PatchBasketBodyBasketToJson(this); } basket_provider.dart Future<void> patchBasket() async { await repository.patchBasket( body: PatchBasketBody( basket: state .map( (e) => PatchBasketBodyBasket( productId: e.product.id, count: e.count, ), ) .toList(), ), ); } 이 에러 때문에 진도 나가기가 힘드네요. ㅜㅜ... 한번 살펴 봐 주시기 바랍니다. 제 github 저장소 주소는 https://github.com/qoren98/flutter-real-app 입니다.

  • flutter
  • 하이브리드-앱
qoren98 댓글 2 좋아요 0 조회수 637

안드로이드 스튜디오에서 비디오파일을 못읽습니다.

미해결

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

안드로이드 스튜디오에서 비디오파일을 못읽습니다. 파일 형식 재정의를 들어가도 동영상 파일을 지정하는 것을 못찾겠습니다. 도와주세요ㅜ

  • flutter
  • 클론코딩
김지현 댓글 4 좋아요 0 조회수 741

저 vs code를 사용중인데, 코팩님처럼 코드 자동완성을 하고 싶은데요... 방법을 모르겠어요...

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

저 vs code를 사용중인데, 코팩님처럼 코드 자동완성을 하고 싶은데요... 방법을 모르겠어요... 이런저런 확장을 다 깔아봐도 잘 안돼요... Navigator.of(까지만 쳐도 context)똭 나오고 MaterialPageRoute( 까지만 치니까 안에 파라미터로 뭘 넣어야하는지 포맷까지 똭 나오는 그런 거... vs 코드는 안되는 건가요? ㅠㅠ 그냥 공부하는 거랑은 상관 없는 얘기긴 한데 은근히 불편해서... 답변해주시면 감사하겠습니다.. ^^ 기다릴게용 ㅎ

  • flutter
  • 하이브리드-앱
HwiD Upside 댓글 1 좋아요 0 조회수 609

Badge Flutter 3.7 현재 상환

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

지금 flutter 3.7상태에서는 바로 Badge를 사용하지 못합니다 Flutter 3.7에서는 Badge 위젯이 Material 라이브러리에 도입되었으므로 모호한 가져오기를 피하려면 다음과 같이 패키지를 가져와야 합니다. import 'package:badges/badges.dart' as badges; 그런 다음 "Badge" 위젯 대신 "badges.Badge" 위젯을 사용합니다. 이 패키지의 모든 클래스에 대해 동일합니다.

  • flutter
  • 하이브리드-앱
이태진 댓글 1 좋아요 7 조회수 901

Music player를 실행시켜 음악을 재생시키는 방법 문의 드림.

미해결

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

안녕하세요. 모바일 앱에서 블루투스로 헤드셋과 연결 후, 헤드셋 신호를 받아 스마트폰 내부의 음악을 실행하는 프로젝트를 하고 있습니다. 모바일 앱 쪽 담당이구요. 블루투스 신호는 잘 받아서, 이 신호가 play , pause, seek등은 구별할 수 있습니다. 다만, 고객사 요청사항은 특정음악을 실행하는 음악플레이어를 만들어 달라는게 아니라, 사용자가 방금 들었던 플레이어의 음악을 재생하거나, 사용한 음악플레이어가 없을때는 스마트폰 내부의 가장 최근 다운받은 음악을 실행시켜 달라는 것입니다. 그런데, pub.dev 검색해보면, 음악플레이어를 만드는 라이브러리는 많은데, 가장 최근에 오픈한 음악플레이어를 찾아서 재생하는 방법은 없는 것 같습니다. audio session 이 그역할을 할 것 같기도 한데, 정확하지는 않구요. 해결책을 찾고 싶어, 강사님 조언을 듣고자 질문 올립니다. <요약> flutter 앱에서 버튼을 클릭하면, 가장최근 실행된 음악플레이어 (유튜브, 유튜브뮤직, 멜론, 기본 플레이어 등) 를 실행시키고 음악을 재생하는 방법, 플레이어가 실행되지 않았다면, 가장 최근 다운받은 mp3 등의 음악파일을 실행하는 방법을 알고 싶습니다.

  • flutter
  • 클론코딩
admin 댓글 1 좋아요 0 조회수 545

JsonSerializable관련 질문드려요.

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

코팩님 강의와 동일하게 코드제네레이션을 한 것 같은데, 왜 g.dart파일에서 에러가 나는지 모르겠어요... ㅠㅠ as int하신 것도 동일한데 왜 형변환 에러가 나는지... 답변 기다릴게요 감사합니다...

  • flutter
  • 하이브리드-앱
HwiD Upside 댓글 2 좋아요 0 조회수 987

sql을 통해 데이터베이스를 구성하면 사용자의 앱에 데이터가 저장이 되나요?

미해결

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

제가 생각한 벡엔드는 메인서버 데이터베이스에 모든 자료를 저장해 놓고 유저가 요청하는 경우에 필요한 자료를 전송하는 것이라고 생각했는데 sql 강의를 보니 사용자 앱에 자료가 저장되는 것 같아 헷갈리네요. getApplicationDocumansDirectory()라고 하는것을 볼때 사용자의 앱 내에 데이터를 저장하는 것 같은데 벡엔드 서버 구성은 따로 어떻게 되는건지 알고싶습니다

  • flutter
  • 클론코딩
Yeonho Kim 댓글 1 좋아요 0 조회수 404

추상클래스 (abstract class)와 인터페이스(interface)의 최적의 쓰임?

해결됨

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

안녕하세요 나도코딩 선생님...ㅎ 몇 주전에 나도코딩 자바편 강의를 완강하고 다시 2회차로 강의를 듣는 중입니다...ㅎ 추상 클래스 (abstract class)와 인터페이스(interface) 관련 강의를 들으면서 각각의 특징들 및 차이점들에 대해서 다시 조금씩 알아가고 있는데... (예를 들면, 추상클래스는 abstract 키워드를 가지고, abstract메소드를 가지고 있어서 객체를 생성할 수 없는 반면, 인터페이스(interface)는 보통 -able 키워드, 변수 X, 생성자 X, 오로지 메소드만 있다 등) 이 둘, 그러니까 추상 클래스 (abstract class)와 인터페이스(interface)는 '어느 때 (또는 어느 시점)'에 활용하는게 가장 적절한지 디테일하게 알 수 없을까요? 항상 좋은 강의와 답변 감사합니다...ㅎ

  • java
  • 객체지향
  • 추상클래스
  • abstract
  • 인터페이스
  • interface
댓글 1 좋아요 0 조회수 3481

인기 태그

인프런 TOP Writers

주간 인기글