묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
IDENTITY 전략 관련하여 질문 드립니다.
해당 전략에서는em.persist()를 하면 바로 쿼리를 날려준다고 하셨는데 그러면 이 하나의 쿼리에 대해서만 db에 flush commit 된다고 생각했는데 맞나요..?이렇게 생각한 이유는 commit까지 되어야 db에 실제로 반영이 되는것으로 아는데 해당 객체에 대한 기본키 정보를 가져오기 위해서는 제 얕은 지식으로는 반영이 되어야만 알 수 있는것 아닌가 라고 생각해서 입니다.아니라면 설명해주시면 감사하겠습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
GetMapping() path 질문
@RequestMapping("/basic") public class BasicController{ ... }이러한 컨트롤러에서 각 메소드에 쓰이는 @GetMapping 에서 @GetMapping("/~~") 과 @GetMapping("~~") 의 차이점은 따로 없나요? 클래스 위에 @RequestMapping 으로 쓸 때도 "/basic", "/basic/" 의 차이점도 궁금합니다. 둘 다 시도해봤을 때 localhost:8080/basic/~~ 으로 동일하게 요청이 받아들여지는 걸로 보여서 질문드립니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
K번째 수
안녕하세요 질문이 있습니다.for t in range(T):에서 저번 강의에서는 range(1,n+1)이었는데여기서는 문자열이기 때문에 range(T+1)이 아닌 T가 되는 것이고슬라이싱도 e번째 까지라 e가 되는 것인지 질문드립니다~
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
제공텍스트
선생님 어디 있는지 못 찾겠습니다. A : Navigation제공된 PDF 파일 4)사이트맵 참고
-
미해결스프링 시큐리티
18:43 jquery 파일 들고오는 부분 에러납니다.
강사님 코드처럼제이쿼리파일을 헤드안에 다 두면크롬 소스탭으로 보면 제이쿼리 파일이 보이질 않아서 헤드 시작전에 따로 제이쿼리 불러오는 헤드 밖으로 뺏습니다. 그런데 아래와 같은 에러가 계속 나고있습니다.원인을 모르겠습니다..
-
미해결홍정모의 따라하며 배우는 C언어
3.11강 21분
0x1.1P1을 0xb.aP1로 바꿨는데 어떻게 1.1이 b.a가 되는건가요?
-
미해결카프카 완벽 가이드 - 코어편
하나의 컨슈머가 서로 다른 토픽을 subscribe하면
강의 예시로 들어주신 것 처럼 하나의 컨슈머가 서로 다른 토픽을 subscribe해서 서로 다른 메시지를 취합(?)해서 새로운 데이터를 생성하여 DB에 적재하거나 다른 토픽으로 전송하신다고 하셨는데요.A 토픽에 들어오는 메시지와 B 토픽에 들어오는 메시지의 짝(?)을 어떻게 맞출 수 있나요...?예시처럼 A 토픽에서 poll한 메시지의 order-id 는 1인데, B토픽에서 poll한 메시지의 order-id는 2인 경우에는 취합할 수 없는 데이터이기 때문에, B토픽에서 poll하는 메시지의 order-id가 1이 나올 때까지 어떠한 조치를 취해야 하지 않을까라는 생각이 들었습니다.
-
미해결배달앱 클론코딩 [with React Native]
.env 와 Config 원리
어째서 .env에 적힌 키=값이, Signup.tsx에서 Config.키 = 값으로 사용될 수 있는지 궁금합니다. react-native-config 모듈이 자동적으로 파일중에 .env파일을 찾아서, 그 안에 있는 값을을 Config.키 로 접근할 수 있게 해주는 건가요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
selenium 부분에서 문제가 있는 것 같습니다.
과제 수행 중 selenium을 이용한 크롬 실행이 안되는것같아 기존에 정상적으로 작동했던 코드도 돌려보니 실행이 되지 않고 이런 메세지가 뜹니다. 브라우저 버전문제라고 하는것같아서 셀리니움 기본설정 코드로 자동 업데이트도 실행해보았는데 그 코드는 정상적으로 작동하지만 여전히 같은 메세지가 발생합니다. 어떻게 해결해야 하나요?
-
미해결스프링 시큐리티
14:55 관리자 도구에서 다음 라인 이동하는 단축키가 어떻게되죠?
다 눌러보고있는데..F9번 누르니.. jquery 파일로 넘어갑니다..
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱 만들기 '==' 에러
복치님 안녕하세요if(getData == "2") 이 부분이 에러가 뜨는데 문자열로 바꾸라는것 같은데 "2" 이게 문자열 아닌가용도저히 뭐를 어떻게 바꿔야 하는지를 모르겠어요 ㅜㅜ package com.example.twiceapplication import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity class ImageInsideActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_imageinside) val getData = intent.getStringArrayExtra("data") val memberImage = findViewById<ImageView>(R.id.memberImageArea) // Toast.makeText(this, getData, Toast.LENGTH_LONG).show() if(getData == "1"){ memberImage.setImageResource(R.drawable.member_1) } if(getData == "2") { memberImage.setImageResource(R.drawable.member_2) } if(getData == "3") { memberImage.setImageResource(R.drawable.member_3) } if(getData == "4") { memberImage.setImageResource(R.drawable.member_4) } if(getData == "5") { memberImage.setImageResource(R.drawable.member_5) } if(getData == "6") { memberImage.setImageResource(R.drawable.member_6) } if(getData == "7") { memberImage.setImageResource(R.drawable.member_7) } if(getData == "8") { memberImage.setImageResource(R.drawable.member_8) } if(getData == "9") { memberImage.setImageResource(R.drawable.member_9) } } }
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Gateway와 Discovery를 사용한 무중단 서비스 방법
안녕하세요 선생님? 강의 정말 잘보고있습니다. 감사합니다. 다름이 아니라 강의 내용처럼 따라서 잘구성해보았습니다. 잘돌아갑니다. 그런데 해결하고 싶은게 있습니다.동일 서비스 중 하나가 중단됬을때 Gateway가 LB방식이라 중단된줄 모르고 중단된 서비스로 요청이 들어갑니다. 그러다보니 Connection 오류가 납니다. 대략 30초에서 1분 이후부터는 살아있는 서비스로만 요청이가서 잘 동작합니다. 만약 운영중이라면 30초에서 1분동안은 서비스가 불안할텐데 어떡하면 해결할 수 있을까요? 시스템 구성은 다음과 같습니다. GW <-> Discovery <-> 동일서비스 #3개(만약 #2번이 다운됬을때 #2번 서비스가 호출되어 서비스가 됬다 안됬다 하는 현상발생)좋은 방법이나 예제가 있으면 감사하겠습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
next와 spring
안녕하세요 . 제로초님 . 제가 친구랑 토이프로젝트 중인데 친구는 spring으로 백을 구현했는데 제가 back에서 데이터를 가져와 ui를 구성하려면 어떤식으로 코드를 짜야하나요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 에러 시
카프카 설정을 잘못하여 에러를 발생시켜 보았는데 아래와 같은 메세지를 출력하며 계속 연결을 시도하는 것을 확인했습니다.Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.Bootstrap broker 127.0.0.1:9092 (id: -1 rack: null) disconnectedNode -1 disconnected.혹시 이러한 경우 몇번만 연결을 시도하고 예외를 발생시킨다거나 하는 방법이 있을까요?? 추가로 이런 상황에서는 보통 어떤식으로 장애 대응을 하는지 궁금합니다. 브로커의 수를 늘리는 것도 이러한 상황을 방지할 수는 있겠지만, 결국 언제나 문제는 생길 수 있다고 생각하여 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 문제 난이도
안녕하세요, 이번 달에 강의를 듣기 시작한 학생입니다. 현재 알고리즘에 대한 지식이 있고 이전부터 코딩테스트 문제들을 조금씩 풀어본 상태입니다. 강사님의 강의를 아직 많이 들어보진 않았지만, 초반부를 듣다보니 궁금한 점이 생겨 이렇게 여쭤봅니다.강사님께서 강의를 하시는 문제들이 백준에서 어느정도 난이도인지 궁금합니다...보통 대기업의 코딩테스트를 보려면 '골드 몇 이상, 실버 몇 이상, 플레 몇 이상'이라고 하는데,제가 수강한 강의 앞부분은 대체로 쉬워서인지 대기업을 준비하는 입장의 난이도는 아니라고 생각합니다...혹시 뒷부분에 있는 문제 난이도가 어느정도인지 알 수 있을 까요??감사합니다.
-
미해결스프링 시큐리티
타임리프 강의도 있나요?
타임리프 강의도 찍으실 생각있으신가요?저는 공식문서보고 하기에는 너무 어렵네요..타임리프 강의는 유튜브에도 없고 JSP 강의는 많은데..타임리프 강의는 한개도 없는것 같습니다..
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
사가 부분 계속 확인했는데도 로그인이 안됩니다. ㅠ
```sagas/user.ts import axios from "axios"; import { all, delay, fork, put, takeLatest } from "redux-saga/effects"; import { LOG_IN_FAILURE, LOG_IN_REQUEST, LOG_IN_SUCCESS, LOG_OUT_FAILURE, LOG_OUT_REQUEST, LOG_OUT_SUCCESS, SIGN_UP_FAILURE, SIGN_UP_REQUEST, SIGN_UP_SUCCESS, } from "../reducers/user"; function loginAPI(data: any) { return axios.post("/api/login", data); } function* logIn(action: any) { try { yield delay(1000); yield put({ type: LOG_IN_SUCCESS, data: action.data, }); } catch (error: any) { yield put({ type: LOG_IN_FAILURE, error: error.response.data, }); } } function logoutAPI() { return axios.post("/api/login"); } function* logOut() { try { yield delay(1000); yield put({ type: LOG_OUT_SUCCESS, }); } catch (error: any) { yield put({ type: LOG_OUT_FAILURE, error: error.response.data, }); } } function signUpAPI() { return axios.post("/api/signUp"); } function* signUp() { try { yield delay(1000); yield put({ type: SIGN_UP_SUCCESS, }); } catch (error: any) { yield put({ type: SIGN_UP_FAILURE, error: error.response.data, }); } } function* watchLogin() { console.log("사가로그인 리스너 "); yield takeLatest(LOG_IN_REQUEST, logIn); } function* watchLogOut() { yield takeLatest(LOG_OUT_REQUEST, logOut); } function* watchSignUp() { yield takeLatest(SIGN_UP_REQUEST, signUp); } export default function* userSaga() { yield all([fork(watchLogin), fork(watchLogOut), fork(watchSignUp)]); } ``` ```sagas/index.ts import { all, fork } from "redux-saga/effects"; import postSaga from "./post"; import userSaga from "./user"; export default function* rootSaga() { yield all([fork(postSaga), fork(userSaga)]); } ``` ```reducers/user.ts export const initialState = { logInLoading: false, logInDone: false, logInError: null, logOutLoading: false, logOutDone: false, logOutError: null, signUpLoading: false, signUpDone: false, signUpError: null, changeNicknameLoading: false, changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {}, }; export const LOG_IN_REQUEST = "LOG_IN_REQUEST"; export const LOG_IN_SUCCESS = "LOG_IN_SUCCESS"; export const LOG_IN_FAILURE = "LOG_IN_FAILURE"; export const LOG_OUT_REQUEST = "LOG_OUT_REQUEST"; export const LOG_OUT_SUCCESS = "LOG_OUT_SUCCESS"; export const LOG_OUT_FAILURE = "LOG_OUT_FAILURE"; export const SIGN_UP_REQUEST = "SIGN_UP_REQUEST"; export const SIGN_UP_SUCCESS = "SIGN_UP_SUCCESS"; export const SIGN_UP_FAILURE = "SIGN_UP_FAILURE"; export const CHANGE_NICKNAME_REQUEST = "CHANGE_NICKNAME_REQUEST"; export const CHANGE_NICKNAME_SUCCESS = "CHANGE_NICKNAME_SUCCESS"; export const CHANGE_NICKNAME_FAILURE = "CHANGE_NICKNAME_FAILURE"; export const FOLLOW_REQUEST = "FOLLOW_REQUEST"; export const FOLLOW_SUCCESS = "FOLLOW_SUCCESS"; export const FOLLOW_FAILURE = "FOLLOW_FAILURE"; export const UNFOLLOW_REQUEST = "UNFOLLOW_REQUEST"; export const UNFOLLOW_SUCCESS = "UNFOLLOW_SUCCESS"; export const UNFOLLOW_FAILURE = "UNFOLLOW_FAILURE"; const dummyUser = (data: any) => ({ ...data, nickname: "GIYEON", id: 1, Posts: [], Followings: [], Followers: [], }); //action export const loginRequestAction = (data: any) => { return { type: LOG_IN_REQUEST, data, }; }; export const logoutRequestAction = () => { return { type: LOG_OUT_REQUEST, }; }; const reducer = (state: any = initialState, action: any) => { switch (action.type) { case LOG_IN_REQUEST: return { ...state, logInLoading: true, logInError: null, logInDone: false, }; case LOG_IN_SUCCESS: return { ...state, logInLoading: false, logInDone: true, me: dummyUser(action.data), }; case LOG_IN_FAILURE: return { ...state, logInLoading: false, logInError: action.error, }; case LOG_OUT_REQUEST: return { ...state, logOutLoading: true, logOutDone: false, logOutError: null, }; case LOG_OUT_SUCCESS: return { ...state, logOutLoading: false, logOutDone: true, me: null, }; case LOG_OUT_FAILURE: return { ...state, logOutLoading: false, logOutError: action.error, }; case SIGN_UP_REQUEST: return { ...state, signUpLoading: true, signUpDone: false, signUpError: null, }; case SIGN_UP_SUCCESS: return { ...state, signUpLoading: false, signUpDone: true, }; case SIGN_UP_FAILURE: return { ...state, signUpLoading: false, signUpError: action.error, }; case CHANGE_NICKNAME_REQUEST: return { ...state, changeNicknameLoading: true, changeNicknameDone: false, changeNicknameError: null, }; case CHANGE_NICKNAME_SUCCESS: return { ...state, changeNicknameLoading: false, changeNicknameDone: true, }; case CHANGE_NICKNAME_FAILURE: return { ...state, changeNicknameLoading: false, changeNicknameError: action.error, }; default: return state; } }; export default reducer; ``` logInLoading true까지 되고 로그인 무한 로딩이 걸립니다.뭐가 문제일까요 ..
-
미해결
IntelliJ 설치 후 실행 오류
이번에 스프링을 배워보고자 인프런을 찾게 되었습니다.강의 내용에 따라 자바 11버전을 다운 받고 IntelliJ 커뮤니티 버전을 설치해서 실행을 하려는데아래 문장이 뜨면서 실행 자체가 안되네요 검색을 해봐도 나오질 않아서 해결방법이 있나 여쭙습니다. Internal error. Please refer to https://jb.gg/ide/critical-startup-errorsjava.lang.SecurityException: Could not open windows registry node Software\JavaSoft\Prefs at root 0xffffffff80000001: Access denied at java.prefs/java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:554) at java.prefs/java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:516) at java.prefs/java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:502) at java.prefs/java.util.prefs.WindowsPreferences.removeSpi(WindowsPreferences.java:703) at java.prefs/java.util.prefs.AbstractPreferences.remove(AbstractPreferences.java:336) at com.intellij.ide.Prefs.put(Prefs.java:19) at com.intellij.ide.gdpr.EndUserAgreement.setAccepted(EndUserAgreement.java:80) at com.intellij.ide.gdpr.Agreements$applyUserAgreement$2.invoke(Agreements.kt:60) at com.intellij.ide.gdpr.Agreements$applyUserAgreement$2.invoke(Agreements.kt) at com.intellij.ide.gdpr.AgreementUi$setAcceptButton$1.actionPerformed(AgreementUi.kt:219) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392) at java.desktop/java.awt.Component.processEvent(Component.java:6413) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:402) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121) at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) at java.desktop/java.awt.Dialog.show(Dialog.java:1080) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:712) at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:453) at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1672) at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630) at com.intellij.ide.gdpr.Agreements.showEndUserAndDataSharingAgreements(Agreements.kt:19) at com.intellij.idea.StartupUtil.lambda$showEuaIfNeeded$25(StartupUtil.java:607) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:402) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)-----Your JRE: 17.0.4+7-b469.53 amd64 (JetBrains s.r.o.)C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.2\jbr
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
저도 낙관락쪽 테스트케이스 돌리면 무한루프 빠지는데 봐주실 수 있으신가요?
도움 부탁드립니다. (_ _)https://github.com/KIYOUNGYI/stock
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
코틀린 관련 서적 질문드려요
초보자용 입문서로 좋은 책 있을까요?