묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어쩐 이유에선지 8080포트가 사용중이라 실행이 안됩니다..ㅠ
계속 8080포트가 사용중이라 에러 메시지가 떠서 따로 cmd에서 포트 번호 확인해봤는데 8080포트는 나오지도 않습니다... 왜 이러는지 모르겠습니다...
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
새로고침 말고 뒤로가기를 누르면 어떻게 되나요?
새로고침 문제를 PRG 패턴으로 해결했어도 뒤로가기 버튼을 누르면 '전의 전'의 요청을 다시하는가 싶어서 눌러보았습니다. 그랬더니 get 요청처리되어서 상품 등록 폼이 나왔습니다. 그래서 상품이 중복 등록되진 않는 것 같은데 '전의 전'에 사용한 'get method' 요청을 다시 보낸다고 이해하면 될까요? 전의 전 요청이 post 요청이면 건너띄고 전의 전 get 요청을 찾아서 보내는 거라고 이해했습니다. 뒤로가기에 대해서 제가 제대로 이해한 건지 잘 모르겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의를 듣다가 문득 드는생각입니다.
안녕하세요 이번 강의를 듣다가 문득 드는생각에 질문드립니다. SpringMVC패턴을 너무 깊숙히 알지 않아도 괜찮은건가요? 대충 큰 그림만 알아도 되는건지 궁금합니다. 너무 깊게 들어가면 한도 끝도 없는것 같아서요 ㅠㅠ 그리고 알아야한다면 이번 강의에서 코드하나하나보다는 흐름정도만 알면 되겠죠?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
layout dialect는 사용하지 않는 편인가요?
저는 thymeleaf layout dialect 가 layout 기능인 줄 알았는데 이게 layout 이었군요. layout dialect를 사용할 때도 있으신가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임리프 - 기본기능에서 operation.html 오타 있는거 같습니다
operation.html에서 <li>비교 연산 <ul> <li>1 > 10 = <span th:text="1 > 10"></span></li> <li>1 gt 10 = <span th:text="1 gt 10"></span></li> <li>1 >= 10 = <span th:text="1 >= 10"></span></li> <li>1 ge 10 = <span th:text="1 ge 10"></span></li> <li>1 == 1 = <span th:text="1 == 10"></span></li> <li>1 != 1 = <span th:text="1 != 10"></span></li> </ul> </li> 1 == 1 이랑 1 != 1 이 부분에서 span 태그 안에는 1 == 10, 1 != 10 이라 있는데 li 태그에는 1 == 1, 1 != 1 이렇게 적혀 있어요 1 == 10 1 != 10 이거 맞나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Interface와 Abstract class 의 차이점
안녕하세요, 강의 잘 듣고 있습니다. 강의에서 이끌어 주시는대로 따라가다가 생각을 해봤습니다. - ControllerV1 은 추상적 형태이고, MemberFormControllerV1. MemberSaveControllerV1, MemberListControllerV1 는 구체적 형태이다. - 추상적 형태를 나타내는 방법에는 Interface와 Abstract class 가 존재한다. 아래와 같은 의문이 들었습니다. - 현재 상황에서 Abstract class 를 사용하지 않고 Interface 를 사용한 이유가 뭔가요? - 만약 Interface 를 사용한 특별한 이유가 있다면, 어떤 상황에서 Abstract class 또는 Interface 를 선택하는게 옳을까, 판단하는 근거를 간략하게나마 말씀해주시면 감사하겠습니다. 좋은 하루 되세요 !
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberConroller에서 생성자를 통한 의존성 주입시 멤버 변수에 final 키워드를 사용하는 이유에 대한 질문입니다.
안녕하세요. 김영한 팀장님. '컴포넌트 스캔과 자동 의존관계 설정' 강의 02:35 쯤 'MemberConroller' 클래스의 멤버변수로 'MemberService' 타입의 멤버변수를 선언할 때 final 키워드를 설정한 이유에 대한 질문입니다. Java에서 final 키워드가 붙은 멤버변수는 쉽게 말해 '변할 수 없다.' 라는 의미를 가지게 됩니다. 저는 스프링에서 다루는 Bean은 '특별한 설정 설정(Scope)'이 없는 경우 싱글톤 형태로 스프링 컨테이너에 등록되어 상황에 따라 다른 클래스의 의존 주입 객체로 사용할 수 있는 것으로 이해하고 있습니다. 이러한 이유로 현재 MemberController에서는 Setter 메소드도 선언되지 않았으니 생성자를 통한 의존 주입 이후에는 MemberService 타입의 멤버변수가 변경될 가능성이 없다고 보아 final 키워드를 사용하지 않아도 되지 않을까? 하는 의문이 들었습니다. 그럼에도 불구하고 final 키워드를 사용한 이유가 궁금합니다! 미리 답변 감사드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
index.html문의
무료강의인 스프링 입문강의를 들었을때, 강사님께서 매핑되는 html화면이 없을경우에는 resource -> static -> index.html을 자동으로 찾아서 화면에 띄어준다고 하셨는데요 꼭 resource -> static 안에 없어도 되는건가요? 이번 강의에서는 main -> webapp -> index.html경로에 있는데 welcome페이지로 index.html이 동작하길레요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
쓰레드 풀 질문드립니다.
실제 HTTP요청에 의해 많은 트래픽이 발생할 경우 쓰레드풀의 있는 쓰레드의 숫자를 상황에 맞추어서 증가시켜주면 된다고 강의해주셨는데요 제가 아직 그런부분을 다뤄본 경험이 없어서 질문드립니다. 인터넷을 찾아보니 쓰레드풀의 최대갯수를 늘리는 방법이 ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setMaxPoolSize(10); taskExecutor.setQueueCapacity(10); 이렇게 나오던데 실무에서도 이런식으로 setMaxPoolSize를 통해서 쓰레드의 수를 증가 시키고 setQueueCapacity를 통해 대기하는 쓰레드의 수를 정하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jdk 1.8로 하면 문제가 없는데
안녕하세요 매번 격는 문제여서 질문합니다. 다른 project에서 jdk1.8로 사용을 하고 있고 JAVA_HOME도 1.8로 설정을 했을 경우 인텔리제이에 설정은 jdk11모두 설정을 했는데 ㅜ jdk11을 사용하는데 이러한 에러가 나와요 Execution failed for task ':compileJava'. > invalid source release: 11 jdk를 여러 버전을 각각의 프로젝트 마다 달리 사용할려면 설정을 어떻게 해야 하는지요
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
질문을 모르고 삭제해버렸는데 혹시 답글을 해주셨을까요??
답글 확인을 못하고 삭제를 눌러서ㅠㅠ,,,
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
나프 2강의부터 듣는데 mvc05 war가 실행되지 않습니다
삭제된 글입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
map<Long,Member>를 넣은 이유가 궁금합니다!
Member class에는 long id, String name을 가지고 있어서 id값에 Long을 주는건 이해가 되는데 name값을 넣어주려면 Member가 아니라 String이 들어가야되는게 아닌가요?? 잘 이해가 안되서 설명 부탁드리겠습니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
ItemServiceImpl.java 클래스를 만들지 않은 이유
강사님 안녕하세요, 강의를 듣다 궁금한 점이 있어서 글 올립니다. 보통 ItemService 같은 서비스 클래스는 구현체를 만드는 것으로 알고 있는데, 혹시 강의처럼 ItemServiceImpl 클래스를 안만들고 바로 구현해도 크게 문제되지는 않는건지 궁금합니다. (JPA라서 그런건지 아니면 예제이기 때문에 단순화 시키신건지 등 ..) 답변 부탁드리겠습니다! 감사합니다!!
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
handleChangeInput에서 handleReset함수를 return하는 이유가 궁금합니다.
handleChangeInput 함수에서 handleReset 함수를 실행하는 것은 이해가 되는데요. 왜 return 구문을 쓰신건지 잘 모르겠습니다 ^^;; handleChangeInput 함수 자체도 별도의 return을 해주는 것이 없는것 같아서요. handleChangeInput(e) { const searchKeyword = e.target.value; if (searchKeyword.length <= 0) { return this.handleReset(); // 이 부분 입니다! } this.setState({ searchKeyword }); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 코드로 직접 스프링 빈 등록하기 예제에서 에러가 발생합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 스프링 빈과 의존관계에서 자바코드로 직접 스프링빈 등록하기부분을 듣고있습니다. 회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 애노테이션을 제거하고 @bean 설정할때 @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } 에서 에러가납니다. 에러 메시지는 ' java: incompatible types: hello.hellospring.repository.MemberRepository cannot be converted to hello.hellospring.repository.MemoryMemberRepository' 입니다. 캐스팅해야한다고 뜨는데, 수업화면에서는 별도 캐스팅없어도 오류가 발생하지않더라구요 ㅠ 제가 어느부분을 놓친건지 모르겠습니다 ㅠㅠ package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); Optional<Member> findById(Long id);//널일경우 대비 Optional<Member> findByName(String name); List<Member> findAll(); } package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.stereotype.Repository; import java.util.*; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long,Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(),member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } public void clearStore(){ store.clear(); } } package hello.hellospring.service; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
멀티 스레드 관련 질문이 있습니다.
안녕하세요. 강사님 강의 정말 잘 보고있습니다.! 다름이 아니라 수업중에 서블릿은 멀티스레드를 환경을 지원한다고 말씀해주셨는데요 궁금한점이 생겼습니다. 대충 아래와 같은 예제의 상황에서 public Member doSomething(String username) { Member m = findByName(username); // 1. a스레드, 3. b.스레드 .. // 2. a 스레드가 로직 실행 return m; // 4. a스레드가 return // a의 Member가 아닌 b의 Member가 리턴??!! } 멀티 스레드면 저 해당 메서드에 수십개의 스레드가 동시 에 접근한다는 것인데, 그러면 어떤 로직을 수행하는 중에 다른 스레드가 값을 변경하거나 하는 상황이 발생되지 않나요? 모든 메서드에 synchronized를 붙여서 다른 스레드가 접근하는 것을 막아야될 거 같은 생각이 드는데 실무에서는 그럼 모든 메서드에 synchronized를 이용해서 개발을 해야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getter setter 질문 드립니다.
static class Hello { private String name2; public String getName() { return name2; } public void setName(String name2) { this.name2 = name2; }}이렇게 변수 이름을 name2로 바꿔줘도 json으로 바뀌면 키 값이 name인데 이유가 뭔가요? 그런데 get, set 메서드 이름에도 2(getName2, setName2)를 붙여주면 키 값이 name2로 잘 나옵니다 이렇게 동작하는 이유가 뭔가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
render의 정확한 의미가 무엇인가요??
선생님께서 뷰 화면으로 forwarding 할때 렌더라고 말씀하시고, MyView 객체에도 render 메서드를 만드셨는데 검색으로는 렌더링이 브라우저가 HTML을 모니터에 출력해주는 거라고 나오는데 선생님이 사용하신 의미는 다른거 같아 질문드려요!!
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
contextLoader 리스터 에러 발생합니다..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 강사니- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 말씀대로 pom.xml, web.xml다 설정하구요... 실행시키는데 어떤 컴에서는 오류없이 잘 되고 어떤 컴에서는 SEVERE: 클래스 [org.springframework.web.context.ContextListener]의 애플리케이션 리스너를 설정하는 중 오류 발생 이란 에러가 뜹니다.. 인터넷에서 검색한 방법을 해봐도 해결이 되지 않습니다... 버전체크 다 했구요..동일 파일을 복사해서 다른 컴에 실행하면 잘 됩니다.. 무엇이 문제일까요??? 감사합니다..