묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리 질문
타임리프를 이용해서 홈화면 html 헤더랑 푸터를 분리 시켜놨는데 그이후부터 로그인 사용자 이름 받아오는 model 값을 못 가져오는데 이경우에는 어떻게 해결해야하는지 알고싶습니다. <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{fragments/layout}"> <head> <meta charset="UTF-8"> <title>Hi-End</title></head><body layout:fragment="content"> <h4 class="mb-3" th:text="|로그인: ${member.name}|">로그인 사용자 이름</h4>${member.name}이부분이 에러가 뜨면서 값을 가져오지 못합니다.헤더랑 푸터를 분리시킨걸 다시 합치면 model에 담긴 값을 잘 가져옵니다.분리 시킨 상태에서 model에 담은 값은 가져올수있는 방법이 없는건가요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
조금 더 안전한 방법과 조금 더 개선한 방법의 차이
안녕하십니까 강사님 ! 질문있습니다 :) 조금 더 개선한 방법의 원리는 만약 인증이 들어왔을 때, Username 과 시리즈는 일치하지만 토큰이 일치하지 않으면 토큰이 해커에 의해 탈취되었다고 간주해서 모든 토큰을 삭제하는 원리인데, 조금 더 안전한 방법도 Username 은 일치하지만 토큰이 다르면 똑같이 탈취되었다고 간주하고 모든 토큰을 삭제하면 동일하게 동작하지 않을까 하는 궁금증이 생겼습니다. 전자랑 후자 방법 둘다 해싱에 패스워드는 사용되지 않아서 복호화 된다고해도 계정이 탈취당하는 일이 없는데 굳이 시리즈를 이용하는 이유가 있을까요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf message 사용 시 Cannot resolve property key 에러
안녕하세요 ! 강의에서는 Intellij thymeleaf message 사용 시 properties 파일과 연동 및 자동완성이 잘 되는데 저는 Cannot resolve property key 에러가 뜨고 message 파일과 연동이 잘 되지 않는 것 같습니다. 프로젝트 실행에는 이상이 없지만 강사님처럼 동작하게 하려면 따로 설정해야 하는 부분이 있을까요? 구글링해도 해결방법을 찾지 못 해 질문 남깁니다..! 감사합니다 !!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
thymeleaf 이미지 업로드시 재로딩 하지 않는 이상 이미지 출력이 안됩니다.
안녕하세요? 김영한 강사님! 질문이 있습니다. thymeleaf 로 페이지를 작성하고 파일을 업로드 하여 이미지 출력까지 해보려는데요 태그 <img th:src="@{${image}}"> 이런식으로 출력되게 했는데요. 이게 톰켓 재시작시는 업로드한 파일이 보이는데요 재시작 하지 않고 뷰페이지를 봤을때 엑박이 뜨는 상황입니다. 페이지를 리프레시 하여도 마찬가지로 엑박이 뜨고요.. 핫 리로드라는 것을 적용해 봤는데 마찬가지로 톰캣 재시작을 하지 않는 이상 엑박이 뜨는 상황입니다. 강사님!!! 도와주세요!!!! ^^;;; 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:inline은 왜 필요한건가요?
안녕하세요 항상 감사드립니다. unescaped 설명하실 때, span 태그 안에 th:inline를 넣는 이유가 궁금합니다. 구글링해보니 컨트롤러에서 입력된 데이터를 출력할 때 쓰는 것 같던데, 그동안 딱히 th:inline을 쓰지 않아도 잘 출력됐었고, 실제로 코드에서 th:inline="none"을 빼도 Hello Spring!이 문제없이 뜨는 것을 확인할 수 있었습니다. th:inline은 왜 쓰는건지 궁금합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf syntax highlighting & code completion이 되지 않아요..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 선생님 안녕하세요, 항상 강의 잘 듣고 있습니다! 타임 리프 관련해서 질문이 있는데요..강의를 보면 타임리프 파일을 작성할 때 intellij에서 오류도 잡아주고 코드 추천도 해주는데, 갑자기 제 intellij에서 안 되기 시작했습니다 preferences에서 thymeleaf 플러그인을 검색해보니 'not loaded'라면서 'javascript and typescript'부터 enable하라는 안내 메시지가 있었습니다. javascript and typescript를 enable한 후에 thymeleaf plugin을 보니까 bundled, enabled로 잘 바뀌어 있었어요. (thymeleaf plugin은 default로 깔려서 enable되어 있다고 하더군요) 그런데도 아직도 thymeleaf 지원이 안 됩니다 ㅠㅠ 제 기억에는 타임리프 프로젝트를 처음부터 각자 만들었던 '타임리프-기본기능'에서는 이런 문제가 없었고, '타임리프 - 스프링 통합'부터 이 문제가 발생하기 시작한 것 같아요. 어떻게 해결할 수 있을까요? 감사합니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Error??
- 이렇게 빨간줄이 생겨서 ctrl+클릭을하면 controller로 갈 수가 없네요구글링하면 해결방법이 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://thymeleaf.org" lang="">하면 빨간줄만 없어지고 해결은 안되네요 방법이 없을까요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
thymeleaf관련
thymeleaf를 사용하다 의문점이 들어 질문을 남깁니다. 이 템플릿을 배우는 이유는 restapi상황에서 front와 back이 나눠져있는 상황에 지금 당장 front와 연결할 수 없을 때, 먼저 가상 시나리오를 실행시켜보기 위해서 알아야하는 템플릿을 익히는 것인가요 ??
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
윈도우에서 gradle로 빌드하시려는 분께 공유드립니다.
윈도우 환경에서 gradle로 빌드 하시려는 분들을 위해 공유 드립니다. 1. build.gradle dependencies { ... classpath "com.github.node-gradle:gradle-node-plugin:3.1.0" } classpath에 node-gradle 을 추가해 주시고 def preinstalledNodeDistributionDirectory = file("${projectDir}/src/main/resources/static/node") 이거 하나 선언해 주시고 apply plugin: "com.github.node-gradle.node" 위 플러그인 적용해주시면 node { version = '11.15.0' // 제가 사용중인 노드 버전을 적었습니다. download = true nodeModulesDir = file("${projectDir}/src/main/resources/static") } task copyFrontLib(type: Copy) { from "${projectDir}/src/main/resources/static" into "${projectDir}/build/resources/main/static/." } copyFrontLib.dependsOn npmInstall compileJava.dependsOn copyFrontLib 해당 코드를 추가하여 사용하시면 build시에 프런트 라이브러리들을 빌드에 추가하실 수 있습니다. 2. css 깨짐 현상 본 강의와 같이 부트스트랩을 사용하셔서 동일한 css를 적용시키려면 그냥 install bootstrap으로는 안되는것같습니다. 버전이 달라서 css 속성명이 달라졌나봐요... 그래서 만약에 build에 정상적으로 라이브러리 추가 되시는데 뷰가 어디가 좀 깨져서 나오시거나 css가 적용이 잘 안되시면 "dependencies": { "bootstrap": "^4.4.1", "jquery": "^3.4.1" } 선생님이 강의에서 사용하신 버전으로 명시적으로 바꾸어주셔야 합니다. 저렇게 적용하면 정상적으로 뷰가 나와요... 많이 해맸네요ㅜㅜ
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
선생님 안녕하세요
안녕하세요 제가 강의를 보고 공부하던도중 8:14분에 있는 정규식과 닉네임의 제출양식이 같아야하는부분에서 must match~라고 빨간 오류를 내주는 부분에서 저는 가입하기 버튼을 눌렀을때 오류를 내지않고 그냥 인덱스 페이지(/)로 그냥 정상적으로 보내버려서 오늘 하루동안 이 오류를 계속 잡고 있다가 디버깅, 코드 비교 5번, 인텔리제이 재설치 pom.xml 파일 똑같이 맞추기 별 방법을 해봐도 안됬는데 선생님께서 제공해주신 완성된 소스코드의 첫 커밋으로 체크아웃하여 스프링 버전을 선생님의 스프링 버전인 2.2.4에서 제가 강의를 들으며 직접 코드를 따라치던 스프링의 버전인 2.5.2로 변경을 하고나니 선생님꺼의 완성코드 프젝에서도 저런 must match오류 구문이 안나타나고 그냥 인덱스페이지로 이동을 시키는 현상이 똑같이 나타났습니다. 제가 이 현상을 보고 오류의 원인이 스프링 버전차이라고 확신을 하게되었는데요 제 인텔리버전은 21.2EAP버전입니다 근데 스프링 프젝을 처음만들때 2.2.4버전으로 만드는 탭이 아예없어서 앞으로 스프링 프젝을 2.5이상 버전으로 해야할거같은데 이런 버전차이때문에 나타나는 현상을 어떻게 해결할수 있을까요? 그리고 @Pattern 어노테이션 뿐만아니라 @Length어노테이션에도 min = 3, max = 5를 주고 5개를 훨씬넘게 입력을 했는데도 오류를 잡아주지않았습니다. P.S 제가 직접 보고 따라쳤던 타이핑버전의 소스코드를 그대로 선생님꺼 완성된프젝에 옮겨서 실행했는데 정상작동이 됬습니다. 이 말은 제가 타이핑친 소스코드에 정말 문제가 없다는 거여서 제가 버전차이의 문제라고 확신을 하게되었습니다. 아 그리고 EAP버전이여서도 아닌게 제가 재설치를 하기전까지는 EAP버전이 아니였습니다. 긴글 읽어주셔서 정말 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
bookForm @NotEmpty 문의 드립니다.
강사님 안녕하세요. memberController 부분은 강사님께서 강의해서 해 주신대로 @NotEmpty가 잘 동작 하였고 itemController 에서 item을 생성할 때에도 member와 동일하게 @Valid 체크를 넣어주려고 했습니다. 일단 지금 매핑되는 문제가 있습니다 ㅜㅜ 이러한 에러가 뜨고 있습니다. An error happened during template parsing (template: "class path resource [templates/items/createItemForm.html]") 폴더와 html은 정확하게 들어가있습니다. bookForm에 @NotEmpty를 넣은 부분입니다. 컨트롤러 화면 입니다. 디렉토리와 타임리스 화면 입니다 memberList를 참조하여서 추가 하였으며, memberList에는 acation ="@{/ }" 이러한 골뱅이 표시와 중괄호가 없었으므로 동일하게 테스트를 해보아도 An error happened during template parsing (template: "class path resource [templates/items/createItemForm.html]") 동일하게 에러가 뜨는것 같습니다. member부분에서는 잘 작동하는데, item에서 동작하지 않는 부분이 궁금합니다 ㅠㅠ 제가 무엇인가 놓친 부분이 있는것 같습니다. 좋은 강의 항상 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프 문법
안녕하세요 강의 잘 보고있습니다 질문 하나만 하겠습니다. 상품 수정 링크 -> th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" 를 th:onclick="|location.href='@{/basic/items/{item.id}/edit}'|" 로는 쓸수가 없는건가요 ?? ------------------------------------------------- 앞의 회원id 상품명 링크는 th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}"> - > th:href="@{|/basic/items/${item.id}|}" th:text="${item.itemName}"> 처럼이요...
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
메이븐말고 그래들로 만들어서하고싶은데
그래들로 만들어서 뷰를 그대로 넣고 따라하며 듣고있는데, 화면이 깨집니다. 기본 html은 나와서 사용이 가능한데, 흰화면에 html 밖에 안나오는데 해결방법이 없을까요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:onclick에서 굳이 @{경로} 쓰는 이유가?
안녕하세요? 영한님. 오랜만에 올립니다. resources/templates/basic/addForm.html 에서, [취소] button 부분: th:onclick="|location.href='@{/basic/items}'|" 경로에 @{..} 쓰지 않고, th:onclick="|location.href='/basic/items'|" 로 써도 나중에 소스 보기하면 둘 다 똑 같이 보입니다. 이렇게요, onclick="location.href='/basic/items'" 그렇다면, 굳이 @{..} 를 쓰지 않아도 되는 것 아닐까요? 강의 중에 이미 말씀하신 건지 모르겠지만, 질문 올립니다. (Spring MVC 강의 질문이 너무 없어서 채워 드리려 적는 것, 아닙니다.^^)
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프에 대해 질문 드립니다.
안녕하세요. 강의를 듣던 도중 궁금한 점이 생겨 질문 드립니다. 섹션1. HTML, HTTP API, SSR, CSR에서 SSR을 설명해주실 때, SSR에는 타임리프가 있고, 주로 정적인 화면에 사용한다고 설명해주셨습니다. 타임리프에 controller에서 받은 데이터를 동적으로 처리할 수 있고, 그렇게 자주 사용했는데 정적인 화면에 주로 사용한다는 설명이 와닿지가 않습니다. 제가 생각하는 정적인 화면은 단순히 템플릿을 사용하지 않은 HTML입니다. 제가 생각하는 정적, 동적의 개념이 잘 못된 것인지, 타임리프를 잘 못 사용하고 있는 것인지 모르겠습니다. 어떻게 생각하는게 맞는지 알려주시면 감사하겠습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
프로젝트 세팅 중 maven compile시 에러발생합니다
프로젝트 실행하기 강의중에 maven compile시에 아래와 같은 에러가 발생합니다. 해결 방법이 있을까요? Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.8.0:npm (npm install) on project studyolle: Failed to run task
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
패키지 구조 관련 질문입니다.
안녕하세요. 어제 라이브 재밌었습니다.신세경.. 미국엔 잘 돌아가셨는지 궁금하네요..ㅎㅎ 다름이 아니고, 강의를 보고 개인 프로젝트를 진행하려고 하는데 패키지 구조를 도메인형으로 해야할지, 계층형으로 해야 할지에서 부터 고민이 되어 질문드립니다. 기선님 강의에서는 도메인으로 나뉘었고, 펫클리닉 프로젝트도 찾아보니 도메인으로 나눠놓았더라구요 제가 본 여타 다른 강의들에서는 컨트롤러/서비스/레포지토리/exception/ 등등으로 나눠놓은 걸 보아 어떤 것이 정답이다 라는 것은 없는것 같기도하고.. 해서 블로그 글을 참고해서 보니https://cheese10yun.github.io/spring-guide-directory/도메인이 더 낫다는 글을 보았습니다. 기선님 강의들에서는 더 나은 패키지구조 선택에 관해서 언급하셨던 기억이 없어서 질문드려요! 너무 좋은 강의 만들어주셔서 감사합니다. 많은 도움이 되고 있어요 :)
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
file not found 질문
안녕하세요, Path를 가져오는 부분(resources.getFile()) 에서 자꾸 file not found를 던지는데 왜 그런지 도무지 이해가 가지 않습니다. csv 파일의 경로는 resources/zone_kr.csv 입니다. resource import 도 spring.core.io.Resource를 사용했습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
안녕하세요 ModelMapper 질문이 있습니다.
현재 강의 수강하면서 개인적으로 프로젝트를 하나 만들어보면서 함께 적용도 해보면서 공부하고 있는데요. 웹이 아닌 API만 구현 중 입니다. 1. 제가 공부하기로는 API개발에서도 Entity를 리턴해주면 않되고 DTO로 만들어서 사용자에게 내보내줘야 한다고 알고 있는데 이때에도 ModelMapper와 같은 라이브러리를 이용해서 DTO to Entity와 Entity to DTO로 사용해야 하는건가요 ? 2. 모든 Response에서 DTO로 만들어서 리턴을 해주는지 궁금합니다. 모든 요청마다 DTO를 만들어서 리턴해주기에는 번거롭고 DTO가 많아질 것 같습니다.