학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 맥(m1)에서 프로젝트를 빌드하는 도중에 해당 에러가 발생했습니다. 이전 질문에서도 똑같은 에러가 있길래 답변을 확인해봤으나 프로젝트의 sourceCompatibility = '17' 과 java -version의 openjdk version "17.0.6" 2023-01-17를 확인하니 자바 버전은 동일한 것 같습니다. 그런데 왜 해당 오류가 발생하는지 의문입니다. 프로젝트를 초기 세팅할 때도 스프링부트 3 버전과 자바 17버전으로 잘 세팅했습니다. 에러가 나는 이유를 알 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 안녕하세요. test 진행 시 해당 사진 처럼 오류가 발생합니다. Run tests using 도 인텔리제이로 변경해 놓은 상태인데 너무 답답해 죽겠습니다...ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! pdf 5.검증 2에서 @ModelAttribute("item") 에 item 이름을 넣어준 부분을 주의하자. 이것을 넣지 않으면 ItemSaveForm 의 경우 규칙에 의해 itemSaveForm 이라는 이름으로 MVC Model에 담기게 된다. 이렇게 되면 뷰 템플릿에서 접근하는 th:object 이름도 함께 변경해주어야 한다. 라는 말을 이해했는데 그럼 만약에 itemSaveForm이라는 이름을 사용하려면 @GetMapping("/add")의 attributename도 바꿔야하나요?? 만약에 안바꿔도 된다면 왜인거죠...?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 지금 현재 강의에서 file.dir에서 경로를 업로드하면 경로로 적어준 로컬에 생기면서 서버 메모리에 저장되는 걸로 알 고 있습니다. 강의에서 Map으로 했던 것을 DB에 넣게 해서 H2 데이터베이스에 이런식으로 들어가게 해서 서버를 껐다가 켜도 DB를 보고 잘 찾아와지는 것을 볼 수 있었습니다. 근데 로컬 경로에 있는 이미지를 지우면 이미지가 안보이더군요. 근데 프로젝트에서 적용하려고 하니 두 가지의 문제점이 있었습니다. file.dir을 똑같이 맞춰줘야하는 단점이 있어서 활성화 프로퍼티에 경로를 쓰고 file.dir=${file-dir} 이런식으로 하려고 하니 18:17:20.605 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@585fb609 18:17:20.790 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Location 'file:./config/*/application-file-dir=c:/upload/file/.yaml' must end with '*/' at org.springframework.util.Assert.state( Assert.java:97 ) at org.springframework.boot.context.config.LocationResourceLoader.validatePattern( LocationResourceLoader.java:134 ) at org.springframework.boot.context.config.LocationResourceLoader.getResources( LocationResourceLoader.java:95 ) at org.springframework.boot.context.config.StandardConfigDataLocationResolver.resolvePattern( StandardConfigDataLocationResolver.java:312 ) at org.springframework.boot.context.config.StandardConfigDataLocationResolver.resolve( StandardConfigDataLocationResolver.java:298 ) at org.springframework.boot.context.config.StandardConfigDataLocationResolver.resolve( StandardConfigDataLocationResolver.java:249 ) at org.springframework.boot.context.config.StandardConfigDataLocationResolver.resolveProfileSpecific( StandardConfigDataLocationResolver.java:148 ) at org.springframework.boot.context.config.ConfigDataLocationResolvers.lambda$resolve$2( ConfigDataLocationResolvers.java:120 ) at org.springframework.boot.context.config.ConfigDataLocationResolvers.resolve( ConfigDataLocationResolvers.java:126 ) at org.springframework.boot.context.config.ConfigDataLocationResolvers.resolve( ConfigDataLocationResolvers.java:119 ) at org.springframework.boot.context.config.ConfigDataLocationResolvers.resolve( ConfigDataLocationResolvers.java:107 ) at org.springframework.boot.context.config.ConfigDataImporter.resolve( ConfigDataImporter.java:106 ) at org.springframework.boot.context.config.ConfigDataImporter.resolve( ConfigDataImporter.java:98 ) at org.springframework.boot.context.config.ConfigDataImporter.resolveAndLoad( ConfigDataImporter.java:86 ) at org.springframework.boot.context.config.ConfigDataEnvironmentContributors.withProcessedImports( ConfigDataEnvironmentContributors.java:116 ) at org.springframework.boot.context.config.ConfigDataEnvironment.processWithProfiles( ConfigDataEnvironment.java:311 ) at org.springframework.boot.context.config.ConfigDataEnvironment.processAndApply( ConfigDataEnvironment.java:232 ) at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment( ConfigDataEnvironmentPostProcessor.java:102 ) at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment( ConfigDataEnvironmentPostProcessor.java:94 ) at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent( EnvironmentPostProcessorApplicationListener.java:102 ) at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent( EnvironmentPostProcessorApplicationListener.java:87 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener( SimpleApplicationEventMulticaster.java:176 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener( SimpleApplicationEventMulticaster.java:169 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent( SimpleApplicationEventMulticaster.java:143 ) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent( SimpleApplicationEventMulticaster.java:131 ) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared( EventPublishingRunListener.java:85 ) at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2( SpringApplicationRunListeners.java:66 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.springframework.boot.SpringApplicationRunListeners.doWithListeners( SpringApplicationRunListeners.java:120 ) at org.springframework.boot.SpringApplicationRunListeners.doWithListeners( SpringApplicationRunListeners.java:114 ) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared( SpringApplicationRunListeners.java:65 ) at org.springframework.boot.SpringApplication.prepareEnvironment( SpringApplication.java:343 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:301 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1303 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1292 ) at com.example.fileupload2.Fileupload2Application.main( Fileupload2Application.java:10 ) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) at org.springframework.boot.devtools.restart.RestartLauncher.run ( RestartLauncher.java:49 ) 이런 오류가 발생했습니다. 두 번째 문제는 로컬에 파일이 없으면 이미지를 보여줄 수 없는데 저는 이미지를 db직접 넣어서 사용하는 것과 로컬에 이미지를 넣는것이 아니라 강의에서 나온 사용자가 올린 파일명, 실제 서버에서 관리되는 파일명을 서버에 넣어준 것을 db에 경로만 넣어서 가져오길 원하는데 근데 로컬에서 가져오는 것은 성공했는데 서버에서 db를 통해 가져오는 방법을 모르겠습니다. ps) 설명을 들어보면 서버에 실제 서버에서 관리되는 파일명, 사용자가 올린 파일명 이렇게 넣어주는 거라고 이해했는데 로컬에 있는 경로로 이미지를 보여주고 업로드하면 이미지를 로컬에 넣어주니 이게 서버에 업로드하는 것이 맞나 헷갈리고 강의 코드에 db에 넣는거 추가만 했는데 강의방법이 경로를 db에 넣어서 사용하는게 아니라 이미지를 넣어준거 같아서 제가 알기론 db에 직접 넣지말고 경로로 가져와서 쓰는게 좋다는 걸로 알고 있거든요. 프로젝트로 협업할 때는 그냥 s3로 구현하는게 차라리 편하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 프로젝트에서 javax를 검색하니 javax.websocket 패키지 하나나오는데 이 이름을 변경하라는건가요? 이름변경이 안되는데
@Data public class Member { @NotEmpty private Long id; @NotEmpty private String loginId; //로그인 ID @NotEmpty private String name; //사용자 이름 @NotEmpty private String password; } 제가 실수로 id에 @NotEmpty를 하니까 회원가입 버튼을 눌렀더니 오류가 났습니다. 오류가 나는 이유는 id의 오류처리를 안해서라고 생각하는 데 만약에 오류처리를 해야한다면 MemberRepository의 @Slf4j @Repository public class MemberRepository { private static Map<Long, Member> store = new HashMap<>(); //static 사용 private static long sequence = 0L; //static 사용 public Member save(Member member) { member.setId(++sequence); log.info("save: member={}", member); store.put(member.getId(), member); return member; } save() 메소드에서 하면 되는 걸까요?? (id는 다른 필드들과 다르게 html에서 처리할 수 없으니까??) 아니면 id는 데이터베이스에 들어가는 거니까 애초에 @NotEmpty 를 사용하면 안된다 라고 생각해야 건가요?? (개발자가 직접 입력한 것이 아니니까?) 답변주시면 정말 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] jstl이 앉먹어서 코드분량은많지만 고대폼의 jsp 화일을 써서 덮어버렸는데 잘됩니다 그대로 써도 괜찮을까요?
세션 만들기 //로그인 성공 처리 //세션이 있으면 있는 세션 반환, 없으면 신규 세션 생성 HttpSession session = request.getSession(); //세션 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); 세션 지우기 HttpSession session = request.getSession(false); if (session != null) { session.invalidate(); } 세션 확인하기 HttpSession session = request.getSession(false); if (session == null) { return "home"; } 쿠키는 클라이언트 측에서 저장하고 세션은 서버측에서 저장한다고 알고 있는데요. request 로부터 getSession을 통해 얻는 것이 무엇인지가 궁금합니다. request.getSessin()을 통해 얻는다는 것은 사용자의 요청으로부터 얻은 Session이고 여기에 setAttribute 하는 것은 서버에 데이터를 저장하는게 아니라 사용자의 요청에 저장을 하게 되는 것 아닌가요 ?? (setAttribute가 사용자의 request와 서버 모두 저장하는 것인가요?) session은 cookie와 같다면 서버 내부적으로 어디에 저장돼서 어떻게 확인할 수 있는 건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] package hellospring11.hellospring.service; import hellospring11.hellospring.repository.JdbcMemberRepository; import hellospring11.hellospring.repository.JdbcTemplateMemberRepository; import hellospring11.hellospring.repository.MemberRepository; import hellospring11.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import hellospring11.hellospring.service.MemberService; import javax.sql.DataSource; // 자바 코드로 스프링 빈 등록 // 실무에서는 이것 보다는 autowired를 사용 하는데 이방법은 리포지토리를 쉽게 변경을 할 계획이라서 일딴 이렇게 사용 @Configuration public class SpringConfig { private final DataSource dataSource; @Autowired public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ //return new MemoryMemberRepository(); //return new JdbcMemberRepository(dataSource); return new JdbcTemplateMemberRepository(dataSource); } } package hellospring11.hellospring.repository; import hellospring11.hellospring.domain.Member; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.SimpleJdbcInsert; import javax.sql.DataSource; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; public class JdbcTemplateMemberRepository implements MemberRepository{ private final JdbcTemplate jdbcTemplate; // 생성자가 하나면 오토와이어드 생량 가능 public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); } @Override public Member save(Member member) { SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate); jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id"); Map<String, Object> parameters = new HashMap<>(); parameters.put("name", member.getName()); Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters)); member.setId(key.longValue()); return member; } @Override public Optional<Member> findById(Long id) { List<Member> result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper(), id); return result.stream().findAny(); } @Override public Optional<Member> findByName(String name) { List<Member> result = jdbcTemplate.query("select * from member where name = ?", memberRowMapper(), name); return result.stream().findAny(); } @Override public List<Member> findAll() { return jdbcTemplate.query("select * from member", memberRowMapper()); } // 람다 함수로 만듬 private RowMapper<Member> memberRowMapper(){ return (rs, rowNum) -> { Member member = new Member(); member.setId(rs.getLong("id")); member.setName((rs.getString("name"))); return member; }; } } MemberServiceIntegrationTest 테스트 파일에서 코드를 실행하는데 계속 오류가 나옵니다. @WebAppConfiguration, @ContextConfiguration() 어노테이션을 추가 해보았는데도 오류가 발생하고 데이터베이스 서버는 실행되어 있습니다.
author이랑 isbn이 null로 나와있는데 싱글테이블에서 Album이랑 Movie에 관련된 컬럼은 안나오고 딱 Book이랑만 관련된 author이랑 isbn 만 null로 표시됐는데 이건 JPA가 Book인 걸 알아서 그것만 표시해주는건가요 ?? 어떻게 author이랑 isbn만 표시해주게 되는건지 궁금합니다 ..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JSP에 java 코드를 추가해서 회원관리 웹 애플리케이션을 구현한 것이 mvc model1 이고 servlet과 jsp를 이용해서 회원관리 웹 애플리케이션을 구현한 것이 mvc model2 라고 알고있습니다. 그럼 처음에 서블릿에서 PrintWriter 클래스를 이용해서 구현한 회원관리 웹 애플리케이션은 mvc model1 인가요? 아니면 순수 java를 이용한 회원관리 웹 애플리케이션인가요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/ 아니오) [질문 내용] 회원가입 > 등록 후 회원목록 조회가 되지 않습니다. https://drive.google.com/file/d/1mo2EohoMsgKRpeusyQ-AXlygE1CSSJIV/view?usp=sharing 코드 링크입니다. WhiteLabel Error Page 오류가 납니다.
안녕하세요 th:errorclass : th:field 에서 지정한 필드에 오류가 있으면 class 정보를 추가한다 pdf내용 중 한 문장인데요 . 이 의미가 th:field는 오류가 있다면 그 오류난 것을 알고 있어서 th:errorclass를통해 class정보를 추가한다는 의미 맞죠?? 그리고 th:errors="*{itemName}"은 errors중에 해당 필드 에러가 있을때 즉 itemName필드에 에러가 발생했을때 수행된다 이느낌 맞나요?/
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 TEST코드가 실행은 잘 되지만 실제 DB에 올라가지 않는 문제가 있습니다. 도움을 받을 수 있을까 해서 올려봅니다. https://drive.google.com/file/d/1dLceWpDp71m9dsvZXlVEfKa1db8M885g/view?usp=sharing 파일링크입니다!
안녕하세요 나도코딩님 오늘도 열심히 공부중인 학생입니다 ㅠㅠㅠ 복수전공 과목 중 자바로 배우는 자료구조를 수강중인데 사전에 자바 공부도 없이 듣는 수업이라 도통 무슨 소린지 이해가 가질 않네요.. 그래서 현재 고급편 결제하고 섹션9 추상클래스 까지 들은 상태인데 뒤로 갈수록 내용이 어려워져서 복습한다고 속도가 너무 늦어지는 상태에요.. 자료구조 내용을 이해하려면 일단 어떤 파트를 필수적으로 빨리 들어야 하고 어떤 파트는 빼도 되는지 알려주실 수 있을까요??ㅜ 답변 주시는데 도움이 될 지 모르겠지만 교재 한 챕터에 {자바 데이터 타입(기본타입, 참조타입), 제어문(조건문,반복문), 메소드(호출문,메인), try문} 이렇게만 존재하긴 하는데 중간중간 책에는 없는 추상클래스, 입력문 같은 파트도 보여서 감이 안잡히네요..
안녕하세요~ 강사님, 인터페이스(후반전) 강의를 듣고 있는데, 왜 인터페이스 변수를 만드는지 이해가 가지 않습니다. 수업 내용에서 FactoryCam이 인터페이스 Detectable과 Reportable을 구현하여 인터페이스에 있는 메소드를 FacstoryCam에서 구현해야한다는 것은 이해했습니다. 그리고 다른 클래스의 detect 메소드와 report 메소드를 호출하는것이라서 public void detect(){detecter.detect();} 이고, detecter은 객체이잖아요. 여기서 막힙니다. 이 객체랑 인터페이스 변수랑 무슨 상관인지? FactoryCam 의 인터페이스 변수를 생성해서 변수에 값 저장하는 걸로 하면 되지 않는지? 왜 인터페이스 변수를 선언해서 거기다가 값을 저장하는지, 잘 이해가 안 됩니다.... ㅠㅠ 그리고 추가로, 인터페이스로 다중 상속이 가능하다고 하셨는데, 수업 내용 중 어떤 것이 다중 상속이 되고 있는지 파악하기가 어렵습니다. 혹시, 다른 클래스의 메소드를 호출할 수 있는 부분때문에 다중 상속이 가능한 것인가요? 후반부로 갈수록 어렵네요 ㅠㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] addForm에서 등록지역추가할때 선생님께서 알려주신 FormItemController에 @ModelAttribute로 만들지말고 바로 addForm.html에 세가지지역의 input checkbox 만들어서 해도 되나요? 그리고 만약에 된다면 form의 생성을 조금더 수월하게 하기 위해서 @ModelAttribute를 사용한건가요?