묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL 에러 (For queries with named parameters you need to use provide names for method parameters)
안녕하세요. 영한님! JPQL을 @Query ( "SELECT user " + "FROM FMSUser user " +// " LEFT JOIN FETCH user.roles role " + " JOIN FETCH user.company company " + "WHERE user.email = :email" ) User fetchByEmailWithAuthorities(String email); 사용하다가 다음과 같은 (Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException)에러가 나왔는데 구글링을 하다보니 자바 8버전 밑으로는 명시적으로 @Param()을 사용하라고 되어있었고, 8버전 또는 그 위에 버전은 "Preferences(Command + ,) > Build, Execution, Deployment > Compiler > Java Compiler" 에서 Additional command line parameters 부분에 -parameters 이렇게 넣어주면 해결된다고 되어있다고 설명이 되어있는데.. 결론은 해결이 되지 않더라구요. 저는 지금 자바11버전을 쓰고 있는데 혹시 다른 해결방법이 있을까요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
카카오 로그인 내부 동작 순서 관련 질문입니다.
// auth.js router.get('/kakao', passport.authenticate('kakao')); router.get('/kakao/callback', passport.authenticate('kakao', { failureRedirect: '/', }), (req, res) => { res.redirect('/'); }); // kakaoStrategy.js module.exports = () => { passport.use(new KakaoStrategy({ clientID: process.env.KAKAO_ID, callbackURL: '/auth/kakao/callback', }, async (accessToken, refreshToken, profile, done) => { console.log('kakao profile', profile); try { const exUser = await User.findOne({ where: { snsId: profile.id, provider: 'kakao' }, }); if (exUser) { done(null, exUser); } else { const newUser = await User.create({ email: profile._json && profile._json.kakao_account_email, nick: profile.displayName, snsId: profile.id, provider: 'kakao', }); done(null, newUser); } } catch (error) { console.error(error); done(error); } })); }; 위의 코드는 질문과 연관된 코드로 질문의 이해를 돕기위해 첨부하였습니다 다음은 카카오톡 로그인 버튼을 눌렀을 때, 정상적으로 로그인 인증이 진행되는 과정에서 콘솔에 찍히는 로그입니다. 각 로그의 구분을 위해서 1~5번까지 번호를 순서대로 매겼습니다. // (1) GET /auth/kakao 302 4.599 ms - 0 // (2) kakao profile { provider: 'kakao', id: 1807557207, // 생략 } // (3) Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `deleteddAt` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND (`User`.`snsId` = 1807557207 AND `User`.`provider` = 'kakao')) LIMIT 1; // (4) GET /auth/kakao/callback?code=AqnOGyk-OUAvtmCijPwAZZL9Xv6LaN_C1p0f5hSQDpgN2pq9hLJIx_rAAN3-bJJ9DQQgUgopdSkAAAF6qRsigA 3 302 288.890 ms - 46 // (5) Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `deleteddAt` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = 2); 강의를 보며 카카오 로그인 과정을 이해하기로는1. `GET /auth/kakao` 요청2. 카카오 로그인 페이지로 리다이렉트, 로그인 및 인증 진행3. 카카오 로그인 정보와 함께 `GET /auth/kakao/callback`으로 콜백 요청4. 콜백 요청에 대한 라우팅이 되어있으므로, 두번째로 카카오 로그인 전략 수행5. passport.use의 콜백 함수 실행, 로그인 검증 과정 진행6. 로그인 성공 / 실패에 따른 리다이렉트 와 같이 이해하였습니다. 그러나, 콘솔 로그 결과를 살펴봤을 때는 조금 다른 흐름으로 동작하는 것 같은 느낌을 받았습니다. 콘솔 로그를 바탕으로 로그인 과정을 생각해봤을 때는 1. `GET /auth/kakao` 요청2. 카카오 로그인 페이지로 리다이렉트, 로그인 및 인증 진행3. passport.use의 콜백 함수 실행. -> 카카오 프로필 콘솔 출력의 결과로 (2)와 같은 로그가 찍힘 -> profile.id 를 통해 유저가 존재하는지 조회 (findOne) -> 로그인 진행 -> serializeUser 호출4. `GET /auth/kakao/callback`으로 콜백 요청 -> (4) 의 결과를 통해 위 과정을 거친 뒤에 콜백 요청이 일어남을 알 수 있음5. 이미 로그인이 되어있으므로 deserializeUser 호출 -> (5)에서 유저 정보를 조회할 때 세션에 등록된 id로 유저를 조회함6. 로그인 성공 / 실패에 따른 리다이렉트 와 같은 흐름이어야 콘솔 로그 결과와 매칭이 되지 않을까하는 생각이 들었습니다. 결론적으로, 카카오 로그인 과정은 설명을 잘해주셔서 이해가 갔지만, 콘솔 로그의 결과에는 조금 의아한 부분이 있어 어떤 흐름으로 이해하고 넘어가면 될지 궁금하여 질문을 드렸습니다. 긴 글 읽어주셔서 감사합니다. 강의 영상 너무 잘 보고 있습니다. 감사합니다!!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
reg 값 대입시 사용 심볼 "=" vs "<=" 각각의 구분 사용 방법
test bench code 에서는 reg 값 입력을 "=" 로 작성되었구요 d_ff 코드는 reg 값 입력에 "<=" 사용 되었네요." 같은 verilog 코드인데 어떻게 구분 져서 사용 하여야 할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
PacketManager
패치 파일을 눌러도 packetmanager이 나오지 않습니다 F5를 누르면 오류가 뜨고, 고쳐야 하는 부분들은 강의 내용이랑 다 똑같은데 결과가 다릅니다 Listening... OnConnected : [fe80::f19d:c115:588d:bd5b%15]:53375 OnRecvCompleted Failed System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. at Server.PlayerInfoReq.Read(ArraySegment`1 segment) in C:\Users\stone\source\repos\Server\Server\ClientSession.cs:line 107 at Server.ClientSession.OnRecvPacket(ArraySegment`1 buffer) in C:\Users\stone\source\repos\Server\Server\ClientSession.cs:line 190 at ServerCore.PacketSession.OnRecv(ArraySegment`1 buffer) in C:\Users\stone\source\repos\Server\ServerCore\Session.cs:line 31 at ServerCore.Session.OnRecvCompleted(Object sender, SocketAsyncEventArgs args) in C:\Users\stone\source\repos\Server\ServerCore\Session.cs:line 162
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
main에러
똑같이 진행했는데 main함수안에 String에 왜 에러가 될까요..
-
미해결웹 게임을 만들며 배우는 React
useState 관련 에러 질문
안녕하세요. result를 useState 사용해서 변수 만들어놨는데 화면 초록색일때 클릭하면 renderAverage() 함수에서 result가 undefined로 나오네요... 나머지는 정상으로 작동합니다. 이유를 잘 모르겠어요 ㅜㅜ
-
미해결
고수님들께 질문드립니다.
// 여기에 moCOUNT()메소를 작성하시오 public static void moCount() { System.out.println("Apple,Orange,Melon"); } public static void main(String[] args) { //문제) str문자열 중에서 모음의 개수를 구하시오 //모음 : A,E,I,O,U,a,e,i,o,u // String str="Apple,Orange,Melon";
-
미해결
C언어에서 선언만 하고 할당을 안하면???
예를 들어 1) int i; 2) int i = 0; 이 두개가 다르더라구요... 근데 만약에 저 코드 뒤에 scanf("%d", &i); 이런식으로 i에 값을 입력해줄 예정일지라도 꼭 2번처럼 0을 넣어줘야 하나요?? 아래 예시 코드에 answer = 0을 안해주면 실행자체가 안되네요... answer가 초기화되지 않은 메모리를 쓴다고 에러가 나오고요... 비록 쓰레기값이지만 i를 선언해줬고, 그 쓰레기값을 대체하는 입력값이 뒤에 있는데도 왜 실행이 안되는거죠?? const int password = 4545; int answer; while (answer != password) { printf("enter secret code : "); scanf("%d", &answer); } printf("good!");
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
안녕하세요 문의드릴게 있습니다.
안녕하세요 선생님. 아래에 유사한 질문이 있어 확인하긴 하였으나, 한 번 더 여쭤보고자 질문 남기게 되었습니다. 각 챕터 강의를 듣고나서, 공부한 내용을 블로그나 깃헙에 정리하려고 합니다. 출처는 당연히 밝힐 것이고, 강의 내용에 아마 각 챕터 데이터 분석 과정에 대한 제 생각과 각 메소드, 옵션에 대한 설명을 덧붙여 작성하게 될 것 같습니다. 제 생각 위주로 작성하려고 생각하고 있긴 하나 아무래도 강의를 복습하는 것이다보니 일부 코드나 강사님께서 설명하시는 방식이 조금 녹아들 수밖에 없을 것 같은데, 어느정도까지 허용이 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginController 쿠키 설정관련 사항
자바 버전(11), 스프링부트(2.4.4)의 환경에서 LoginConroller에서 쿠키 설정 관련사항입니다. 강좌와 달리 http://localhost:8080/login 요청에서만 요청 헤더에 쿠키가 설정되서 요청이 되고 http://localhost:8080은 쿠키가 포함되지 않습니다. 혹시나 해서 아래와 같이 하니 정상적으로 작동합니다. //로그인 성공Cookie idCookie = new Cookie("memberId", String.valueOf(member.getId()));idCookie.setPath("/");response.addCookie(idCookie); 버전업 되면서 스펙이 변경된건지요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
git 요청 드립니다
인프런 아이디 : jonggwon 인프런 이메일: jonggwon@secondprice.co.kr 깃헙 아이디: sosick0418@gmail.com 깃헙 Username : sosick0418
-
미해결윤재성의 Oracle SQL Database 11g PL/SQL Developer
기본테이블 emp, dept
dept 테이블 어디에 있습니까?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
호출 흐름
안녕하세요 전체적인 흐름을 여쭤보고싶은데요. 순서가 1. servlet에 호출 2.비즈니스 로직처리하고 members attribute 설정 3. forward로 해당 jsp 로 이동 4. jsp 내에서 attribute들 입력 5. 해당 jsp response 이고 정적 HTML은 해당 경로파일을 내려보내주는거지만 JSP 는 model data들을 jstl로 세팅한 후에 리스폰스되는데 내부적으로는 세팅된 jsp 파일을 response.writer써준다 생각하면 맞나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
예외처리
1번문제 바른 코드로 고친뒤 실행하는데 디버깅하면서 실행이라고 누르면 예외처리를 안해주었다고 뜨는데 이게 무슨예외인지 알 수 있을까요?
-
미해결3dsmax 초급부터 전문가까지 - 한방에 끝내는 3dsmax 강좌
VIEWPORT 에 눈(?)이 없어요(안보여요
저 위에 처럼 눈이 보여야 정상인데 제 3D MAX는 눈이 안보여요 ㅠ 그냥 쓰려고 했는데 헷갈리고 신경쓰이더라구요 ㅠ
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
혹시 pytorch python에서 @ 연산자는 무엇을 의미하나요?
안녕하세요 오픈소스 코드를 보는데 q @ 라는 연산이 있는데, @가 무엇을 의미하는지 알 수 있나요? W = q @ torch.sign(torch.diag(torch.diag(r)))
-
미해결몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
질문드립니다
안녕하세요 패럴렉스 구름예제 중에 cloudWrap.style.transform = "translateY(" + scrollTop / 1.2 + "px)"; 에서 1.2부분의 숫자를 더 올려도 왜 더 느려지지 않는건가요?;;
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.clear()이후 타입 비교
JPA는 동일한 트랜잭션 내에서 엔티티의 동일성을 보장하기 때문에 아래의1과 2를 타입 비교하면 true로 나옵니다. 1. em.find(Member.class, mem1.getId()) 2. em.getReference(Member.class, mem1.getId()) 하지만 1과 2 사이에 em.flush();em.clear(); 하고 1,2 타입비교하면 false가 나옵니다. 이유는 em.clear()로 영속성 컨텍스트를 다 비우기 때문에 2에서는 프록시 객체이기 때문 맞나요? 그러니까 "JPA는 동일한 트랜잭션 내에서 엔티티의 동일성을 보장" 하지만 중간에 영속성 컨텍스트를 날려주게 되면 1과 2의 타입이 달라지게 되는 거죠? 감사합니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
카카오 로그인 라우팅 관련 질문입니다.
// 1번 router.get('/kakao', passport.authenticate('kakao')); // 2번 router.get('/kakao/callback', passport.authenticate('kakao', { failureRedirect: '/', }), (req, res) => { res.redirect('/'); }); - 메인 페이지에서 카카오톡 버튼을 클릭하게 되면 `/auth/kakao` 로 GET 요청을 보내면서 카카오 로그인 전략을 수행하고, 처음에는 카카오 로그인 창으로 리다이렉트하여 카카오 아이디로 로그인 및 인증 절차를 거친 뒤 그 결과를 `/auth/kakao/callback` 으로 받아 콜백 라우터에서 다시 카카오 로그인 전략을 수행하는 것으로 이해했습니다. - 그렇다면, 애초에 카카오톡 버튼의 링크를 `auth/kakao/callback` 으로 달아놓아도 동일하게 동작하지 않을까? 하는 생각이 들어 직접 테스트 해본 결과 동일하게 동작함을 확인하였습니다. - 두 개의 라우터를 분리하여 작성하는 특별한 이유가 있는지 궁금합니다! 단순히 명목 상의 이유인 것인지 아니면 기능적인 차이가 있어 분리한 것인지 궁금합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
클라우데라 매니저 설치 오류 질문입니다.
강의 중 이 부분은 실습하지말고 보기만 하라고 하셨는데.. 제가 설치를 해야하는 상황이 생겨서, 이것저것 검색하다가 클라우데라 매니저 7 60일판을 설치하게 되었습니다. 첨부한 그림의 상황은 어떻게 해야 해결할 수 있을까요? parcel말고 패키지로 설치를 해봐야하는 것인지... 답변 부탁드립니다.