묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 데이터 JPA
PersistenceContext 관련 질문드립니다.
안녕하세요 너무 좋은 강의 잘 듣고 있습니다.두가지 질문이 있습니다. PersistenceContext의 상태비교 관련입니다.JPA2 JpaRepository.save() 메소드 강의를 시청하며, 따라하던 도중첫번쨰 assertThat 부터 False 로 떨어져 왜이런지 모르겠습니다.제가 이해한것과 강의내용에 따르면 당연히 True 가 놔와야 할텐데 이상하네요.테스트는 @SpringBootTest 를 사용한 별도의 테스트클래스를 만들어 진행중이며,PostRepository의 경우 아래와 같이 선언 하였습니다.어떤 부분을 잘못이해하고 있거나 틀렸을까요 ? public interface PostRepository extends JpaRepository<Post,Long>, QuerydslPredicateExecutor<Post> @SpringBootTest class DemoJpaApplicationTests { @Autowired private PostRepository postRepository; @Autowired private ApplicationContext applicationContext; @PersistenceContext private EntityManager entityManager; @Test void save(){ Post post = new Post(); post.setId(1L); post.setTitle("JPA"); Post savePost = postRepository.save(post); assertThat(entityManager.contains(post)).isTrue(); assertThat(entityManager.contains(savePost)).isTrue(); assertThat(savePost == post); } 업데이트 쿼리가 안나갈 경우 어떤걸 봐야할까요 ?updateTitle을 만들어 사용할땐 정상적으로 변경 됐지만아래와 같이 코드를 작성하여 테스트 해보니 title에 Spring이 그대로 남아있어 테스트가 실패하네요.private Post savePost(){ Post post = new Post(); post.setTitle("Srping"); return postRepository.save(post); } @Test void updateTitle(){ Post spring = savePost(); spring.setTitle("hibernate"); Optional<Post> post = postRepository.findById(spring.getId()); assertThat(post.get().getTitle()).isEqualTo("hibernate"); }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
어뎁터에서 핸들러 처리 하는 과정에서 제가 잘 이해한것인지 모르겠습니다..
제가 잘 이해한 것인지 모르겠습니다.http message converter는 @RequestBody에서는 canRead()로 http request header의 content-type과 컨트롤러에서 지정한 클래스를 조합해 알맞은 http message converter 객체를 찾아 read()를 통해 객체를 생성하고 반환합니다.또한 @ResponseBody에서는 canWrite()를 통해 return 하는 클래스 타입, http request header의 Accept를 확인해 알맞은 http mesage converter 통해서 write()로 http response message body에 데이터를 생성합니다.httpMappingHandlerAdapter는 argument resolver에게 controller가 요구하는 객체를 요구하고, argument resolver가 객체를 만들어 주면,(이때 http message converter이용) 그 객체 httpMappingHandlerAdapter는 handler에게 넘겨주면서 controller 내부의 로직을 수행하게 됩니다.그리고 controller에서 return 시에 ReturnValueHandler가 response 값을 변환하고 처리합니다. @ResponseBody를 처리하는 ReturnValueHandler가 http message converter를 이용해서 response의 결과를 만듭니다.이렇게는 이해 했습니다. 하지만 궁금한것이 있는데, 영한님의 답변중에 @RequestBody처럼 http 메세지를 사용하지 않는경우에는 htttp message converter가 필요없다고 하셨는데, canRead()로 controller에서 요구하는 클래스와 Content-type 이용해서 알맞는 http mesage converter 찾아서 이걸로 argument resolver가 객체 생성하는것 아닌가요?RequesMappingAdapater가 Handler(Controller)가 요구하는 파라미터를 어떻게 호출 전에 아는건가요? controller에 접근해서 요청 parameter를 확인한 다음에 arguement resolver로 해결하는것인가요?완전히 이해하고 싶어 이 부분만 한시간 넘게 보고 있다가 너무 궁금해서 질문남겨 봅니다!감사합니다.
-
미해결스프링 핵심 원리 - 기본편
ApplicationContext(), AnnotationConfigApplicationContext() 차이
둘의 차이는 ApplicationContext가 상위 인터페이스라 기능이 적어서 AnnotationConfigApplicationContext()를 쓴다고 알고있는데 어차피이거나ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);이거나AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);결국 둘 다 new로 AnnotationConfigApplicationContext()를 구현해 줬으니 똑같은 기능을 사용할 수 있는 것 아닌가요?왜 ApplicationContext를 사용하면 getBeanDefinition()메소드를 이용할 수 없는 것이죠?
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
S_AXI_WSTRB
S_AXI_WSTRB 신호가 read_and_modify_write를 대체할 수 있다고 말씀하셨는데, 기존 방법대로라면 Read가 Write 이전에 선행되어야 한다고 하신것에 대한 이유를 알 수 있을까요?그냥 Write를 하면 되는 것 아닌가 해서요.!
-
미해결갖고노는 MySQL 데이터베이스 by 얄코
M1 맥북인데 에러가 납니다 ㅠㅠ
안녕하세요 강의 정말 잘 듣고있습니다 ! 죄송한데 현재 M1 맥북을 사용중인데 Express 설치과정에서 계속 에러가 나네요..sudo npm install express-generator -g express --view=hbs . // 이걸 실행하면 .. 이게 계속 나오네요 ㅠㅠ zsh: command not found: express 한참을 구글링해도 답이 나오지 않아서 올려봅니다 ㅠㅠ 원래 이렇게 안되는건가요? 빨리 만들어보고싶은데 아쉽네요 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@oneToOne fetch = Lazy를 입력했는데 적용이 되지 않습니다.
@OneToOne(mappedBy = "delivery", fetch = LAZY) private Order order;이렇게 작성을 하면 fetch = Lazy 부분이 색깔이 변하면서 노란 전구 경고를 주는데Specifying FetchType.LAZY for the non-owning side of the @OneToOne association will not affect the loading. The related entity will still be loaded as if the FetchType.EAGER is defined.@OneToOne 연결의 비소유 측면에 대해 FetchType.LAZY를 지정해도 로딩에 영향을 미치지 않습니다. FetchType.EAGER가 정의된 것처럼 관련 엔터티가 계속 로드됩니다.이렇게 경고를 주게 되네요 다른부분은 다 잘 되는데 이부분만 이러는것이 구글링을 해도 잘 모르겠네요...
-
해결됨디자인 시스템 with 피그마
피그마 토큰 재활용 질문
안녕하세요~ 하나의 파일 안에서 피그마 토큰을 따라 만드는 작업을 했습니다.한가지 궁금한 점은 a Drafts에서 만든 피그마 토큰을 b에서도 적용하고 싶은데, b에서 피그마 토큰을 활성화시키면 아예 빈 것이 나옵니다. 피그마 토큰은 복제해서 다른 프로젝트에서 사용할 수 없는 걸까요? 있다면, 방법 알려주세요!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이런 질문 진짜 하기 싫었는데 ㅠㅠ
위코드는 제대로 실행이되는데위에 split 코드는 아래와 같이 나옵니다 ㅠㅠ코드는 맞아서 Dev C++로 실행했을때는정상출력이되는데 구글링으로 계속찾아서 이것저것 만져봤는데 stdc++.h 헤더파일문제인것같아서 체크하고 경로 다 지정해줘서 vscode상으로 stdc++.h 컨트롤클릭해주면 정상적으로 헤더파일 나오는데 혹시 추정되는 문제가 있으신가요..?? 이게 이미 뭔가 구글에서 이상한거 계속하다보니 꼬여버린것같긴한데..혹시나해서 질문올립니다 안되면 그냥 Dev C++로 실행하려구요...우선공부가 우선이니
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 1213번 질문
안녕하세요 백준 1213번 문제 푸는 중 문이 생겨 글 남깁니다.#include <iostream>#include <algorithm>using namespace std;int alphabet[26];int main(){ string s; cin >> s; //count for (int i = 0; i < s.size(); i++) { alphabet[s[i] - 'A'] += 1; } int odd_number = 0; for (int i = 0; i < s.size(); i++) { if (alphabet[i] % 2 == 1) odd_number += 1; } if (odd_number >= 2) { cout << "I'm Sorry Hansoo" << "\n"; } else { string answer_front; string answer_back; for (int i = 0; i < 26; i++) { for (int i2 = 0; i2 < alphabet[i] / 2; i2++) { answer_front += (char)(i + 'A'); } } answer_back = answer_front; reverse(answer_back.begin(), answer_back.end()); if (odd_number == 1) { for (int i = 0; i < 26; i++) { if (alphabet[i] % 2 == 1) { answer_front += (char)(i + 'A'); } } } string total_answer = answer_front + answer_back; cout << total_answer << "\n"; } return 0;} 결과는 맞게 나오는데 채점시 틀렸다고 나옵니다.제가 놓친 부분이 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이 서버 재실행 오류
안녕하세요 영한님!영한님 강의 입문편부터 인텔리제이로 코딩중인 학생입니다. 다름이 아니고 얼마 전 ultimate 버전으로 업그레이드 이후 코드 수정하고 재실행했을 때 변경한 코드 전체가 적용이 안됩니다. 가령 컨트롤러에 GetMapping("/") 추가하고 재실행하면 반영이 안됩니다. 혹시 이와 같은 오류를 겪어보셨을까요? 구글링해도 해결방법을 모르겠어 문의남깁니다 ㅜ
-
미해결
pi camera module 2와 yolov3를 이용한 실시간 분류
Raspberry Pi os Legacy (Debian Buster 32bit)를 이용하여 개발 중입니다.Google Colab를 이용하여 가중치 파일을 얻어냈고, yolov3를 이용하여 이미지 속 물체를 분류하는 과정까지는 완료하였습니다.pi camera module 2를 사용하여 실시간으로 보이는 영상 속 물체를 분류하고자 하는데 다방면으로 찾아보았지만 방법을 찾지 못하여 이 곳에 질문 남겨봅니다.혹시 도움이 될 수 있는 강의를 알고 계시거나 분류 방법을 알고 계시다면 .. 알려주세요 .. ㅜㅜ
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
여기서 @RequestBody 어노테이션 추가후 talend에서 실행시키면 이런 오류가 뜹니다 ㅠㅠ
인텔리제이 오류로는 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.example.fitstproject.dto.ArticleForm (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 3]이렇게 뜹니다 ㅠㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 9996 문제 질문
안녕하세요 백준 9996 문제를 풀던 중 질문이 생겨 글 남깁니다.저는 코드를 아래와 같이 짰습니다. #include <iostream>using namespace std;int main(){ int N; cin >> N; string s; cin >> s; string s_front, s_back; s_front = s.substr(0, s.find("*")); s_back = s.substr(s.find("*") + 1); for (int i = 0; i < N; i++) { string problem; cin >> problem; string p_front, p_back; p_front = problem.substr(0, s_front.size()); p_back = problem.substr(problem.size() - s_back.size()); int possible = 0; if (problem.size() >= s_front.size() + s_back.size()) { if (s_front == p_front && s_back == p_back) { possible = 1; } } if (possible == 1) cout << "DA" << "\n"; else cout << "NE" << "\n"; } return 0;} 결과값은 동일하게 나오는데 채점시 런타임 에러(out of range)가 납니다.제가 놓친 부분이 있을까요?
-
해결됨Flutter 앱 개발 기초
Flutter 커뮤니티 코드
안녕하세요! 강의노트에 있는 플러터 커뮤니티 (오픈톡방) 들어가려고 했는데, 참여코드가 있더라구요. 혹시 코드알수있을까요??
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
const를 왜 없애줘야 하나요?ㅜㅜ
import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class HomeScreen extends StatelessWidget { WebViewController? controller; const HomeScreen({Key? key}) : super(key: key); // 여기서 왜 const를 없애야 하나요?ㅜㅜ @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Colors.orange, title: Text('Code Factory'), centerTitle: true, ), body: WebView( onWebViewCreated: (WebViewController controller) {}, initialUrl: 'https://blog.codefactory.ai', javascriptMode: JavascriptMode.unrestricted, ), ); } }
-
미해결홍정모의 따라하며 배우는 C언어
12분
printf("%+I %+I",123,-123)printf("%(빈칸) I % (빈칸)I",123,-123)여기서 빈칸을 띄워주면서 사용하면 플러스일때는 플러스이고 마이너스일때는 마이너스 를 표현해주신다고했는데 그러면 위에 I에다가 +를 붙힌거랑 다를게 없는거 아닌가요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
업로드시 POST http://localhost:3065/ 404 (Not Found) 에러질문입니다.
antd upload컴포넌트를 사용해서 해당 강의를 학습하고 있습니다.근데 이미지 업로드시 POST http://localhost:3065/ 404 (Not Found) 에러가 발생하고 있습니다.redux툴을 확인해보니 아래와 같이 upload_images_success는 실행됬는데 redux의 imagepaths에는 파일명이 없습니다.확실하지는 않지만 antd upload에 action속성이 잘못되어서 오류가 발생하는것같은데 에러 원인에 대해서 알 수 있을까요?참고 코드도 첨부하겠습니다. uploadform const normFile = useCallback((e) => { console.log('Upload event:', e); if (Array.isArray(e)) { return e; } return e?.fileList; }, []); const onChangeImages = useCallback((e) => { console.log('images', e.fileList); const imageFormData = new FormData(); [].forEach.call(e.fileList, (f) => { imageFormData.append('image', f); }); dispatch({ type: UPLOAD_IMAGES_REQUEST, data: imageFormData, }) }, []); <ImageUploaderWrapper name="images" rules={[ { required: true, message: '조리사진을 첨부하세요.', }, ]} valuePropName="fileList" getValueFromEvent={normFile} > {/* action: 파일을 업로드할 실제 URL -> localhost3065/images */} <Upload.Dragger name="image" multiple action="http://localhost:3065" listType="picture" onChange={onChangeImages} > <p style={{marginBottom: '0.5em'}}>Drag files here OR</p> <Button type='primary' size='large' icon={<UploadOutlined />}>Upload</Button> </Upload.Dragger> </ImageUploaderWrapper> reduxexport const initialState = { mainPosts: [], imagePaths: [], uploadImagesLoading: false, // 이미지 업로드 uploadImagesDone: false, uploadImagesError: null, }; export const UPLOAD_IMAGES_REQUEST = 'UPLOAD_IMAGES_REQUEST'; export const UPLOAD_IMAGES_SUCCESS = 'UPLOAD_IMAGES_SUCCESS'; export const UPLOAD_IMAGES_FAILURE = 'UPLOAD_IMAGES_FAILURE'; const reducer = (state = initialState, action) => { return produce(state, (draft) => { switch (action.type) { case UPLOAD_IMAGES_REQUEST: draft.uploadImagesLoading = true; draft.uploadImagesDone = false; draft.uploadImagesError = null; break; case UPLOAD_IMAGES_SUCCESS: draft.imagePaths = action.data; draft.uploadImagesLoading = false; draft.uploadImagesDone = true; break; case UPLOAD_IMAGES_FAILURE: draft.uploadImagesLoading = false; draft.uploadImagesError = action.error; break; default: break; } }); }; export default reducer; sagafunction uploadImagesAPI(data) { return axios.post('/post/images', data); } function* uploadImages(action) { try { const result = yield call(uploadImagesAPI, action.data); yield put({ type: UPLOAD_IMAGES_SUCCESS, data: result.data, }) } catch(err) { yield put({ type: UPLOAD_IMAGES_FAILURE, data: err.response.data }) } } function* watchUploadImages() { yield takeLatest(UPLOAD_IMAGES_REQUEST, uploadImages); } export default function* postSaga() { yield all([ fork(watchUploadImages), ]); } routertry { fs.accessSync('uploads'); } catch (error) { console.log('uploads폴더가 존재하지 않아 생성합니다.'); fs.mkdirSync('uploads'); } const upload = multer({ storage: multer.diskStorage({ destination(req, file, done) { done(null, 'uploads'); }, filename(req, file, done) { const ext = path.extname(file.originalname); const basename = path.basename(); done(null, basename + '_' + new Date().getTime() + ext); }, }), limits: { fileSize: 20 * 1024 * 1024 }, }); router.post('/images', isLoggedIn, upload.array('image'), async (req, res, next) => { try { console.log(req.files); res.json(req.files.map((v) => v.filename)); } catch (error) { console.error(error); next(error); } }); app.jsapp.use('/', express.static(path.join(__dirname, 'uploads')));
-
미해결태블로 레벨UP
Number of Records
안녕하세요,태블로 2020.2 이후 버전 기준으로는 Number of Records라는 필드가 Sample - Superstore 데이터에서 없어졌는데, Region or State 필드를 만들 때 이것을 어떻게 대체할 수 있을까요?감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
4.8 18분
printf("%d %lld %lld\n,INT_MAX+1,INT_MAX +1, 2147483648LL) 이라고 나오는데 왜 2147483648LL 뒤에 LL은 뭔가요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
프락시 역할을한다는것이 어떤 의미인가요?
말씀하신데로 내부의 구조를 숨기는것을 프락시라고 하는건가요? 좀 검색해봐도 그냥 중계기? 그런 개념으로만 이해가 되서요.