묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버testInsertByProduct()에 아예 들어가지를 못하네요...교재 9장까지 잘 따라왔습니다.10장 장바구니 api 만들기에 들어와서 CartRepository 만들고CartItemRepository를 만들고CartRepositoryTests를 만들었습니다.그리고, testInsertByProduct()를 테스트 하는데,Tests failed 가 나왔습니다.코드 몇 군데에서 로그를 확인해봤는데, configuration 부분은 잘 통과했는데, testInsertByProduct() 메소드로는 진입조차 못하고 있습니다.실습환경은 "인텔리제이" 입니다. 아래 캡쳐는, 에러가 시작되는 경계로 생각되는 부분입니다.질문 내용이, 답변 주시기에 좀 부족하다면, 더 필요한 코드 부분이나, 에러로그를 보충해서 다시 질문에 올리도록 하겠습니다. 
- 
      
        
    해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기MySQLConfig 관련 질문있습니다.선생님께서 말씀을 조금 두루뭉술하게 해주셔서인지 ㅠㅠ 다들 궁금해 하시는거같은데 저또한 궁금한 부분들이 있습니다. JPA에서 처음부터 트랜잭션 매니저 구현체로 JpaTransactionManager를 사용하지 않고 auth쪽은 DataSourceTransactionManager를 사용한건 왜 그런건가요?AuthService#createUser()부분에서는 일반 JDBC 기반의 DataSourceTransactionManager를 사용하셨더라구요.이러한 경우 영속성 컨텍스트에서 Entity들의 생명주기까지는 관리가 안되는걸로 알고 있습니다. Lazy Loading이나 Dirty Check 등..채팅관련 트랜잭션 설정할때에는 구체적으로 어떤 메커니즘에 의해 어떤 문제가 발생할 수 있는지 명확히 알려주실 수 있을까요? 제가 몇 번 돌려서 듣긴 했는데 느낌이 STOMP 통신 특성상 발생되는 이슈라고 이해는 한 것 같은데 그게 구체적으로 어떠 어떠한 이유로 오류가 발생한다?혹은 할수도 있다? 는것인지 이해를 못했습니다. 확실히 무조건 오류가 발생을 한다는걸까요? 그리고 그 원인은 무엇일까요?단순히 JPA를 이용한 비즈니스 로직을 작성할때는 JpaTransactionManager가 관리하는 트랜잭션 내에서 작성하자. 그리고 그러기 위해서 createChatTransacationMansger를 사용하자. 라고 이해해도 될까요?JpaRepository 구현체인 SimpleJpaRepository에는 기본적으로 save()에는 트랜잭션이 걸려 있지만 저장 이후에 Entity 조작하는 로직이 있다면 동작하지 않게 되니까요.. 혹시 일반적인 JPA 환경과 별개로 STOMP를 통한 웹소켓 통신 환경에서의 JPA 트랜잭션 처리에 대해 특이사항이 있었던거라면 자세히 설명좀 부탁드려도 될까요? 예를 들어 일반 MVC 프레임웍의 http 통신 환경일때는 스레드 또한 톰캣의 스레드를 사용하지만 STOMP는 환경이 달라서 뭔가 신경써야 할게 있다든지..? 감사합니다. 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류이부분에서 <div class="mine" style="color: {{chat.user}}"> 가 오류뜨는데, 속성값예상 at-rule 또는 선택기가 필요함 이라고 복붙했는데 왜이런오류가뜰가요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버목록(페이징)처리구현 - import package 문의강의수강중에 Pageable import 관련하여아래와 같은 Pageable을 선택하니까오류가 나오더라구요...type unmatch 형태//import java.awt.print.Pageable; springboot를 사용할 때는아래와 같은 org.springframework의 형태가import 우선순위가 되는것이 맞는건가요?import org.springframework.data.domain.Pageable; 
- 
      
        
    미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기validation 추가하기에 대해 질문안녕하세요 validation 강의를 듣고 질문 드립니다. 강의 속에서 설명하신대로 하고 postman에서 실행을 하려고 보니 동작은 하는데 비밀번호 조건이 충족되지 않아도 defaultMessage가 뜨지않고 회원가입이 완료되었다는 창이 뜹니다ㅜㅜ @Valid 어노테이션 사용도 다 했는데 뭐가 문제인걸까요? 
