묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
객체 지향 프로그래밍 개념에 대한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님 편안한 설 연휴 보내고 계신가요? :)자바 중급, 고급편 준비하시느라 고생이 많으실 것 같고, 또 정말 감사하다는 말씀 드리고 싶습니다. 강의 준비하시면서 목이 많이 상하시진 않을지 걱정도 되네요 감기 조심하시길 바랍니다제가 질문 드리는 부분은 해당 강의에서 설명하신것 처럼 ‘객체지향 프로그래밍은 속성(데이터)과 기능(메서드)이 하나의 클래스에 포함되어 하나의 객체를 완전히 형성하는 것’으로 설명해주셨습니다. 그런데 도메인 패키지에 있는 데이터만 들어있는 클래스와 서비스 패키지에 있는 서비스 클래스에 있는 기능만 포함된 메소드가 있다면 데이터와 기능이 분리된 형태로 보이는데요, 해당 부분 또한 객체지향프로그래밍이라고 볼 수 있을까요? 개념에 대한 간극이 생겨서 궁금해져 질문 드리는점 양해 부탁드립니다(_ _) 좋은 강의 해주셔서 정말 감사합니다!
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
해당 코드가 깃 저장소에서 참고할 수 있다고 해서 찾아보려는데 강의 자료에 보면 수업마다 커밋 아이디를 추가해 놨다고 되어있던데 도대체 어디있는지 모르겠어요
-
미해결스프링 시큐리티 OAuth2
Client Credentials 권한 부여 방식에서 사용자 정보 획득 방법 문의
안녕하세요. Client Credentials 권한 부여 방식에 대해 문의 드립니다.이 방식은 아래 정보만으로 AnonymousAuthenticationToken을 받아 오는 것으로 이해됩니다. client-id: oauth2-client-appclient-secret: Ao11cZOkxoXrKe8Nfu9pcNnuLBpKJzcG그렇다면 인증서버를 통해 사용자 정보를 가져 오는 부분이 필요하다면 어떤 식으로 구현해야 하나요?
-
해결됨김영한의 실전 자바 - 기본편
인텔리제 기능 질문 드립니다.
밑줄친 value에 커서 올렸을때강사님 처럼 언더라인 활성화되서 클릭하면 선언되어 있는 파일로 이동하는것 설정 법 알 수 있을까요
-
미해결김영한의 실전 자바 - 기본편
아스키코드
혹시 Integer.parseInt , toString 이런거나 아스키코드 관련 혹은 Final 혹은 int x = 49532 ; 가 있을때 이걸 배열에 { 4, 9 , 5, 3, 2 } 로 만드는 것을 가르쳐주는 회차가 있을까요? 항상 강의 너무 잘 듣고 있습니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
dialect 설정 오류 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]오라클로 방언 설정시 이러한 오류가 나타나는데 찾아봐도 해결을 하지 못해서 문의 드립니다.HHH000511: The 2.2.0 version for [org.hibernate.dialect.OracleDialect] is no longer supported, hence certain features may not work properly. The minimum supported version is 19.0.0. Check the community dialects project for available legacy versions.HHH90000025: OracleDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]Exception in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactoryat org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1591)at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1512)at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55)at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)at jpql.JpaMain.main(JpaMain.java:14)Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpql.Product]at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:230)at org.hibernate.id.factory.internal.IdentifierGeneratorUtil.createLegacyIdentifierGenerator(IdentifierGeneratorUtil.java:127)at org.hibernate.mapping.SimpleValue.createGenerator(SimpleValue.java:415)at org.hibernate.internal.SessionFactoryImpl.lambda$createGenerators$1(SessionFactoryImpl.java:457)at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779)at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)at org.hibernate.internal.SessionFactoryImpl.createGenerators(SessionFactoryImpl.java:456)at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:271)at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450)at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507)... 4 moreCaused by: org.hibernate.HibernateException: Could not fetch the SequenceInformation from the databaseat org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:307)at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.getSequenceInformationList(ExtractedDatabaseMetaDataImpl.java:151)at org.hibernate.id.enhanced.SequenceStyleGenerator.getSequenceIncrementValue(SequenceStyleGenerator.java:581)at org.hibernate.id.enhanced.SequenceStyleGenerator.adjustIncrementSize(SequenceStyleGenerator.java:259)at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:207)at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:224)... 20 moreCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ALL_SEQUENCES" not found; SQL statement:select * from all_sequences [42102-224]at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)at org.h2.message.DbException.get(DbException.java:223)at org.h2.message.DbException.get(DbException.java:199)at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8064)at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8035)at org.h2.command.Parser.readTableOrView(Parser.java:8024)at org.h2.command.Parser.readTablePrimary(Parser.java:1788)at org.h2.command.Parser.readTableReference(Parser.java:2268)at org.h2.command.Parser.parseSelectFromPart(Parser.java:2718)at org.h2.command.Parser.parseSelect(Parser.java:2824)at org.h2.command.Parser.parseQueryPrimary(Parser.java:2708)at org.h2.command.Parser.parseQueryTerm(Parser.java:2564)at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2543)at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2536)at org.h2.command.Parser.parseQueryExpression(Parser.java:2529)at org.h2.command.Parser.parseQuery(Parser.java:2498)at org.h2.command.Parser.parsePrepared(Parser.java:627)at org.h2.command.Parser.parse(Parser.java:592)at org.h2.command.Parser.parse(Parser.java:564)at org.h2.command.Parser.prepareCommand(Parser.java:483)at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:639)at org.h2.server.TcpServerThread.process(TcpServerThread.java:289)at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)at java.base/java.lang.Thread.run(Thread.java:842)at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)at org.h2.engine.SessionRemote.readException(SessionRemote.java:650)at org.h2.engine.SessionRemote.done(SessionRemote.java:619)at org.h2.command.CommandRemote.prepare(CommandRemote.java:78)at org.h2.command.CommandRemote.<init>(CommandRemote.java:50)at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:487)at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1166)at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93)at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:316)at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43)at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39)at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:291)... 25 more [해결]mysql 방언은 url 뒤에 ;MODE=MySql 을 추가하니 해결되었습니다. mysql 방언으로 바꾸어 보아도 위와 비슷한 오류로 시작합니다.HHH000511: The 2.2.0 version for [org.hibernate.dialect.MySQLDialect] is no longer supported, hence certain features may not work properly. The minimum supported version is 8.0.0. Check the community dialects project for available legacy versions.HHH90000025: MySQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080/hello에러 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강사님하고 동일한 방식으로 진행했는데 localhost:8080/hello에서 에러가 발생하네요;;; 이유와 함께 해결방안에 대해서 알고 싶습니다
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join 에 대해서 질문드립니다.
엔티티 A, B, C 가 있습니다.A 와 B 일대다 관계, B 와 C 일대다 관계를 가지고 있습니다.fetch join 은 XtoOne 관계에서는 얼마든지 해도 괜찮고 컬렉션과의 fetch join 은 1개만 해야한다고 들었습니다.만약 B 를 기준으로 본다면 A 와 XtoOne 관계이고, C 와 XtoMany 관계이니 A, C 모두 fetch join 으로 묶어와도 괜찮나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName() 구현 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]findByName() 메서드를 다음과 같이 구현해도 되나요?중복 이름의 회원이 없다고 했기 때문에 굳이 List로 받을 필요가 있나 싶어서요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
createQuery() 메서드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class).getResultList(); }createQuery() 메서드의 첫 번째 매개변수의 쿼리만 봐도 select로 반환되는 객체가 Member 객체인 것을 알 수 있는데 왜 굳이 두 번째 매개변수로 Member.class를 넣어주는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@GeneratedValue 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]이미 id가 자동 생성되도록 테이블을 정의한 시점에서 Member 클래스의 기본키 필드에 해당하는 id에도 @GeneratedValue(strategy = GenerationType.IDENTITY) 이와 같은 애노테이션을 붙여줘야 하는 이유가 뭔지 궁금합니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
특정 칼럼에 대한 조회시 TypedQuery 사용에 대하여
안녕하세요, 예전에 수업들은 이후 한창 현업 중에 잘못 사용한 Case 이지만, 왜 그럴까 디버깅도 좀 해보고 생각을 많이 해보다가 해결을 못하고 질문을 남기게 되었습니다. 그나마 관련이 있는 부분을 찾아서 남기게 되었습니다. 앱에는 Foo 라는 엔티티가 있고, 우선 다음과 같은 JPQL 쿼리를 발생시켰습니다. String jpql = "SELECT f.id FROM Foo f " + "WHERE f.name = :name " + "ORDER BY f.createdAt DESC" // id 라는 특정 칼럼 조회이므로 Type 을 명시하지 않고 Query 를 써야 하는게 맞지만, 잘못 사용해서 TypedQuery 를 사용함 List<Foo> fooList = em.createQuery(jpql, Foo.class).setParameter("name", name).getResultList(); 일단 예외가 나지 않고 fooList 라는 List 가 반환된다는 것도 신기했습니다. 정확한 이해를 하지는 못했지만 디버깅 해본 결과, CgLibAopProxy 클래스들을 타는걸보면, Lazy 로딩과 유사하게 CustomFoo extends Foo 와 같은 상속객체를 만들어서, id 만 채워준 후 List 에 넣어서 반환해주기 때문에 문법적으로 fooList 를 만들 때 오류가 발생하는게 아니구나 판단했습니다. (아닐 수도 있습니다.. 제 생각) 이후 fooList.get(index) 를 시도하면서 바로 Casting 예외가 발생하였습니다. (Long 객체를 Foo 객체로 Casting 할 수 없다) 신기해서 IntelliJ 에서 디버깅 하면서 확인했을 때, fooList 라는 List 안에 Foo 객체들이 들어 있지 않고, Long 객체들이 들어 있는 모습을 확인했습니다. 이거는 좀 매우 이상한게, 어쨌든 Foo 라는 Type 이 들어가게끔 선언된 List 에 어떻게 Long 객체들만 들어가 있을 수 있는지가 이해가 되지 않았습니다. createQuery() 함수와 getResultList() 함수간 복잡한 제네릭 관계들을 이해하기가 어려워서 이 부분을 이해하지 못한 것 같기도 합니다. 물론 TypedQuery 를 사용하지 않고 Query 를 사용하거나 DTO 를 통해 매핑해주는 것이 맞지만, 지금 상황 기준으로 어떠한 이유로 List 형성 중 에러가 나지 않은 것인지 또 어떻게 List<Foo> 안에 인텔리제이 디버깅 기준으로 Long 객체들이 들어가 있을 수 있는 것인지 궁금합니다_-----------------------------추가로 나중에 subQuery 안에서도 동일하게 사용이 되었는데, 이런 경우는 쿼리 결과를 반환해주지 않고 그냥 쿼리문을 만들 때만 사용되어서 그런지 아무 에러가 발생하지 않았습니다. SELECT SUM(~~.~~) from Bar bar WHERE bar.foo.id in ( SELECT f.id FROM Foo f ~~ )
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
println 하였는데 주소가 출력됩니다.
8:34 초에 println으로 spring!이 출력 되었는데 저는 출력하면 저장된 주소(members = hello.hellospring.domain.Member@27e93bd6)가 출력 되는데 혹시 어떻게 해야 글자가 나오게 바꿀 수 있을 까요?
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
<템플릿, 타임리프, 루트 URL, 서비스 URL, 프리픽스 등의 개념과 활용>이 동영상은 전편의 동영상이랑 내용이 같은거 같은데요??
이 동영상은 전편의 동영상이랑 내용이 같은거 같은데요??
-
미해결스프링 시큐리티 OAuth2
ProviderSetting Rename
ProviderSettings 가 2022.8.23 자로 AuthorizationServerSettings 로 이름 바꼈습니다.최신버전으로 강의 Follow 하시는 분들 참조 바랍니다.https://github.com/spring-projects/spring-authorization-server/issues/864
-
해결됨김영한의 실전 자바 - 기본편
메모리 구조(인터페이스는 정확히 어느 시점에 호출 되는지?)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 공부를 하면서 상속된 클래스랑 인터페이스가 있는 경우 어떻게 메모리상 에서 어떻게 될까?라고 생각하다가 답이 안 나와서 질문을 드립니다.poly.ex6 예제 에서 추상 클래스 및 인터페이스 클래스를 만들었습니다. 근데 메모리상에 이 그림처럼 만들어 진다고 하였는데 Bird 를 만들었을때 인터페이스Fly 가 어느때 호출이 되고 호출이 종료되는지 를 자세히 모르겟더라고요.그래서Bird ,AbstractAnimal 생성자에 soutm을 찍고 하였지만,이렇게 만 나오지. Fly는 인터페이스라 body를 못 만드니 soutm도 못 만들고 알 수 있는 방법이 없더군요. 이럴 경우 어떻게 Fly 인터페이스가 언제 호출이 되는지 알고 싶습니다. 예상으로는 Bird 호출 -> AbstractAnimal 호출 -> AbstractAnimal 종료 -> Fly 호출 -> Fly 종료 -> Bird 종료 라고 생각하기는 했습니다.(extend를 먼저 쓰니까 부모가 먼저 호출되고 implements 에서 맨 앞에 있는것부터 순차적으로 호출 종료 된다고 생각했습니다.)답변 부탁드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링부트에서 yml로 JPA 설정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 부트를 사용한다면 yml로 환경설정하길 추천한다고 하셨는데요.yml에서 persistence unit name을 설정하려면 매우 복잡하기 때문에 스프링부트 도움 없이 em을 띄우려면 xml 파일을 쓰는 편이 좋다고 답변하신 걸 봤는데요. 그렇다면 yml로 설정 시 테스트 환경에서는 em을 어떻게 실행할 수 있나요?repository에서 정의한 api를 테스트 파일에서 사용하는 거라서 테스트 환경에서 em을 사용할 일이 없나? 싶다가도 그러면 em.flush() 이런 기능을 테스트 환경에서 쓸 수 없게 되잖아요? 애초에 테스트 환경에서 flush, clear는 쓰는 게 아닌건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Around() 문법에 대한 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Around("execution(* hello.hellospring..*(..))") 문법의 의미를 "hello.hellospring 패키지 포함 그 하위에 있는 모든 패키지의 모든 메서드에 대하여 해당 Advice를 적용하라"는 뜻인 거 같은데요. 예를 들어, 만약 아래와 같은 조건이라면 해당 @Around 문법이 어떻게 수정되는 지 궁금합니다."hello / hellospring / service 패키지 하위에 있는 MemberService 클래스의 findMember() 메서드에 대하여 해당 Advice를 적용하라. findMember() 메서드의 return type은 List<Member>이다."
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
4:40초에 하시는 말씀(findMember 호출한 곳)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한쌤께서 4분40초쯤에 하시는 말씀 중 findMember 호출한 데가 없다고 말씀하시는데, 그게 무슨 말인가요..? join은 예제에서 잘 호출됐는데... 하신 말씀이 잘 이해가 안 가서 질문드립니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
result를 Optional<Member>로 선언하지 않는 이유
[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. MemoryMemberRepositoryTest 파일에 대한 질문이 있습니다.public void findAll() {} 에서 보시면 result를 List<Member>로 선언해줬는데,public void findByName(){} 에서는 result를 Optional<Member>로 선언하지 않는 이유가 궁금합니다...MemoryMemberRepository 파일의 메소드와 동일하게 가려면 맞춰줘야 하는 줄 알았는데 Member result로만 선언이 되길래 여쭤봅니다!