묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입 컬렉션에서 변경 감지는 어떻게 일어나나요?
em.flush(); em.clear(); System.out.println("============= START ============="); Member findMember = em.find(Member.class, member.getId()); // 1 // findMember.getHomeAddress().setCity("newCity"); // 2 Address oldAddress = findMember.getHomeAddress(); findMember.setHomeAddress(new Address("newCity", oldAddress.getStreet(), oldAddress.getZipcode())); // 3 findMember.getFavoriteFoods().remove("치킨"); findMember.getFavoriteFoods().add("한식");강의 코드와 동일하게, Member 엔티티는 임베디드 타입인 homeAddress와 값 타입 컬렉션인 favoriteFoods를 포함하며, 상술한 코드도 값 타입 컬렉션 강의에서 23:30 까지 설명해주신 것과 동일합니다. 1번 주석에서, 임베디드 타입인 homeAddress의 city 필드를 수정하기 위해 city의 setter를 이용하면, Member에서 참조하는 homeAddress의 참조값은 바뀌지 않기 때문에 변경 감지가 일어나지 않는다고 이해했습니다.따라서 2번 주석에서 볼 수 있듯이, 새로운 객체를 만들어 참조값을 바꿔주어야 변경 감지가 일어나 올바른 update가 될 수 있다고 이해했습니다.그러나 3번 주석에서의 값 타입 컬렉션 수정을 보면, 결국 Member 엔티티가 가리키는 참조값은 원본 favoriteFoods의 참조값과 다르지 않은데 DB에서는 update가 일어난 것을 확인했습니다. 어떠한 이유로 이런 결과가 나오게 되는지 궁금합니다.추가) 1번 주석의 코드를 실행할 경우, "newCity"로 변경이 되는 것을 확인했습니다. 참조값이 바뀌지 않는 데도 변경 감지가 일어나는 건가요? 아니면 제가 이해를 잘못하고 있는 부분이 있는 건가요..?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 병렬 처리
안녕하세요 영한님 ^^ 1기 인프콘때 뵈고, 오랜만에 강의를 보게되어서 반갑습니다 ㅎㅎ 다름이 아니라, 주문 체결 시스템을 개발하여서 병렬 처리 관련해서 공부 및 개발중인데 혹시 아래 링크책을 예전에 공부하신적 있으신가요? https://product.kyobobook.co.kr/detail/S000007668255아니면 다른 책 추천해주실만한게 있으실까요 ? ㅎㅎ아니면 이 강의 다보면 제가원하는 주문 체결 시스템을 만들기위한 기본 베이스는 이해가 될 수 있을까요?설날 잘보내시고 새해 복 많이받으세요 !
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트 오류메세지
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]회원가입 테스트 진행하는데 테스트 자체는 강의와 똑같이 잘 진행됩니다. 오류메세지가 계속 뜨는데 해결을 어떻게 해야되는지는 모르겠네요.--------------오류메세지------------Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3WARNING: A Java agent has been loaded dynamically (C:\Users\hyozz\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.11\a38b16385e867f59a641330f0362ebe742788ed8\byte-buddy-agent-1.15.11.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended--------------오류메세지------------
-
미해결김영한의 실전 자바 - 기본편
상속 생성자 super과 this 사용
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예안녕하세요상속 생성자의 super 사용에 대해 궁금한 점이 생겨 질문을 남깁니다. 생성자를 사용 시 this를 사용해도 상위의 생성자를 만들기 위해 super();을 한 번은 호출해야 한다고 이해했는데, 하위 클래스에서 하나의 생성자 안에 this와 super();을 함께 사용하지는 못할까요 ? 만약 하나의 생성자 안에 this와 super을 함께 사용이 가능하다면 super을 먼저 쓰는지 this를 먼저 쓰는지에 따라 상위와 하위 생성자 할당 순서가 달라질텐데 무엇을 먼저 써주어야하는지가 궁금합니다. 좋은 강의 항상 감사드립니다 !
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미리 풀어 봤는데, 이 코드는 그다지 좋은 코드는 아니려나요?
import java.util.*; public class Main { public void solution(String str) { String upper = str.toUpperCase(); for (int i = 0; i<str.length(); i++) { if (str.charAt(i) != upper.charAt(i)) { System.out.print(upper.charAt(i)); } else { System.out.print(Character.toLowerCase(str.charAt(i))); } } } public static void main(String[] args) { Main main = new Main(); Scanner sc = new Scanner(System.in); String str = sc.next(); main.solution(str); } }정답 처리는 됐습니다.저는 solution() 메서드의 리턴 타입을 void로 두고, 이 메서드 내부에서 한 글자씩 print()로 출력했습니다. 이런 접근은 안 좋으려나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
토이프로젝트에서 spring data jpa 기반으로 페이징 처리 중 궁금한 점 있습니다.
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]먼저 강의 설명과 일맥상통한 부분일 것 같지만, Spring Data JPA를 바탕으로 토이프로젝트를 개발하고있고 Pageable 인터페이스를 활용하고 있습니다. 프로젝트에서 Item(품목)의 하위 개념으로 Product(제품)을 가지고 있습니다.(1:N - 품목 하나에 대해 여러개의 제품을 등록 할 수 있음)처음에는 특정 item을 클릭했을 때, 해당 item의 정보와 item에 등록된 하위 Product 리스트(목록을 보여주기 위한 일부 정보들만)를 보여주기 위해 item에 접급하는 Repository에 다음 메소드를 만들었습니다.@Query(value = "SELECT DISTINCT i FROM Item i LEFT JOIN FETCH i.productList WHERE i.id = :itemId", countQuery = "SELECT COUNT(p) FROM Product p WHERE p.item.id = :itemId") Page<Item> findWithProductsByItemId(@Param("itemId") long itemId, Pageable pageable);그런데 이렇게 하다보니 product가 아닌 item으로 페이징이 되는 것을 알았습니다. 이에 두 가지로 대책을 세웠는데 어떻게 해야할지 모르겠습니다. 1) 응용계층에서 item에 대한 정보를 불러오는 item서비스 호출 + 위 item에 해당되는 product 리스트 정보들을 paging 하여 불러오는 페이징하여 불러오는 product서비스 호출 2) product를 메인으로 item과 n:1 패치조인하는 메소드를 productRepository에서 생성. 1번 방법이 맞는 것 같지만,, paging으로 데이터를 불러올 때마다 item쿼리를 한번씩 날려야하는게 비효율적인거 같기도하고,, 2번으로 하자니... 제가 구현하고자 하는 기능과는 뭔가 다르게 개발하는거 같아 꺼림직 합니다.(item 중심의 조회 기능이 아닌 product기준의 조회) 긴글 읽어주셔서 감사합니다... 어떤식으로 구현하는게 맞는 방법일까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepository 인터페이스 설계 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]입문이나 기본편에서는 인터페이스를 만들어서 확장을 염두에 두었는데 JPA는 인터페이스 기반 설계를 못하는 건가요?? 아니면 일부로 안 하신건가여
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
msa 환경에서 브로드캐스트는 어떻게 이루어지나요?
학습중 궁금한 것은 언제든 문의 하세요.질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다.추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다.선생님 좋은 강의 감사합니다. 강의 재밌게 듣고 있습니다.브로드캐스트활용해서 채팅(실시간 알림)기능 구현 강의 듣던 중 궁금한게 생겼는데요그 전 강의에서 8080 8081 두개 서버 띄어놓고 라운드로빈으로 분배되는 것 설명하셨을 때 처럼 두개 띄어놓고 8080 8081 각각의 웹소켓으로 메세지 전송했는데 각각의 서버 별로 별도로 브로드캐스팅이 되는 것 같더라고요. 전체로 브로드캐스팅 하려면 보통 어떤 식으로 구현하나요?
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
첨부pdf 코드블럭 글자 수 넘어가면 짤리는 것 같아요
학습중 궁금한 것은 언제든 문의 하세요.질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다.추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다. 첫 pdf 에서docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 이부분 뒤에 짤렸고짤린 부분 다른 파일도 더 있는 것 같아요
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 목록 조회 - 튜플 비교 시 쿼리 성능 저하
안녕하세요, 먼저 소중한 강의 만들어주셔서 너무 감사드립니다! 🙏🏻 댓글 목록 조회 쿼리에서 궁금한 점이 있어 질문드립니다.( 댓글 최대 2 depth - 목록 API 설계 7:19 부분 ) 질문"튜플 비교 (a, b) > (x, y)를 사용하면 인덱스 풀 스캔이 발생하여 성능이 매우 떨어지는데, 명시적 조건 a > x OR (a = x AND b > y) 으로 분리하면 인덱스 레인지 스캔이 발생하여 쿼리 성능이 매우 빨라지는데 왜 그런 것일지 모르겠습니다.." 질문 상세테스트 환경: comment 에 약 8백만건의 테스트 데이터 삽입mysql base image: mysql:8.0.38comment table ddl-- auto-generated definition create table comment ( comment_id bigint not null primary key, content varchar(3000) not null, article_id bigint not null, parent_comment_id bigint not null, writer_id bigint not null, is_deleted tinyint(1) not null, created_at datetime not null ); create index idx_article_id_parent_comment_id_comment_id on comment (article_id, parent_comment_id, comment_id); 문제가 되는 테스트 케이스 (1: slow, 2: fast)case 1. tuple comparision (slow)explain analyze select comment.comment_id, comment.parent_comment_id, comment.content, comment.article_id, comment.writer_id, comment.content, comment.is_deleted, comment.created_at from comment where article_id = 1 and (parent_comment_id, comment_id) > (142539921307124354, 142539921307124350) order by parent_comment_id, comment_id limit 30; -- -> Limit: 30 row(s) (cost=542979 rows=30) (actual time=8620..8620 rows=30 loops=1) -> Filter: ((`comment`.comment_id,`comment`.parent_comment_id) > (142539921307124354,142539921307124350)) (cost=542979 rows=4.01e+6) (actual time=8620..8620 rows=30 loops=1) -> Index lookup on comment using idx_article_id_parent_comment_id_comment_id (article_id=1) (cost=542979 rows=4.01e+6) (actual time=1.83..8251 rows=8e+6 loops=1) case 2. fastexplain analyze select comment.comment_id, comment.parent_comment_id, comment.content, comment.article_id, comment.writer_id, comment.content, comment.is_deleted, comment.created_at from comment where article_id = 1 and ( parent_comment_id > 142539921307124354 or (parent_comment_id = 142539921307124354 and comment_id > 142539921307124350) ) order by parent_comment_id, comment_id limit 30; -- -> Limit: 30 row(s) (cost=416 rows=30) (actual time=0.252..0.727 rows=30 loops=1) -> Index range scan on comment using idx_article_id_parent_comment_id_comment_id over (article_id = 1 AND parent_comment_id = 142539921307124354 AND 142539921307124350 < comment_id) OR (article_id = 1 AND 142539921307124354 < parent_comment_id), with index condition: ((`comment`.article_id = 1) and ((`comment`.parent_comment_id > 142539921307124354) or ((`comment`.parent_comment_id = 142539921307124354) and (`comment`.comment_id > 142539921307124350)))) (cost=416 rows=358) (actual time=0.232..0.705 rows=30 loops=1) 튜플 비교를 사용한 1번 쿼리에서는 index full scan 이 발생하여 ( 8백만개의 row 를 모두 스캔 ) 8초의 안좋은 쿼리 성능이 나타난 것으로 판단했습니다. 반면 튜플 비교를 명시적 조건으로 분리한 2번 쿼리에서는,(a > X OR (a = X AND b > Y)))index range scan 을 통해 0.7초 이하의 빠른 쿼리 성능이 나타난 것 같아요.요약튜플 비교 (a, b) > (x, y)를 사용한 1번 쿼리에서 MySQL 옵티마이저는 왜 풀 인덱스 스캔을 선택하는 것인지,튜플 비교가 인덱스 레인지 스캔으로 최적화되지 않는 이유가 무엇인지 원인을 찾고 있는데 잘 모르겠네요.. 힌트를 받을 수 있을까요? 새해복 많이 받으세요!
-
미해결김영한의 실전 자바 - 중급 1편
basic,gold,diamond에 왜 new ClassGrade로 인스턴트 생성하나요? 그냥 선언만 하면 안되나여??
package enumeration.ex2;public class ClassGrade {public static final ClassGrade BASIC = new ClassGrade();public static final ClassGrade GOLD = new ClassGrade();public static final ClassGrade DIAMOND = new ClassGrade(); } =>public static final ClassGrade BASIC;public static final ClassGrade GOLD ;public static final ClassGrade DIAMOND ; 이로면 안되나여?new를 왜햇는지 모르겟어요
-
해결됨실전 jOOQ! Type Safe SQL with Java
DB 벤더별 내장함수에 대한 방언 지원 듣고 질문드려요
postgresql 할때는 dsl을 사용안하는데 그런 이유가있을까요?mysql에서는 MYSQLDSL.GROUPCONNECAT 이렇게했는데POSTGRESQL에서는 dsl을 사용안하는것같아서왜그러는지 궁금합니다
-
미해결김영한의 실전 자바 - 중급 1편
discount 메서드에서 타입을 String 타입이 아닌 StringGrade타입으로 받으면 되지않나여??
package enumeration.ex1; public class DiscountService { public int discount(StringGrade grade,int price){ int discountPercent=0; if(grade.equals(StringGrade.BASIC)) { discountPercent=10; }else if(grade.equals(StringGrade.GOLD)){ discountPercent=20; }else if(grade.equals(StringGrade.DIAMOND)){ discountPercent=30; }else{ System.out.println(grade+":할인 x"); } return price*discountPercent/100; } } discount 메서드에서 타입을 String 타입이 아닌 StringGrade타입으로 받으면 아래 예제가 다 에러 표시가 나면서 개발자들이 실수 하지않게 되는데? 왜 굳이 enum을 쓰나여?StringGrade타입으로 하면되자나여package enumeration.ex1; import enumeration.ex1.DiscountService; public class StringGradeEx1_2 { public static void main(String[] args) { int price=100000; DiscountService discountService=new DiscountService(); //존재하지 않는 등급 int VIP =discountService.discount("VIP",price); System.out.println("VIP = " + VIP); //오타 int diamoddd= discountService.discount("diamoddd",price); System.out.println("diamoddd = " + diamoddd); //소문자 입력 int gold= discountService.discount("gold",price); System.out.println("gold = " + gold); } }
-
미해결김영한의 실전 자바 - 중급 2편
UnitPrinter.printV2 와일드카드 작성 시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public static void printV2(Shuttle<? extends BioUnit> shuttle) { shuttle.showInfo(); } 이 부분에 와일드카드가 BioUnit 을 extends 해야 한다고 명시적으로 작성해 주고 있는데 Shuttle 클래스에서 이미 <T extends BioUnit> 을 하고 있기 때문에 와일드카드는 단순하게 ? 만 사용해도 괜찮은 걸까요?다른 개발자가 사용할 경우에 좀 더 명시적으로 확인시켜주기 위해 적은거라고 이해해도 되는 건지 궁금합니다. public static void printV2(Shuttle<?> shuttle) { shuttle.showInfo(); }이렇게 코드를 작성한 이후에 여러 테스트를 해봤는데 Shuttle 클래스를 만들때 <T extends BioUnit> 에 걸려서 Integer나 Object 등 다른 타입은 사용할 수 없더라구요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Hibernate5JakartaModule 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle에 Hibernate5JakartaModule을 잘 등록하여 라이브러리 목록도 확인했습니다. 그런데 이렇게 오류가 뜹니다ㅠㅠ빨간 줄에는 "Cannot return a value from a method with void result type" 라고 뜨는데 이유가 뭘까요..ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계와 기본키 전략
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 연관관계 양방향에 값을 입력해주는 부분에 대해서 이해한 것 같습니다. 아직 1차 캐시에만 존재하고 영속성 엔티티에 반영이 되지 않았기 때문에 객체로는 조회가 되지 않는 것으로 이해했습니다. 다만 궁금한 점이 기본키 전략을 auto_increment 같은 방식으로 한 경우에는 미리 한번 쿼리가 나간다고 이전 강의에서 배운 것이 생각났습니다. 강의에서도 기본키 전략은 동일한 것 같습니다. 기본키 전략 때문에 나간 쿼리가 반영이 안되는 이유가 따로 있을가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
H2 콘솔에 접속했을 때 테이블
강의따라서 H2접속하면 자동으로 BOOK, FRUIT, PERSON, USER, USER_LOAN_HISTORY 테이블이 있는데 어떻게 자동으로 만들어져 있는 건가요.?? mysql에서 테이블 만들었는데 h2는 mysql과 다른거 아닌가요..? 기존의 자바 entity 코드를 다 읽어서 얘네가 알고있는건가요???ps. 강의 너무 잘듣고 있습니다! 이때까지 완강해본 강의가 손에꼽는데 완강을 앞두고 있어서 너무 설레는 맘입니다..! 좋은 강의 만들어주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hibernate 라이브러리 추가 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.spring.datasource.username=sa를 추가하였고, javax를 jakarta로 변경하였는데도 오류가 납니다.external libraries에 hibernate를 검색해도 나오지 않습니다.틀린부분 알려주시면 감사하겠습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 CRUD 테스트 할떄 발생하는 500 오류
게시글 CRUD API 구현 테스트 하는 부분에서 13:34쯤에 작성하고 테스트 실행하는 부분에서 아래 오류가 발생하는데 원인이 도대체 뭐일까여..ㅠㅠ 포트 9000에 서버 시작도 해놨었습니다500 Internal Server Error: "{"timestamp":"2025-01-27T06:39:44.186+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}"org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-01-27T06:39:44.186+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}" at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102)
-
해결됨김영한의 실전 자바 - 중급 2편
[수정 건의] NodeMain3의 add(Node node, String param) 메서드에 대한 수정 건의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]대상 강의록: 4. 컬렉션 프레임워크 - LinkedList.pdf의 p.12대상 소스 파일: NodeMain3add(Node node, String param) 메서드건의 내용:해당 부분은 아직 LinkedList에 대한 제네릭 도입 전이므로 Node 클래스에서도 item의 타입을 Object로 사용하고 있습니다.public class Node { Object item; Node next; public Node(Object item) { this.item = item; } ... }따라서 add 메서드 또한 추가할 데이터인 param을 String이 아닌, Object 타입으로 설정해야 수강생들의 이해가 쉬울 것이라고 생각합니다.// 기존 강의록 코드 private static void add(Node node, String param) { Node lastNode = getLastNode(node); lastNode.next = new Node(param); } // 수정 제안 코드 <<수정부분: String -> Object>> private static void add(Node node, Object param) { Node lastNode = getLastNode(node); lastNode.next = new Node(param); }