- 
      
        
    미해결스프링부트 시큐리티 & JWT 강의Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?소셜 로그인을 가지고있는 서비스를 만들고있는데 jwt를 도입하려고 합니다oauth2와 시큐리티는 안쓰고 API호출로만 소셜로그인은 완료했습니다JWT강의 듣는데 시큐리티쓰시길래 혹시 꼭 필요한건지 궁금합니다! 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버spread ... 사용하는 이유가 궁금합니다안녕하세요?[조회 페이지 이동] 영상을 보고 있는데요.List, Read Component에서는 spread를 하지 않고 바로 set으로 값을 넣었는데Add Component에서는 왜 {...initState}, {...todo}를 하는지 궁금합니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버moveToList 질문 드립니다.안녕하세요 선생님. 좋은 강의를 정말 잘 듣고 있습니다ㅎㅎ [네비게이션관련 커스텀 훅] 강의에서 궁금한게 생겼는데요~ 쿼리 스트링에 page와 size가 있는데, moveToList에 파라미터로 page와 size를 전달해서 처리해야 하는 이유가 무엇인지 알 수 있을까요? 
- 
      
        
    해결됨카카오,구글 SNS 로그인(springboot3, vue3)refresh 와 naver login 도 두번째 강의도 만들어주시면 어떨까요이 수업 듣고 완전 이해 했습니다.refresh와 로그인도 해주시면 진짜 감사합니당ㅎㅎㅎ kotlin하고 nextjs 로 뚝딱뚝딱 만들었는데 이 정도만 하고 aws 에 올리면 이직 시 포트폴리오로 제출해도 문제 없을 것 같아요. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버tailwind 부분 도와주세요어디를 수정해야 할까요? 지금 계속 다시 해보고 있는데 해결이 되지 않습니다ㅠ앞서 이렇게 했었는데 해결되지 않아 다시 해보고있습니다..! tailwind.config.js 의 content에이렇게 입력하는게 맞나요??index.css에 이렇게 오류가 떠서요 ㅠㅠ-> 우측하단 언어모드를 tailwindCSS로 바꾸면 밑줄은 사라지는데 npm start 실행시이렇게 뜹니다..! 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버tailwind.config.js 의 contenttailwind.config.js 의 content에이렇게 입력하는게 맞나요??index.css에 이렇게 오류가 떠서요 ㅠㅠ-> 우측하단 언어모드를 tailwindCSS로 바꾸면 밑줄은 사라지는데 npm start 실행시 이렇게 뜹니다..! 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버Tailwindcss 설정npx tailwindcss init 작성시 'tailwind'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다. 라고 뜹니다 코드를 다르게 작성해야하나요? 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버MariaDB 연동시 지속적인 에러마지막 JDBC 데이터베이스 설정하는 부분까지 했는데도 계속 에러가 나서 찾아보니 mariaDB보다 MySQL이 더 호환이 잘된다고 나와서 MySQL로 변경하려 합니다.그런데 mariaDB와 MySQL 모두 계속 오류가나서 진행이 되지 않네요 ㅠ참고자료로 올려주신 pdf의 25페이지 코드 참고해서 해봐도 되지 않는데 살펴봐야 할 곳이 어디 있을까요?MySQL로 하는 방법도 알려주시면 감사하겠습니다! 
