묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결초보자도 간단히 단숨에 배우는 파이썬 프로그래밍
부동소숫점에 대해서 질문있습니다!
코딩을 배우면서 개발자분들이 소숫점을 부동소숫점이라고 얘기하는 경우를 종종 보게 되었는데. 제가 아는 소숫점은 그냥 소숫점 하나밖에 없습니다. 소숫점과 부동소숫점의 차이점은 무엇인가요? 혹은 굳이 부동 이라는 접두사를 붙여서 차별화 시키는 이유가 있나요? 또 컴퓨터에서 부동소숫점이 성능과 관련이 있다는데 간단히 설명좀 부탁드립니다. 검색을 했더니 너무 머리 아픈 이야기들을 하는 것 같아서요 ㅎㅎ;
-
미해결생활코딩 - 자바스크립트(JavaScript) 기본
소름 두번 돋음.
목소리가 너무 좋으셔서 소름돋고, 간략하게 이해가게 설명해주셔서 소름 한번 더 돋네요. 고맙습니다!
-
미해결WEB2 - Python 기초
안녕하세요! 혹시 blobstore 관련이나, 구글앱앤진과 관련해서도 자료가 있을까요?
안녕하세요! 혹시 blobstore 관련이나, 구글앱앤진과 관련해서도 자료가 있을까요? 학교에서 구글앱앤진으로 이용한 앱을 만들고 있는데요ㅠㅠ 교수님께서 플라스크나 장고는 안되고 꼭 jinja2, webapp2로만 만들라고 하셔서요.. 장고나 플라스크를 빼고는 자료가 너무 없어서요ㅠㅠ 혹시 이와 관련해서도 자료나 강의가 있으실까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
여러파일에서 구독시, 기능 수행 순서 조정이 가능한지요?
안녕하세요. 강좌 잘 보고있습니다. - 각각 다른 파일이나 스코프에서 체이닝/구독 된 함수들의 동작 순서를 조정하거나 관리 할 수 있나요? - 예를들어 '충돌' 판정을 하는 매니저가 있을 때, 1.플레이어 오브젝트 파일 2.몬스터 오브젝트 파일 3.무기 오브젝트 파일 에서 충돌판정 매니저를 구독후에 제각기 다양한 기능들을 += 하여 매니저에 전달 한다고 치면, 그 기능들이 동시에 수행되는것이 아니라 3 > 2 > 1 이나 2 > 3 > 1 이런식으로 순서를 조정하고 싶다고 가정할 때 - 그런것이 가능한지 여부와 불가능 하다면, 이런 케이스에는 델리게이트를 쓰면 안되는지에 대해 여쭈어 보고싶습니다.
-
홍정모의 따라하며 배우는 C언어
포인터 & 변수 메모리 할당 질문 입니다 ~!!
삭제된 글입니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
서치 질문 있습니다
백단에서 게시판 리스트 불러오는걸 get 으로 잡으니 const term 을 찾질 못하네요?..... post 로 하면 찾아내고요
-
해결됨실전! 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); } });