안녕하세요 선생님 지금까지 실행은 잘 되다가 크롬에서 http://localhost:8080 이 안되서 어제 application.properties 에 server.port = 8082 로 변경하여 잘나왔었는데 또 무언가를 잘 못건드렸는지 사이트에 연결할 수 없음 localhost 에서 연결을 거부했습니다. 다음 방법을 시도해 보세요. 연결 확인 프록시 및 방화벽 확인 ERR_CONNECTION_REFUSED 이렇게 나옵니다. 포트 번호를 다른것으로 바꿔도 위와 같이 나오는데 이유가 무엇인가요??
Database "C:/Users/NOTE/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 윈도우 쓰고 있습니다. 비슷한 문제 있으신 분들이 올려준 질문 글이랑 답변도 보고 따라해보는데 계속 이 오류가 떠서 연결이 안됩니다.. 이거 때문에 진도를 못나가고 있네요.. 어떻게 해야할까요ㅠㅠ
강의중에 궁금한게 생겨서 질문남깁니다. 현재 3년동안 개발을 하면서 ConcurrentHashMap을 사용하지 않고 모든코드를 HashMap으로 처리하였습니다. 물론 실제 고객들이 사용하는 서비스개발 회사가 아니라 주로 금융권 SI프로젝트들 중에서도 고객내부직원들이 쓰는 업무를 주로 개발해서 트래픽이 많이 몰리진 않았거든요. 제가 경험했던 프로젝트들이 여러개의 쓰레드가 접근하지 않아서 HashMap으로도 무리없이 프로젝트가 진행되었던 걸로 생각하면 될까요?? 반대로 트래픽이 몰리는 서비스개발회사에서는 ConcurrentHashMap을 사용하면 되는건가요??
로그를 찍어보니까 체크를 해제하면 false로 들어오는게 보이는데 페이지 소스를 보면 value가 항상 true로 되어 있더라구요. <input type="checkbox" id="open" class="form-check-input" disabled name="open" value="true" /> html상에서 checked가 있느냐 없느냐에 따라 체크 여부를 렌더링하는 것까지는 이해했는데 true라는 값이 어디에서 나오는 것인지 궁금합니다. (1) 체크가 되면 open: true 전송 (2) 체크가 안되면 open값 자체가 전송이 안되니 value가 true여도 문제없음 이기 때문에 서버에 있는 value값을 무시하고 value="true"를 디폴트값으로 렌더링하면서 서버상의 true, false값은 checked 태그로만 확인하는 건가요??
혹시 저와 같은 문제를 겪으실 분들을 위해 제가 잠깐동안 삽질한 경험을 남깁니다. 강의를 쭉 듣던 도중에 로그를 찍는데 item.getOpen()이 안되는 상황을 겪었습니다. 그런데 item.setOpen()은 됐거든요. 찾아보니까 문제는 Item 클래스에서 open을 primitive타입인 boolean으로 선언했기 때문이었습니다. 롬복으로 게터세터를 적용할 경우 primitive boolean의 게터명명규칙이 getSomething이 아니라 isSomething입니다. 따라서 item.isOpen()을 입력해야 에러가 없습니다. 그럼 어떻게 영한님은 isOpen이 아니라 getOpen이 되었는가? 다시 잘 살펴보니 boolean이 아니라 참조형인 Boolean을 사용하셨습니다....ㅜ null값 때문인 것 같습니다. 참조형이니까 롬복이 getOpen을 생성합니다. 생각없이 따라치다가 이런 일을 겪네요. 집중해서 열심히 듣겠습니다. 혹시 이 글을 보게된 여러분 화이팅..
안녕하세요 강사님 Thymeleaf 엔진이 Bean에 접근할수 있게 해주는 기능을 만든 이유가 타임리프 개발팀이 실무에서 자주쓴다고 판단했거나, 개발자들의 요청에 의해 만들어졌다고 생각하는데요! 실제로 템플릿엔진이 직접 등록한 Bean에 접근해서 무언가를 액션하는 시나리오가 어떤게 있을까요 ? (MVC 2편 알림보고 바로 구매해서 주행중입니다. 늘감사합니다)
새로고침 문제를 PRG 패턴으로 해결했어도 뒤로가기 버튼을 누르면 '전의 전'의 요청을 다시하는가 싶어서 눌러보았습니다. 그랬더니 get 요청처리되어서 상품 등록 폼이 나왔습니다. 그래서 상품이 중복 등록되진 않는 것 같은데 '전의 전'에 사용한 'get method' 요청을 다시 보낸다고 이해하면 될까요? 전의 전 요청이 post 요청이면 건너띄고 전의 전 get 요청을 찾아서 보내는 거라고 이해했습니다. 뒤로가기에 대해서 제가 제대로 이해한 건지 잘 모르겠습니다.
안녕하세요 이번 강의를 듣다가 문득 드는생각에 질문드립니다. SpringMVC패턴을 너무 깊숙히 알지 않아도 괜찮은건가요? 대충 큰 그림만 알아도 되는건지 궁금합니다. 너무 깊게 들어가면 한도 끝도 없는것 같아서요 ㅠㅠ 그리고 알아야한다면 이번 강의에서 코드하나하나보다는 흐름정도만 알면 되겠죠?
안녕하세요, 강의 잘 듣고 있습니다. 강의에서 이끌어 주시는대로 따라가다가 생각을 해봤습니다. - ControllerV1 은 추상적 형태이고, MemberFormControllerV1. MemberSaveControllerV1, MemberListControllerV1 는 구체적 형태이다. - 추상적 형태를 나타내는 방법에는 Interface와 Abstract class 가 존재한다. 아래와 같은 의문이 들었습니다. - 현재 상황에서 Abstract class 를 사용하지 않고 Interface 를 사용한 이유가 뭔가요? - 만약 Interface 를 사용한 특별한 이유가 있다면, 어떤 상황에서 Abstract class 또는 Interface 를 선택하는게 옳을까, 판단하는 근거를 간략하게나마 말씀해주시면 감사하겠습니다. 좋은 하루 되세요 !
안녕하세요. 김영한 팀장님. ' 컴포넌트 스캔과 자동 의존관계 설정 ' 강의 02:35 쯤 ' MemberConroller ' 클래스의 멤버변수로 ' MemberService ' 타입의 멤버변수를 선언할 때 final 키워드 를 설정한 이유에 대한 질문입니다. Java에서 final 키워드가 붙은 멤버변수는 쉽게 말해 '변할 수 없다.' 라는 의미를 가지게 됩니다. 저는 스프링에서 다루는 Bean은 '특별한 설정 설정(Scope)'이 없는 경우 싱글톤 형태로 스프링 컨테이너에 등록되어 상황에 따라 다른 클래스의 의존 주입 객체로 사용할 수 있는 것으로 이해하고 있습니다. 이러한 이유로 현재 MemberController에서는 Setter 메소드도 선언되지 않았으니 생성자를 통한 의존 주입 이후에는 MemberService 타입의 멤버변수가 변경될 가능성이 없다고 보아 final 키워드를 사용하지 않아도 되지 않을까? 하는 의문이 들었습니다. 그럼에도 불구하고 final 키워드를 사용한 이유가 궁금합니다! 미리 답변 감사드립니다.
실제 HTTP요청에 의해 많은 트래픽이 발생할 경우 쓰레드풀의 있는 쓰레드의 숫자를 상황에 맞추어서 증가시켜주면 된다고 강의해주셨는데요 제가 아직 그런부분을 다뤄본 경험이 없어서 질문드립니다. 인터넷을 찾아보니 쓰레드풀의 최대갯수를 늘리는 방법이 ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setMaxPoolSize( 10 ); taskExecutor.setQueueCapacity(10); 이렇게 나오던데 실무에서도 이런식으로 setMaxPoolSize를 통해서 쓰레드의 수를 증가 시키고 setQueueCapacity를 통해 대기하는 쓰레드의 수를 정하나요?
안녕하세요 매번 격는 문제여서 질문합니다. 다른 project에서 jdk1.8로 사용을 하고 있고 JAVA_HOME도 1.8로 설정을 했을 경우 인텔리제이에 설정은 jdk11모두 설정을 했는데 ㅜ jdk11을 사용하는데 이러한 에러가 나와요 Execution failed for task ':compileJava'. > invalid source release: 11 jdk를 여러 버전을 각각의 프로젝트 마다 달리 사용할려면 설정을 어떻게 해야 하는지요