Tour와 Image를 일대다 관계로 하나의 Tour에 여러장의 이미지를 등록 시켜서 한 컬럼에 외래키를 물고 파일 경로 하나씩을 넣는 것이 목표인데요. 포스트맨으로 파일을 전송하면 img 폴더에 여러장이 한꺼번에 저장은 잘 되는데요. MySQL에는 아래 이미지 같이 들어가네요 ㅠㅠ 도와주세요 ㅠㅠ 모델 라우터 포스트맨 콘솔 MySQL
안녕하세요 DELETE 문 질문입니다. DELETE p1 << 이부분 FROM Person AS p1 INNER JOIN Person AS p2 ON p1.Email = p2.Email WHERE p1.Id > p2.Id DELETE는 FROM 으로 시작하고 FROM을 생략할 수 있다고 배웠습니다. 그래서 DELETE p1 이 부분이 FROM을 생략한 건줄 알았는데, FROM을 쓰면 error가 발생하더라고요. INNER JOIN 구문을 쓰는 경우의 예외인가요? 이부분 자세히 설명좀 부탁드립니다!
선생님, 몽공DB 연결을 하는 중에 제대로 되지 않아서 문의드려요 일단 VS CODE 에서 터미널 창이 활성화되지 않아요 그래서 제대로 된 건지 확인이 어렵네요ㅠㅠ const mongoose = require ( 'mongoose' ) mongoose . connect ( 'mongodb+srv://imw2008:1qaz2wsx1984@cluster0.n3d0v.mongodb.net/<dbname>?retryWrites=true&w=majority' ,{ useNewUrlParser : true , useUnifiedTopology : true , useCreateIndex : true , useFindAndModify : false }). then (() => console . log ( 'MongoDB Connected...' )). catch ( err => console . log ( err )) 그냥 윈도우에서 따로 cmd 창을 띄우고 npn start run 을 하면 MongoDB Connected... 가 뜨지 않아요, 에러메시지도 안 나오구요
SELECT TODAY.ID AS Id FROM WEATHER AS TODAY INNER JOIN WEATHER AS YESTERDAY ON TODAY.RECORDDATE - 1 = YESTERDAY.RECORDDATE WHERE TODAY.TEMPERATURE > YESTERDAY.TEMPERATURE; 저는 recordDATE에 -1 하니까 결과는 잘 나오는데 1 더하는 경우에만 안되는건가요?
안녕하세요! 매일 아침 발성연습과 자음, 모음 발음 연습하는 것으로 하루를 시작하고 있습니다 ㅋㅋㅋ 새롭고 좋네요 ~! 오늘 자음 발음법을 공부하다가 ㅅ, ㅆ에 대한 발음을 할 때 원래 저는 ㄷ의 위치와 동일하게 했는데 하품할 때 그 혀의 위치라고 하셔서 너무 당황스럽더라구요ㅠㅠ 지금 혀의 근육을 잘못 쓰고 있어서 지금 발음이 어색한건지... 되려 ㄷ발음의 위치에 혀끝을 두고 ㅅ발음 하니까 더 자연스러운데 강사님도 처음에 저처럼 이랬나요..??ㅎㅎ 막상 발음 번갈아 해보면 ㄷ의 위치에 혀 끝을 두고 했을 때보다 훨씬 바람 세는 정도가 약한 느낌이 드는데 너무 어색해서 글 남겨봅니다..!ㅎㅎㅎ p.s. '시옷'이라고 발음할 때는 혀의 위치가 하품할 때 처럼 하래에서 시작하는데 '사람','싸이','쌀'이라고 발음할 때는 윗니 뒷쪽의 뿌리쪽..?? 가장 단단한 부분에서 시작하네요ㅠㅠ 사람이라고 발음할 때도 혀의 제자리에서 시작하도록 연습해야하겠죠???
ReactiveX → Observer Pattern? reactivex.io 홈페이지에 보면 다음과 같은 말이 있습니다. "ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional programming." 여기서 Observer Pattern이라는 말을 보고 이런 저런 생각이 들었는데요. 왜 여기서 Publish-Subscribe Pattern이 아니라 Observer Pattern일까? 강의에서 분명 Publish / Subscribe 를 썼던 것 같은데.. 그리고 Apache Kafka와 뭔가 비슷한 것이 있는 것 같은데, 어떤 점이 다를까. 이런 저런 생각을 했습니다. Observer Pattern vs Publish-Subscribe Pattern 그 결과, Observer Pattern과 Publish-Subscribe Pattern은 다르다는 것을 알게 됐고, 다음 그림이 이해하는데에 도움이 됐습니다. 제가 이해한 바로는 Reative Streams interface는 Observer Pattern을 바탕으로 만들어진 것이고, Apache Kafka 와 같은 메세지 큐들은 Publish-Subscreibe Pattern을 바탕으로 만들어진 것이라고 이해를 했습니다. 가장 큰 차이점은 Observer Pattern은 Subject(Observable)와 Observer(Subscriber)가 서로 알아야한 다는 것이고 (Coupled), Publish-Subscreibe Pattern은 Publisher(Producer), Subscriber(Consumer) 는 서로 알 필요가 없고, 메세지 인터페이스만 알면 된다는 것이죠 (Decoupled). 따라서 Observer Pattern은 Subject가 직접 Event 발생을 Observer들에게 알려줘야합니다. 반면에 Publish-Subscribe Pattern은 Publisher는 이벤트를 Event Channel에 통지하기만 하면 되고, Subscriber는 Event Channel로부터 메세지를 가져와서 처리만하면 된다는 것입니다. 즉, Publisher-Subscriber는 서로의 존재에 대해서 모르고 자신의 역할만 수행하면 되는 것이지요. Reactive Streams 인터페이스를 왜 Publish-Subscreibe Pattern이 아니라, Observer Pattern을 바탕으로 만들었는 지는 제 이해도가 부족해서 아직 온전히 이해할 수는 없지만 충분히 많은 공부가 되었습니다. To Kevin 이 주제는 Kevin님이 계획하신 수업 내용의 방향성과 다소 차이가 있는 것 같지만, 저와 같은 고민을 할 다른 수강생들을 위해서 공유합니다. 한번 생각해볼만한 주제인 것 같아서 공유드립니다! (강의로 찍어달라는 말씀은 아닙니다. 단지 공유하고 싶어서..ㅎ) Reference - https://medium.com/@thanhprofession/architecture-overview-observer-pattern-vs-publish-subscribe-pattern-772e7dd9db83 - https://softwareengineering.stackexchange.com/a/286921
엄청 싼티나게 배열을 reverse로 정렬해서 while문을 돌면서 나가는 조건은 coin들을 큰것부터 빼면서 최종금액이 0이 되는 경우로 하고 큰 코인부터 *를 늘려나가면서 기존 원금에서 - 해나가면서 하나씩 작은 코인으로 옮겨가면 가장 최소개의 코인으로 결과가 나올텐데요 이렇게하면 난이도가 확 낮아지죠. 근데 dp로 해야하는 이유가 무엇인지, (코딩테스트에서 더 점수를 많이 받을거라 생각되는데 - 그렇다면 물론 이것만으로도 이유는 끝이지만,, 이걸 공부하는 이유가 그것때문이니.. - 그게 아닌 다른이유도있을까요?) 궁금합니다.
public List<String> solve (String s) { List<String> result = new ArrayList<>() ; if (s == null ) return result ; for ( int i = 0 ; i < s.length() ; i++) { String newStr = s.substring( 0 , i) + s.substring(i + 1 ) ; if (isValid(newStr) && !result.contains(newStr)) { result.add(newStr) ; } } return result ; } 위와 같이 풀어보았는데 같은 결과가 나옵니다. 강사님의 substring 과 isValid를 이용했습니다. 엄청 단순해졌는데,, 혹시 이 풀이에 문제가있을까요 그런데 신기한게 해당 문제로 검색해서 다른풀이들을 보면 모두 강사님처럼 DFS로 풀었습니다. 저처럼 잘모르는 사람이 쉽게 가보려고 얍삽이?를 쓴것처럼 한 경우는없습니다. 왜그런것인가요?
제가 따로 제로초님의 강의를 참고해 다른 웹을 실습겸 개발하는데 문제가 있어 질문드립니다. 저는 useInput 훅스를 사용하는 부분에서 문제가 있습니다. 제로초님의 useInput.js파일을(chaper 3) 똑같이 사용하였습니다. PostForm과 비슷한 DataForm을 생성하였는데 아래는 DataForm의 일부 입니다. 여기서 문제는 onChange 부분으로 setTitle(e.target.value)로 값을 넘기면 useInput.js파일에서 TypeError : Cannot read property 'value' of undefined 에러를 보입니다. 하지만 setTitle(e)로 넘기면 문제가 발생하지 않습니다. 즉 useInput.js 파일의 const handler = useCallback (( e ) => { setter ( e . target . value ); }, []); 부분에서 e가 object의 형태가 아닌 그냥 value의 값을 받는다는 것입니다. 저는 DataForm과 PostForm의 형태가 비슷하다고 생각되는데 이런 일이 일어나는 이유가 궁금합니다. 이로 인해 setTitle ( '' ); setContent ( '' ); 도 사용하지를 못합니다. 아래는 PostForm.js의 일부분 입니다. const DataForm = () => { const [ title , setTitle ] = useInput ( '' ); const [ content , setContent ] = useInput ( '' ); const onChangeTitle = useCallback (( e ) => { setTitle ( e . target . value ); }, []); const onChangeContent = useCallback (( e ) => { setContent ( e . target . value ); }, []); return ( < Form onFinish = { onSubmitForm } > < Form.Item value = { title } onChange = { onChangeTitle } > < Input /> </ Form.Item > < Form.Item value = { content } onChange = { onChangeContent } placeholder = "description" > < Input.TextArea /> </ Form.Item > < Form.Item > < Button type = "primary" htmlType = "submit" > Submit </ Button > </ Form.Item > </ Form > ); };
최근 이 둘을 같이 사용하였는데, 에러가 엄청 발생하고, 심지어 eslint, prettier가 conflict가 나면서 에러가 지워지지 않았습니다. 그래서 다시 강의를 듣다가 prettier 문서를 다시 읽어보았는데, eslint-config-prettier를 통합 방법으로 추천하고, plugin은 generally not recommended라고 표현하더라구요. https://github.com/prettier/eslint-config-prettier eslint-config-prettier 문서를 읽어보아도, 뭔가 plugin과 같이 쓰면 config가 끈 rule이 다시 abled된다고 합니다. 어떻게 사용하죠?