묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결테스트주도개발(TDD)로 만드는 NodeJS API 서버
expect를 걸었음에도 불구하고 확인하지 않는 이유가 무엇일까요?
수업 전에 가능하면 먼저 풀어보려고 적은 코드라 강사님 코드와는 다릅니다. 제 생각에는 1. expect로 우선 상태 코드를 거른다. 2. end를 통해서 response의 property를 체크해서 값이 없는지 확인한다. 인 것 같아서 이렇게 코드를 구성해 봤습니다. 그런데, 이 경우 expect에서 값을 거르지 못하는 것 같아 이유가 궁금합니다. (test 코드만 작성한 상태라 통과하지 못해야 정상입니다) 또, 강사님께서는 test code에서는 값을 확인하지 않으시던데 제가 생각한 이유로는 1. 실무에서는 데이터가 너무 많기 때문에 확인하기가 어려워서 2. success의 output이 `204를 응답한다`이기 때문에 정해 놓은 조건에 따라가기 위해서인 것으로 생각되는데 맞나요? 만약 2.가 맞다면 test code를 작성할 때는 내부 로직에서 제대로 수행되었음을 가정하고 짜는 게 맞나요? 질문이 조금 길어졌네요 감사합니다 :)
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
이미지 업데이트가 안 되는 이슈 해결 / showImagePicker 대체 방법 질문드립니다.
안녕하세요. 안드로이드로 실습하는 중에 이미지 업데이트가 안 되어서 문의드리려다가 해결해서 공유하며, 질문도 하나 드립니다. 질문은 맨 아래에 있습니다. 현재 react-native는 0.66.4 버전을, react-native-image-picker는 4.6.0 버전을 사용 중이고요. app.js 코드는 아래와 같습니다. useState로 `avatar`를 업데이트 했으니 이미지가 떠야할 것 같은데 안 뜨더라고요. const App: () => Node = () => { const [avatar, setAvatar] = useState(''); const addImage = () => { requestCameraPermission(); // launchCamera({}, response => { // console.log('response: ', response); // setAvatar(response.uri); // }); launchImageLibrary({ title: 'Choose your photo', takePhotoButtonTitle: 'Take a pretty one.', chooseFromLibraryButtonTitle: 'Select an old one.', cancelButtonTitle: 'Just go back', }, response => { console.log('response: ', response); setAvatar(response.assets[0].uri); }); } return ( <View style={styles.container}> <Image source={{uri: avatar}} style={styles.avatar} key={avatar}/> <Button title='Add an Image' onPress={() => addImage()}/> </View> );}; 위에 `console.log`로 response를 확인해보면 response: { assets: [{ ..., uri: ... }] 이런 형태더라고요. 그래서 위처럼 response.uri 대신에 response.assets[0].uri 로 처리해서 해결했습니다. 이후에 비슷한 이슈를 겪으시는 분들께 도움이 되길 바라요. 다음은 질문인데요. ImagePicker.showImagePicker 함수를 라이브러리가 더이상 지원을 하지 않게 된 것 같은데, 동일하게 사진을 찍거나 이미지 추가 중에 선택할 수 있게 해주려고 하면 어떤 식으로 처리해야하나요? 버튼을 하나 더 추가하는 건 군더더기가 늘어나는 느낌인데 한 번에 처리할 수 있는 방법이 있을지 궁금합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
라우트 이동 및 새로고침시 각 컴포넌트별 state 유지
안녕하세요 제로초님 포트폴리오를 nextjs로 새로만들면서 작업중인데 라우트 이동 및 새로고침시에도 각 컴포넌트별 state를 유지하는 효율적인 방법을 좀 알고싶습니다. url : https://dv-node-portfolio.herokuapp.com/git : https://github.com/dvisign/new-next-portfolio전에 리액트로 할때는 useHistory를 이용한 커스텀 훅스 route state에 저장하였는데 nextjs에서는 사용할수가 없어서 useRouer로 저장이 가능한가 확인해보았는데 안되더라구요 그래서 다음으로 알아본것이 redux-persist 라이브러리였는데 리뉴얼된 강좌에서 ssr때문에 HYDRATE 액션때문에 사용은 해보지 않았고 리액트로 redux-persist 라이브러리를 사용했을때 로컬스토리지에 담는것같아 이용하지 않았습니다(개인적으로 localstorage를 신뢰하지 않는 개인적 성향때문에 그렇습니다.) 예를들어서 사이드 네비게이션이 열려있는것을 닫았다가 다른 라우트로 이동했을때 다시 열려있는 현상입니다. 스크린샷을 첨부합니다. 부단 이 부분 뿐만 아니라 나중에 더 만들다보면 이런 state유지 할것들이 더 많아질텐데 어떻게 유지 시키는것이 가장 효율적인 방법일까요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
github 권한 요청
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 인프런 아이디 : sooda891118@gmail.com인프런 이메일 : sooda891118@gmail.com깃헙 아이디 : sooda891118@naver.com깃헙 Username : programmer-seva
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 권한 요청
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 인프런 아이디 : sooda891118@gmail.com인프런 이메일 : sooda891118@gmail.com깃헙 아이디 : sooda891118@naver.com깃헙 Username : programmer-seva
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강의 수강시작인데 혹시 완전탐색 이후부터
완전탐색이나 dfs,bfs내용에 백트래킹같은것도 강의내용에 있을까요?
-
미해결홍정모의 따라하며 배우는 C++
9:36 부분 질문 있습니다
강의 그대로 따라하다가 Storage.cpp 파일을 include하면 링킹 에러가 나서 구글링을 해봤는데 cpp 파일을 include하면 cpp파일에서 만들어진 obj파일이랑 main에서 만들어진 obj파일을 링크할때 함수 정의가 중복되어서 링킹 오류가 난다고 하던데요 근데 강의에서는 되던데 이건 visual studio나 c++ 버전 차이 때문에 그런건가요?
-
미해결우디의 포토샵 강좌
질문있습니다!!
제가 늘리기해보려고 포토샵에서 진행했는데 free tranform을 잡고 늘릴때 그 영역이 확대가 됩니다! 오른쪽이면 오른쪽 왼쪽이면 왼쪽으로 늘어나는것이 아니라 전체 확대가 되는데 뭐가 문제일까요...? 포토샵 2020 사용 중입니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
띄어쓰기 질문
print("i1 * i2 : ", i1 * i2) 안녕하세요! 위 코드를 썼을 때, 결과는 i1 * i2 : 36621 이렇게 나오더라구요. 혹시 왜 : 다음에 __처럼 두 개의 자리수가 띄어지는지 알 수 있을까요? 한 자리는 "i1 * i2 : "의 마지막 공백 때문인지 알겠는데, 원래 프린트 구문이 저렇게 구분시키나 해서요. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 데이터베이스 다운로드 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]H2 버전이 1.4.200 이어야 한다고 해서 사이트에서 1.4.xxx대 버전을 다운로드 하려 했으나 Platform-Independent.zip 파일이 다운로드 되지 않는데 2.x대 버전으로 진행해도 될까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
vscode 실행
수업 잘 듣고 있습니다! VScode로 수업을 따라가고 있는데요, 변수 선언할 때 AGE는 constant라고 나옵니다. 이건 왜그런걸까요? 그리고, 아톰처럼 실시간으로 디버깅해서 보여주지 않는데 혹시 vscode도 아톰처럼 실시간으로 에러를 보여주거나 할 수 있나요? 지금은 맥으로 사용 중인데 ctrl+f5로 계속 전체 내용을 run하고 있습니다. 감사합니다.
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
APMsetup Monitor 실행하면
강의에 나와있는 화면처럼 뜨는 게 아니라 이렇게 떠요 ㅠㅠ 어떻게 해야 하나요,,? 그래서 껐다가 다시 켰는데 이번에는 아예 아무것도 안 나와요.... 실행이 된 거 같은데 화면에는 아무것도 안 나와요ㅠㅠ 그리고 두번째 방법인 apachemonitor도 해봤는데 이것도 실행이 이미 되어있다고 뜨는데 화면에는 아무것도 안 떠요..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 database GenerationType.IDENTITY 오류 질문입니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. <dependencies> <!-- H2 데이터베이스--> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.0.202</version> </dependency> <!-- JPA 하이버네이트--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.6.1.Final</version> </dependency></dependencies> @Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;...} public class EntityMapping { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member = new Member();; member.setUsername("AAA"); em.persist(member); tx.commit(); }catch(Exception e){ tx.rollback(); e.printStackTrace(); }finally { em.close(); } emf.close(); }} 실행하면 콘솔에서 Hibernate: drop table if exists Member CASCADE Hibernate: create table Member ( id bigint generated by default as identity, name varchar(255) not null, primary key (id) ) 와 같이 테이블이 생성되고 Hibernate: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) insert 쿼리는 위와 같이 데이터베이스로 호출하는것이 보입니다. [오류로그] 12월 23, 2021 10:44:53 오후 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: NULL not allowed for column "ID"; SQL statement: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) [23502-202] javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:780) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:760) at hellojpa.EntityMapping.main(EntityMapping.java:18) Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:200) at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:57) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:43) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3885) at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:330) at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287) at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:123) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:774) ... 2 more Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "ID"; SQL statement: /* insert hellojpa.Member */ insert into Member (id, name) values (null, ?) [23502-202] null이 들어 갈수 없다고 나오는데 강의중에는 어떻게 오류가 안나고 되는지 궁금합니다.
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
model과 modelmap의 차이점을 자세히 알려주세요
model과 modelmap의 차이점을 자세히 알려주세요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
재질문 있습니다!
안녕하세요 영한님 서포터즈님 제가 QnA 댓글에 재질문을 올렸는데 다른 글에서 재질문 시 메일이 전송되지 않아 확인이 어렵다는 글을 본적이 있어서 혹시나 다시 올려봅니다!! 질문 : https://www.inflearn.com/questions/373305?re_comment_id=155118 예를 들어 제가 "A" 길드를 만듭니다. 길드이름은 유니크 속성, 길드와 member가 연관관계 맺어져있는 상황입니다. 당연히 말씀하신 길드를 "하드 삭제" 하게 되면 외래키 무결성 제약조건(멤버의 외래키는 길드 id인데 길드가 없어지므로)이 위배됩니다. 그래서 말씀하신 소프트 삭제를 하게 됩니다. 그렇다면 DB에 아직까지 길드의 이름이 남아있겠죠? 그렇다면 다시 길드를 만들 때 A라는 길드를 만들고 싶은데 DB에 현재 존재하기 때문에 만들 수 없습니다. 이 때, 길드를 삭제하면 "DUMMYGUILD" + id 로 길드이름을 바꿔서 저장하는 방법을 생각했는데 이게 옳은 방법일까요?? 이 방법을 사용하게 되면 누가 고의적으로 DUMMYGUILD을 만들고 싶다할 때 오류가 생길 것 같은데.. 해결방법이 궁금합니다 ㅠㅠ 또, 소프트 삭제할 경우 DB에 계속 쌓이는데 이게 문제가 없나요?? 언제 한 번 싹 청소해주듯이 해줄 때가 있는건가요? 관련 검색어라도 알려주시면 감사드립니다!! 감사합니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
재시작 오류
실행은 문제없는데 수정이 저렇게 뜨고 강의처럼 안넘어갑니다,, 인터넷 찾아봐도 잘모르겠습니다 ㅠㅠ
-
미해결Java TPC (생각하고, 표현하고, 코딩하고)
IDE를 인텔리제이로 사용해도 될까요?
평소 인텔리제이를 자주 쓰는데 인텔리제이로 IDE를 사용해도 수업에 지장이 없을까요 ?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
비동기 방식에 대해 질문올려봅니다.
안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios.get( "https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test" ); const products = result.data.products; console.log(products); console.log(`status:(${result.status}) 통신을 성공했습니다!`); const data = JSON.stringify(products); return data; } catch (err) { console.error(err); console.log("결과를 가져오지 못했습니다."); return err; } }; console.log(getData()); 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
20:20 화살이 몬스터 못때리는거
해당 상황 이외에도 ㅁㅁㅁㅁㅁㅁ ㅁㅁ넷ㅁ나ㅁ ㅁㅁㅁㅁ몹ㅁ 몹이 넷플레이어에게 어그로 끌렸을때 이렇게 배치하면 내가 아래를 보고 몹을 때릴때 화살이 통과합니다. 예전에 ApplyMove 작업할때 충돌문제 생길것같아서 TODO 남겨둔부분이 있는데 ApplyLeave() 로 _object[,]에 null 넣고 이후에 if로 CanGo() 확인하는 로직에서 이동할수없으면 셀에서 존재하지 않아 버리게 됩니다. 길막이나 영상처럼 몬스터가 이동->공격 상태로 전환되기 전까지는 계속 _object[y,x]부분이null로 유지될것같고Arroy가 충돌체크를 _object[y,x] 배열기준으로 하니까 통과하는것 같습니다.
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
slack 초대 부탁드립니다
강의 잘 듣고 있습니다. mekdugi@gmail.com입니다.