- 
      
        
    해결됨카카오,구글 SNS 로그인(springboot3, vue3)백엔드 서버에서 소셜 로그인을 전부 처리하는 것에서 질문 있습니다."인가코드(백엔드에서 발급)" 강의에서 백엔드에서 소셜 로그인을 처리 부분에 질문이 있습니다.해당 방식의 단점이 JWT 반환 시, redirect 방식을 사용하므로 JWT 토큰 값이 노출될 수 있어 보안상 문제가 될 수 있다고 이해했습니다.하지만 JWT 토큰 값 자체는 브라우저 로컬 스토리지에 저장하면 어떻게든 유저에게 노출되는 것 아닌가 라는 생각이 듭니다.이에 대한 강사님의 생각이 궁금합니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버이거 프로젝트 실행하는 방법을 알수 잇을까여?spring 실행하는 방법과 이 프로젝트를 실행하는 방법이요 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지무료/프리미엄 동시 소유 시 질문다른 분들의 질문에 답변을 달아주신 내용을 보니까 사용자 계정에 등록된 도메인의 0번째에서 type 값을 사용하여 무료/프리미엄을 구분하는 답변을 예시로 준 것을 봤습니다.프로젝트 환경에서 하나의 사용자가 같은 도메인에 무료/프리미엄 비밀 키를 중복하여 발급 받을 수도 있고 비밀 키를 다수 발급받을 수도 있는데요 이 경우 도메인은 여러개가 조회될 것인데 이런 경우에는 어떻게 처리를 해야하나요?헤더에 비밀 키를 담아서 요청을 보내서 어떠한 비밀 키를 통한 요청인지를 특정하는 방법도 생각해봤습니다.서버 비밀 키는 어차피 클라이언트에게는 노출될 우려가 없고 클라이언트 용 비밀 키는 어차피 클라이언트에게 노출될 것을 염두해둔 비밀 키니까 노출이 되어도 크게 문제가 없을거라 생각했었습니다.하지만 이게 보안에 문제가 되는 방법은 아닌지 모르겠어서 검색을 좀 해봤지만 쉽게 판단이 서질 않습니다.아니면 일단 현재 수준에서는 보안 측면까지 이렇게 고민하기 보다 서버/클라이언트용과 무료/프리미엄용을 분리함에 의의를 두고 이런 강의를 진행하는 것이 옳은걸까요?ㅜㅜ[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 
- 
      
        
    미해결코드로 배우는 React 19 with 스프링부트 API서버안녕하세요 조회기능 구현에서 에러가 발생했습니다vscode를 통해 npm start를 한 후, todo/read/숫자를 입력하니까 404에러가 발생했습니다. 그런데 vscode에서 컨트롤S를 눌렀더니 화면이 떴는데 익스플로러 상에서 새로고침을 하니까 다시 404에러가 발생하는데 이유를 모르겠습니다. 이미지를 첨부할 테니 혹시 더 필요하신 게 있으시면 답변해 주시면 감사드리겠습니다. 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?여태까지 비주얼 스튜디오 코드로 하시다가 웹스톤으로 바꾸셨던데혹시 비주얼 스튜디오 코드로 계속 진행해도 프로그램 실행에는 문제없을까요? 
- 
      
        
    미해결카카오,구글 SNS 로그인(springboot3, vue3)강의 내용 문의 입니당안녕하세요수업 들으면서 동시에 코틀린으로 코딩하다보니 중간중간 놓치는 부분이 있어서 코드 제공이 가능할까요?코드 제공 주신 다는 내용은 들었는데 자료에 안보여서 동영상을 여기저기 반복 재생하니 진도가 느려지네요 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지10강 cors에러 localhost:4000으로 접속했을때 에러에러로 의심되는 코드 올릴게요.아래는 nodebird-api 의 routes/index 파일과 middlewares/index.js코드의 corsWhenDomainMaches 모듈인데 뭐가문제인지 모르겠습니다. cors모듈은 사용했는데 말이죠 module.exports = router; exports.corsWhenDomainMatches = async (req, res, next) => { const domain = await Domain.findOne({ where: { host: new URL(req.get('origin')).host }, }); if (domain) { cors({ origin: req.get('origin'), credentials: true, })(req, res, next); } else { next(); } }; const express = require('express'); const { verifyToken, apiLimiter, corsWhenDomainMatches } = require('../middlewares'); const { createToken, tokenTest, getMyPosts, getPostsByHashtag } = require('../controllers/v2'); const router = express.Router(); router.use(corsWhenDomainMatches); // POST /v2/token router.post('/token', apiLimiter, createToken); // POST /v2/test router.get('/test', apiLimiter, verifyToken, tokenTest); // GET /v2/posts/my router.get('/posts/my', apiLimiter, verifyToken, getMyPosts); // GET /v2/posts/hashtag/:title router.get('/posts/hashtag/:title', apiLimiter, verifyToken, getPostsByHashtag); 
