묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! Querydsl
양방향 연관관계 설정 후 bulk delete 실행시 문제점 문의드립니다.
안녕하세요 양방향 연관관계 설정후 단건 삭제는 정상동작을 하는데, 벌크 삭제는 아래와 같은 메시지를 띄웁니다. Referential integrity constraint violation: "FKE3HJWKR6UMHLYYXU79GACB7GS: PUBLIC.WATCH FOREIGN KEY(LIVE_LIVE_ID) REFERENCES PUBLIC.LIVE(LIVE_ID) Entry (Live.java) @OneToMany(mappedBy = "live", cascade = CascadeType.ALL) private List<Watch> watch = new ArrayList<>(); Entry (Watch.java) @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "live_id") private Live live; //=== 양방향 연관관계 메서드 ===// public void changeLive(Live live) { this.live = live; live.getWatch().add(this); } Service @CacheEvict(value = { "livePage", "liveSlice" }, allEntries = true) @Transactional public void removeLive(List<LiveDto> liveDtos) { List<Live> deletelives = convertDto(liveDtos); deletelives.stream().forEach(d-> liveRepository.delete(d)); // 동작 liveRepository.deleteInBatch(deletelives); // 에러 liveRepository.deleteAll(deletelives); // 에러 liveRepository.deleteBulk(deletelives); // 에러 } Repository @Override public long deleteBulk(List<Live> lives) { return qf.delete(live).where(live.in(lives)).execute(); } 혹시 연관관계 메서드를 통해 다른 작업을 해줘야 동작하는지, 아니면 처음부터 지원을 안하는지 궁금합니다. 구글링을 해봐도 답을 찾기가 힘드네요... ㅜㅜ 감사합니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
await 질문 드립니다.
저도 아래분과 비슷한 내용의 질문인데, 강의 에서 await 이후에 멈춰 있는것이 아니라, 계속 진행된다고 말씀해주셔서...제가 샘플 코드를 짜보았는데.... function fetchItems() { return new Promise(function(resolve, reject) { setTimeout(function() { var items = [1,2,3]; console.log('Inline Promise...'); resolve(items) }, 3000); }); } async function test() { console.log('Step 1'); var res = await fetchItems(); console.log('Step 2'); } test(); 호출 하였을 때, Step 1 이 찍힌 이후에,Inline Promise...Step 2가 찍히는데... 이럴 경우, await를 기다렸다가, 다음 라인으로 넘어가는 것이 아닌가요...?
-
미해결홍정모의 따라하며 배우는 C언어
const
double arr2[3]={1.0 , 2.0 , 3.0}; const double *pd =arr2; 이라할때 (1)*pd=1000.0 , arr[0]=1000.0 ; 이 불가능한것이지 (2)pd[2]= 1024.0, arr[1]=1001.0; 과 같은 수정은 가능하지 않나요? 배열 arr2[3]에 const를 붙여야 (2)도 불가능해지지 않나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
브랜치 질문 드립니다!!
캡틴기효님 (ㅎ_ㅎ) 안녕하세요!!아주 작은 질문이 있습니다! 지난 시간에 저희가 강의에서 브랜치를 es6/const로 바꾼 채로 종료를 했었는데 그리고 나서 이번 강의에서 vue cli를 설치하고 vue create하는 이런 과정은 브랜치 변경 없이 진행해도 되는 건가요?? 따로 언급이 없으신걸 보면 상관이 없거나, 아니면 당연히 master브랜치로 다시 돌려놓고 하는 거거나 둘 중 하나겠죠..?? 깃 공부를 좀 해야하는데..ㅜㅠ 아직 지식이 부족해서 여쭤봅니다..!! 좋은 강의 만들어주셔서 정말 감사드리고(공부 할 좋은 자료와 선생님이 계시다는게 얼마나 좋은지..ㅜㅜㅜ) 중급 강의도 열심히 따라가보겠습니다!!
-
미해결홍정모의 따라하며 배우는 C언어
%td?
1.printf("%td",ptr3-ptr1); 에서 ptr3-ptr1의 값의 서식지정자가 %d가 아니라 %td라는것은 ptr3-ptr1 의 자료형이 주소의 자료형처럼 정수이기는 하나 완벽히 정수는 아닌 그런 개념인건가요 ? 아니면 그냥 %d로 서식이 지정되는 정수형인건가요? 2. 포인터끼리의 동치여부를 비교할때 캐스팅하면 오류가 사라지는경우에서 질문있습니다. int a=5; int ptr_a=&a; double d=3.14; double*ptr_d=&d; if(ptr_a == ptr_d ) 에서 워닝을 막기위해 if(ptr_a == (int*)ptr_d) 또는 if((void*)ptr_a == (void*)ptr_d) 이렇게 캐스팅 한다 하셨는데 그럼 이렇게 포인터를 캐스팅시 포인터의 대상이 되는 변수는 캐스팅하는 자료형으로 자료형과 값 모두 변해버리나요? (ptr_d 를 int 로 캐스팅시 변수 d는 int형이되고 값이 3으로 변경 . ptr_a 와 ptr_d 를 void로 캐스팅시 변수 a와 b는 void형이되고..그런데 void형이라는 변수가있나요?? ) 감사합니다.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
임베디드 타입과 @MappedSupperclass (BaseEntity)타입
안녕하십니까 선생님 열심히 수강하다보니 어느새 여기까지 도달하였습니다... 바쁘실텐데 항상 친절하게 설명 해주시는것 너무 감사드립니다.!! 앞서 배운 BaseEntity 클래스는 여러곳에서 반복적으로 사용하고 싶을 때 상속을 받아 사용할 수 있었습니다. 임베디드 타입 수업을 듣다보니 임베디드 타입은 여러개 넣을 수도 있고 재사용성, 높은 응집도 등 더 장점이 많고 인베디드 타입으로 충분히 BaseEntity를 커버 할수 있다고 생각하는데 혹시나 어떤 다른점이 있나 궁금합니다 ㅠ
-
미해결실전! 스프링 데이터 JPA
JPA와 Transaction에 대해서
안녕하세요. 선생님! 오랜만에 또 질문남깁니다..! 강의내용에서 JpaRepository의 구현체에 @Transactional 애노테이션이 붙어있기 때문에 서비스계층에 없어도 트랜잭션이 적용된다고 하셨습니다. JPA의 모든 변경은 트랜잭션 안에서 동작한다고도 하셨구요! 여기서 질문입니다. Repository를 직접 정의하고 사용할 때, @Transactional 애노테이션 없어도 동작하는 이유는 뭔가요? 더 쉬운 예제로 Controller에서 em.find() 호출이 가능한데, 이유가 뭔지 궁금합니다.. EntityManger의 구현체에 @Transactional이 붙어있나 싶어 em.getClass()를 찍어보았는데, class com.sun.proxy.$Proxy113 이렇게 찍혀서 구현체를 어떻게 봐야하는지를 모르겠어요.. @RestController @RequiredArgsConstructor public class MemberApiController{ private final EntityManager em; @GetMapping("/api/v1/member") public Member getMemberV1(){ return em.find(Member.class, 1L); //트랜잭션 설정을 안했는데 왜 가능할까요? } }
-
미해결Vue.js 시작하기 - Age of Vue.js
component
강의랑 관련 없는 내용이지만 초급강좌에서는 html 에서 만드시는데 중급 강좌에서는 app.vue로 만드시잖아요. 상품 관련 컴포넌트를 만들려고 vue에다가 전역 컴포넌트를 만들고 라우터.js 에 눌르면 가게 해놨는데 컴포넌트 등록한게 맞냐고 자꾸 에러가 뜨는데 왜 그런건지 모르겠어요ㅠ <template> <div id="app"> <ka-nav></ka-nav> </div> </template> <script> Vue.component('ka-nav', { template: '<h1>k</h1>' }); new Vue({ el: '#app' }); export default { } </script> <style> </style>import VueRouter from 'vue-router' import FRAGANCE from './components/ka-nav-fra.vue' import NEWARRIVALS from './components/ka-nav-f.vue' Vue.config.productionTip = false Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', routes: [ { path: '/FRAGANCE', component: FRAGANCE }, { path: '/NEWARRIVALS', component: NEWARRIVALS } ] }); export default router
-
미해결단 2주간 키운 블로그로 월 80만원 용돈 벌기
강의 후기 이벤트 신청
자생님 안녕하세요. 강의 너무 잘들었습니다. 강의후기 이벤트 신청합니다. chzhwhgdk2020@naver.com 감사합니다 :-)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
이게 무슨 에러일까요?
MainImage 랜더링 하는 과정 중에 에러가 난것같은데 잘 되다가 갑자기 에러가 나네요?
-
해결됨React로 NodeBird SNS 만들기
특정 페이지에서 새로고침 시 LOAD_USER_REQUEST를 실행하지 않는 문제
안녕하세요! 강의 듣고 토이프로젝트 진행중인 학생입니다. SSR을 통해 데이터를 프론트에서 미리 가져와주는 작업을 진행중입니다. page/index.js의 경우 해당 페이지에 로그인 후 새로고침을 하면 app.js에서 계속해서 me 데이터를 가져와주어 문제가 없는데 page/user.js 페이지를 만들어서 작업중인데 해당 페이지는 링크를 타고 그대로 들어가면 문제가 없으나 새로고침 시 me데이터가 아예 사라지는 문제가 있습니다. 콘솔로그 찍어보니 LOAD_USER_REQUEST가 실행은 되는것 같은데 제대로 값을 불러내지 못하는것 같습니다. 어느 부분이 잘못된 것인지 저 나름대로 코드를 비교해보았으나 갈피를 잡지 못하여 질문 드립니다 ㅠㅠ 덧글로 파일 코드 작성해보겠습니다! 도움 주시면 감사하겠습니다 ㅠㅠ
-
미해결PWA 시작하기 - 웹 기술로 앱을 만들자
최근 스타벅스 앱을 구글 플레이 스토어에서 다운받아 설치했는데 PWA도 스토어에 등록 가능한가요?
최근 스타벅스 앱을 구글 플레이 스토어에서 다운받아 설치했는데 PWA도 스토어에 등록 가능한가요?
-
미해결윈도우 악성코드(malware) 분석 입문 과정
주소가 개발환경에 따라 다르게 나타나는게 정상인가요?
DllMain주소를 찾으려는데, 개발환경에 따라 주소가 다르게 나타나는건지요? 강의에서는 1000D02E라는데 저는 1001515D입니다.... IDA 5.0으로 열었을때는 모든 주소가 100으로 깨져서 나오고 7.0으로 열면 1001515D나옵니다. 현재 바이러스 탐지 프로그램 작동하지 않는중입니다
-
미해결React로 NodeBird SNS 만들기
테이블간의 부모 자식관계
https://www.inflearn.com/questions/33032 이어서 질문 드립니다.. "개발자그룹"을 클릭하면 그그룹의 id에 업로드한 게시물을 로드되게 하고 싶은데요~ 게시물 올리기와 로드하기 기능이 둘다 안되고 별다른 에러메세지 없이 업로드하는 폼만 나옵니다. 1. 댓글처럼 테이블간의 부모 자식관계가 있으면 불변성을 확보해 주어야 하나요? 2.별부분의 로직이 "부모가 되는 Gpost 테이블의 id가 있는 테이블 Post중 title 이 일치하는 게시물을 찾아라" 가 맞나요? ☆☆☆ <post.js/routes> // 게시물 올리기 route : http://localhost:3060/post/100/개발자 router.post('/:id/:title', isLoggedIn, upload.none(), async (req, res, next) => { // POST /api/post : 게시글올리기라우터 try { const gpost = await db.Gpost.findOne({ // 부모가되는 그룹포스트가있는지 where: { id: req.params.id }, include: [{ model: db.Post, as: 'Posts', attributes: ['id'], where: { title : decodeURIComponent(req.params.title) }, //☆☆☆ }], }); if (!gpost) { return res.status(404).send('포스트가 존재하지 않습니다.'); } const newPost = await db.Post.create({ content: req.body.content, UserId: req.user.id, GpostId: gpost.id, // 어떤 그룹에 속해있는지 }); await gpost.addPost(newPost.id); if (req.body.image) { // 이미지 주소를 여러개 올리면 image: [주소1, 주소2] if (Array.isArray(req.body.image)) { const images = await Promise.all(req.body.image.map((image) => { return db.Image.create({ src: image }); })); await newPost.addImages(images); } else { // 이미지를 하나만 올리면 image: 주소1 const image = await db.Image.create({ src: req.body.image }); await newPost.addImage(image); } } const fullPost = await db.Post.findOne({ where: { id: newPost.id }, include: [{ model: db.User, attributes: ['id', 'nickname'], },{ model: db.Image, },{ model:db.User, as:"Likers", attributes:['id'], }], }); res.json(fullPost); } catch (e) { console.error(e); next(e); } }); <post.js/routes> // 게시물'들' 불러오기 router.get('/:id/:title', async (req, res, next) => { // GET /api/posts try { const gpost = await db.Gpost.findOne({ where: { id: req.params.id }, include: [{ model: db.Post, as: 'Posts', attributes: ['id'], where: { title : decodeURIComponent(req.params.title) }, }], }); if (!gpost) { return res.status(404).send('포스트가 존재하지 않습니다.'); } const posts = await db.Post.findAll({ where: { GpostId: req.params.id, }, order: [['createdAt', 'ASC']], include: [{ model: db.User, attributes: ['id', 'nickname'], },{ model: db.Image, },{ model: db.User, through: 'Like', as:'Likers', attributes:['id'], }], order: [['createdAt', 'DESC']], }); res.json(posts); } catch (e) { console.error(e); next(e); } });
-
해결됨웹 게임을 만들며 배우는 Vue
강의 깃허브 레포지토리가 있나요?
무료강의 정말 감사합니다! 레포지토리가 혹시 있을까요?
-
미해결단 2주간 키운 블로그로 월 80만원 용돈 벌기
강의평 작성 이벤트 신청
안녕하세요. 강의평 작성 이벤트 신청합니다. hehe0811@naver.com 감사합니다.
-
디지털 포렌식 전문가 2급 실기 과정
14회
삭제된 글입니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
에러 관련 해결
1. Error - Compiled with warnings. ./src/components/utils/FileUpload.js [1] Line 57:25: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text 해결 <img style={{ minWidth: '300px', width: '300px', height: '240px' }} src={`http://localhost:5000/${image}`} alt=“” /> 추가 2. Error – 확인 버튼 미 동작 <Button type="submit" onClick={onSubmitHandler}> 확인 </Button> 으로 수정 (Basic 강의에서는 생기지 않았으나, 이번 강의에서는 이유를 몰라 여러번 코드를 확인하였습니다. 지금도 이유는 모르지만 이후에는 동작 되었습니다. 강의 감사합니다.
-
미해결실전! Querydsl
추후 Spring Data Mongo & Query dsl mongodb DB와 같은 NoSql 관련 강의 예정이 있으신가요 ?
안녕하세요 Query Dsl 까지 너무 잘들었습니다. 혹시 추후에 Spring Data Mongo & Query Dsl mongodb 와 같은 강의도 준비중 인게 있는지 궁금하네요. 빅데이터 처리및 관리에 아무래도 Mongo DB와 같은 NoSql DB들이 지원되는 것들 (간편한 샤딩과 Map Reduce 같은) 기능들이 강력 하다보니 해당 기술들로 빅 데이터 서비스 개발에 일부 대비하고 싶은데 스프링 사이트의 레퍼런스만 보다가 제가 라이브러리를 잘못 사용하거나 잘못 이해하고 있다가 나중에 개념이 틀린것을 알아 차리거나 이러한 부분들이 걱정 되네요 . 그래서 혹시나 강의가 나온다면 무조건 보겠지만 계획이 있는지 여쭤 봅니다.
-
미해결왕초보 블록체인 개념 완벽 이해하기(with 자바)
질문입니다.
이 전 시간에 깃허브에서 BlockUtil 클래스로 붙여넣기를 하고 나서 com.google 부분이랑 GsonBuilder() 부분이 빨간 줄이 그어져 있었는데, 이 부분은 어떻게 해결하셨나요? 이번 시간에 채굴 시연을 하려고 하는데 이 부분에서 걸리네요.