묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
CRUD 미니플젝을 하는도중에 궁금합니다.
/* 등록 */ public void savePosts(Posts posts) { postsRepository.save(posts);/* 업데이트 */ public void doUpdate(Posts posts) { postsRepository.save(posts);구글링을 해보니 JPA의 save를 사용했을시 기존에 DB에 데이터가있을땐 바뀌는 부분만 업데이트 된다해서 이렇게 코딩을 했습니다. 하지만 수정기능을 동작해보니 기존 데이터가 수정되지 않고 새로운 데이터로 DB에 추가가 되고있습니다. 무언가 다른 방법이 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
user-service에 로그인 404뜨는데 뭐가 문제일까요?
깃허브 코드대로 했습니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
병합이랑 변경감지를 왜쓰나요? 그냥 jpa에 있는 sql문 update를 쓰면 되지않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예전에 프로젝트를 할때jpa에 있는 sql문을 통해서 update문으로 수정을 했는데병합이랑 변경감지를 구지 쓰는 이유가 있을까요?
-
미해결스프링 시큐리티
파라미터값이 넘어가지 않습니다 ....
여기까진 값이 잘 전달이 되었는데 왜 넘어가지 않을까요 ...이런 에러가 발생하는데 아무리 봐도 리다이렉트는 한번밖에 안한거같지 말입니다 ㅜcustomAuthenticationFailureHandler입니다 실행결과 입니다 url을 직접 입력할 땐 메세지가 잘 나옵니다
-
해결됨스프링 시큐리티 OAuth2
OAuth2AuthorizationServerConfigurer 질문 있습니다.
ProviderSettings를 통해 기존의 토큰 요청 uri을 변경하는 법은 숙지했으나 token endpoint uri를 여러개 설정하는 방법이 있는지 궁금합니다.ex ) /oauth2/token /get-token ....
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
특정 dir로 위치를 잡으려면 어떻게 설정을 해야할까요
config를 root dir에 위치시킨게 아니라 특정 dir에 넣고 싶은데 그럴 때는 어떻게 uri를 잡아야하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HashMap 에러가 발생합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 테스트 케이스 작성하고 처음으로 실행해볼 때 실행하니까 HashMap에서 에러가 발생하는데 어느 부분이 문제인지 잘 모르겠습니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
6강 질문 @RequestParm, @RequestBody
@GetMapping("/add") public int addTwoNumbers(CalculatorAddRequest request) { return request.getNumber1() + request.getNumber2(); } @PostMapping("/multiply") public int multiplyTwoNumbers(@RequestBody CalculatorMultiplyRequest request) { return request.getNumber1() * request.getNumber2(); }GetMapping 메소드에서는 @RequestParm 어노테이션을 사용하지 않아도 자동으로 쿼리 데이터를 DTO로 변환해주고 PostMapping 메소드에서는 @RequestBody 어노테이션을 사용해야만 Body 데이터를 DTO로 변환해주는 것인가요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
데이터베이스에 쿠폰 insert 실패시
안녕하세요. 강의 잘 듣고있습니다 !카프카 컨슈머가 쿠폰레포지토리에 save하는 과정에서 모종의 이유로 실패하여 롤백 되었을 때, 레디스에서는 이미 increment가 되었는데 이걸 하나 빼줘야되는거 아닌가요?이런 처리는 어떻게하는지 궁금합니다 !추가) 뒤에 얘기가 나오는군요 ㅎㅎㅎ.. FailedEvent를 저장하는 것도 실패하였다면, 배치프로그램이 제 역할을 못할 것 같은데요.. ! 그렇다면 로그를 보고 판단해야할 것 같은데 실무에서도 그렇게 진행이 될까요 ? 그리고, FailedEvent를 삽입하는 것에서도 에러가 발생할 수 있기 때문에 또 try catch로 묶어서 이것 마저 실패할 경우에도 로그를 따로 남겨야하는지 궁금합니다 !
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
jjwt 0.12 이상으로 하시는 분들에게..
jjwt가 버전업 되면서 강사님이 업데이트 해주신 코드들도 jwt valid할 때 안되는 경우가 발생하더라고요... 그래서 찾아본결과다음과 같이 작성하시면 원활하게 동작을 합니다. 참고하세요. private boolean isJwtValid(String jwt) { byte[] secretKeyBytes = Base64.getEncoder().encode(env.getProperty("token.secret").getBytes()); SecretKey signingKey = new SecretKeySpec(secretKeyBytes, SignatureAlgorithm.HS512.getJcaName()); boolean returnValue = true; String subject = null; try { JwtParser jwtParser = Jwts.parser(). verifyWith(signingKey).build(); Jws<Claims> claimsJws = jwtParser.parseSignedClaims(jwt); Claims payload = claimsJws.getPayload(); subject = payload.getSubject(); }catch (Exception ex){ returnValue = false; } if(subject == null || subject.isEmpty()){ returnValue = false; } return returnValue; }
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
그래들 디펜더시 버전 명시
안녕하세요, 궁금한 게 있어 질문드립니다!현재 강의까지 그래들에 3개의 디펜던시를 추가해주었는데요, 기존 자바-스프링부트 환경에서는 디펜던시에 라이브러리 버전을 명시하지 않아도 스프링부트가 내부적으로 호환되는 버전을 찾아 사용하는 것으로 알고 있습니다.반면, 코틀린-스프링부트에서 디펜던시를 사용할 때 세 경우 모두 버전까지 명시해 사용했는데요, 혹시 코틀린을 사용할 땐 매번 이렇게 최신의 안정화된 버전을 찾아 사용해야 하는 것인지 궁금합니다.또한 검색해보니 groovy gradle 대신 사용하는 kotlin-dsl이라는 것도 봤는데요, 혹시 고급편에 이 내용이 포함되어 있을지도 궁금합니다.항상 정성들인 답변 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
member엔티티와 order 엔티티의 조회 시 관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]json으로 return 할 때 궁금한 점이 있어서 질문드립니다.이전 강의에서 member 엔티티 자체를 json 타입으로 return 할 때는 orders(컬렉션)에 대해 무한루프가 걸리지 않았지만 order를 json 타입으로 return하게 되면 강의에서 처럼 여러 엔티티들에 의해 무한루프가 걸리게 됩니다.컬렉션인 데이터의 경우 무한루프에 걸리지 않는 이유가 무엇인가요??
-
미해결코드로 배우는 React with 스프링부트 API서버
TypeError: Cannot read properties of undefined (reading 'map')에 대한 문제
크롬에서의 문제입니다웹스톰 내에서는 또 다른 문제가 있다고 하네용 import { useEffect, useState } from "react"; import { getList } from "../../api/productsApi"; import useCustomMove from "../../hooks/useCustomMove"; import FetchingModal from "../common/FetchingModal"; import { API_SERVER_HOST } from "../../api/todoApi"; import PageComponent from "../common/PageComponent"; import useCustomLogin from "../../hooks/useCustomLogin"; const host = API_SERVER_HOST const initState= { dtoList:[], pageNumList:[], pageRequestDTO: null, prev: false, next: false, totalCount: 0, prevPage: 0, nextPage: 0, totalPage: 0, current: 0 } const ListComponent = (props) => { const {page, size, refresh, moveToList, moveToRead} = useCustomMove() const {exceptionHandle} = useCustomLogin() //serverData는 나중에 사용 const [serverData, setServerData] = useState(initState) //for FetchingModal const [fetching, setFetching] = useState(false) useEffect(() => { setFetching(true) getList({page,size}).then(data => { console.log(data); if(data && data.dtoList){ setServerData(data); } setFetching(false); }).catch( err => exceptionHandle(err)) }, [page,size, refresh]) return ( <div className={"border-2 border-blue-100 mt-10 mr-2 ml-2"}> {fetching ? <FetchingModal/> :<></>} <div className="flex flex-wrap mx-auto p-6"> {serverData.dtoList && serverData.dtoList.map(product => <div key= {product.pno} className="w-1/2 p-1 rounded shadow-md border-2" onClick={() => moveToRead(product.pno)} > <div className="flex flex-col h-full"> <div className="font-extrabold text-2xl p-2 w-full "> {product.pno} </div> <div className="text-1xl m-1 p-2 w-full flex flex-col"> <div className="w-full overflow-hidden "> <img alt="product" className="m-auto rounded-md w-60" src={`${host}/api/products/view/s_${product.uploadFileNames[0]}`}/> </div> <div className="bottom-0 font-extrabold bg-white"> <div className="text-center p-1"> 이름: {product.pname} </div> <div className="text-center p-1"> 가격: {product.price} </div> </div> </div> </div> </div> )} </div> <PageComponent serverData={serverData} movePage={moveToList}></PageComponent> </div> ); } export default ListComponent;Listcomponent에 문제가 있다고 해서 찾아보려고 하는데 어떻게 봐도 모르겠습니다ㅜㅜ 누구든 도와주세요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JpashopApplication 실행 시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 처음에 선생님이 환경설정 하신다고 JpashopApplication에아래와 같은 코드 만들어놓고 메인메서드 실행하셨는데 저는 그럴때마다 Process 'jpashop [:JpashopApplication.main()]' Is Running 'jpashop [:JpashopApplication.main()]' is not allowed to run in parallel. Would you like to stop the running one? 이런 메세지 뜨면서 새로 실행이 되는데 선생님께선 Do not show this dialog in the future 체크해놓고 매 실행시마다 새로 실행이 되는게 맞는걸까요?Hello hello = new Hello(); hello.setData("hello"); String data = hello.getData(); System.out.println("data = " + data);
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
controller restcontroller
선생님 안녕하세요. 거의 다 완강하고 나서 문득 든 생각이 있습니다. 저희 도서 관리 프로젝트에서 controller를 안쓰고 restcontroller을 사용한 이유가 궁금합니다일단 제가 구글링을 해보았을때,controller은 반환 값이 string이면 뷰를 찾고 렌더링 한다고 나와있으며 restcontroller은 @Requestbody + @controller이며 뷰를 찾는게 아니라 http메세지 바디에 바로 입력한다고 찾아보았습니다. 저는 프론트엔드에게 데이터를 주려면 모델에 담아서 보내야 하는 것으로 이해하고 있는데 그러면 controller을 쓰는 것이 맞지 않나 의문점이 들었습니다. 여기서 더 해답을 찾지 못하겠어서 질문글을 남겼습니다.감사합[니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
-jar 명령어가 실행이 안되는 것 같습니다
java -jar ~ 명령어를 쳐도 빌드가 안되네요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2대신 mysql로 했습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]h2console에는 이전강의시간에 했던 test만 작동되고.. jpashop이 안만들어져서 그냥 mysql로 했습니다spring: datasource: url: jdbc:mysql://localhost:3306/jpashop username: user password: user1234 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: create properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect format_sql: true logging: level: org.hibernate.SQL: debugddl-auto: create로 되어있는데 어플리케이션 실행후 workbench로 가보면ORM 표존 JPA 프로그래밍때 했던 DB가 그대로 있습니다..drop 된 후 새로 create 되는것이 아닌가요?스프링부트에서도 hibernate sql문 출력이 안됩니다,, 테스트에서도 @Rollback(false)를 안하면 통과이고@Rollback(false)를 하면 unknown column오류가 납니다..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
뷰 코드 복사했는데 복사도 이상하게 되고 실행하면 오류가 뜨는데 뭐가 잘못된건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]pdf 파일에 있는 뷰 코드복붙했는데실행하면 오류가 뜹니다. pdf파일 복사가 제대로 안되는데 왜 구지 pdf로 올리는지 모르겠네요 일단 코드 보여드릴게요creatememberform.html<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header" /> <style> .fieldError { border-color: #bd2130; } </style> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form role="form" action="/members/new" th:object="${memberForm}" method="post"> <div class="form-group"> <label th:for="name">이름</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요" th:class="${#fields.hasErrors('name')}? 'form-control fieldError' : 'form-control'"> <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Incorrect date</p> </div> <div class="form-group"> <label th:for="city">도시</label> <input type="text" th:field="*{city}" class="form-control" placeholder="도시를 입력하세요"> </div> <div class="form-group"> <label th:for="street">거리</label> <input type="text" th:field="*{street}" class="form-control" placeholder="거리를 입력하세요"> </div> <div class="form-group"> <label th:for="zipcode">우편번호</label> <input type="text" th:field="*{zipcode}" class="form-control" placeholder="우편번호를 입력하세요"> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <br/> <div th:replace="fragments/footer :: footer" /> </div> <!-- /container --> </body> </html>itemlist.html<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header" /> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <div> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>상품명</th> <th>가격</th> <th>재고수량</th> <th></th> </tr> </thead> <tbody> <tr th:each="item : ${items}"> <td th:text="${item.id}"></td> <td th:text="${item.name}"></td> <td th:text="${item.price}"></td> <td th:text="${item.stockQuantity}"></td> <td> <a href="#" th:href="@{/items/{id}/edit (id=${item.id})}" class="btn btn-primary" role="button">수정</a> </td> </tr> </tbody> </table> </div> <div th:replace="fragments/footer :: footer"/> </div> <!-- /container --> </body> </html>이코드 실행하면Whitelabel Error Page라고 뜨네요뭐가문제인가요..pdf그대로 복사하면 복사가 제대로 안되서 붙여넣어지는데불편하네요
-
미해결백엔드 개발자 성능 개선 초석 다지기
첫번째 회사에서 서비스 회사로 이직하실때 준비
안녕하세요 강의 잘 듣고있습니다.다름이 아니라 혹시 첫번째 회사에서 서비스 회사로 이직하실때 어떤 준비를 하셨는지 알 수 있을까요?아무래도 서비스 -> 서비스 이직이 아니다 보니깐 어떤 준비를 하셨는지 궁금합니다.
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
수업 그대로 따라했는데 404오류가 발생합니다.
안녕하세요 다국어 처리 수업 중에 수업 그대로 작성했는데 이러한 오류가 발생하게 됩니다.뭐 때문에 이러한 오류가 나는지 모르겠습니다..