묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
결혼식 - 코드 확인
function solution(times) { let answer = []; let cnt = 0; times.sort((a, b) => { if (a[1] === b[1]) return a[0] - b[0]; else return a[1] - b[1]; }); let et = times[0][1]; for (let i of times) { if (i[0] < et && i[1] >= et) { cnt++; } else if (i[0] >= et) { et = i[1]; cnt = 0; } answer.push(cnt); } answer = Math.max(...answer); return answer; } let arr = [[1, 10], [2, 8], [3, 9]]; // let arr = [[14, 18], [12, 15], [15, 20], [20, 30], [5, 15]]; // let arr = [[14, 18], [12, 15], [15, 20], [20, 30], [5, 14]]; console.log(solution(arr)); 안녕하세요! 강의 듣기 전에 작성한 코드인데 강의와 접근 방법이 다른 것 같아 질문올립니다. 제가 작성한 코드가 맞는지 확인부탁드립니다!
-
미해결주니어 기획자에게 꼭 필요한 업무 스킬과 용어를 한번에!
수업자료
안녕하세요. 수업자료는 어디서 받을 수 있을까요 ?
-
미해결스프링 핵심 원리 - 기본편
gradle이 인식 되지 않는것에 대해서 궁금합니다
안녕하세요! 갑자기 gradle이 인식 되지 않는 현상을 겪고 있는데요 여러가지 구글링을 통해서 idea를 제거하고 재빌드 하면 된다 아니면 처음부터 삭제 하고 빌드하면 된다 이렇게 조언을 해주셨지만 모두 안되어서 매우매우.. 고통스러운데요ㅠㅠ 이럴때는 어떻게 해야할까요? 또 현재 사용하고 있는 컴퓨터가 아닌 다른것으로 사용하면 또 되더라고요 그래서 제가 크게 만진것이 없는데 왜 이러는지 모르겠습니다 제가 참고한 페이지들은 아래와 같습니다 모두 되지 않았습니다.. https://gracelove91.tistory.com/13 https://jojoldu.tistory.com/364 https://otrodevym.tistory.com/entry/intellij-%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4%EC%97%90%EC%84%9C-Gradle-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%9D%B8%EC%8B%9D-%EC%95%88%EB%90%98%EB%8A%94-%EA%B2%BD%EC%9A%B0 https://hi-degger.tistory.com/26 더 배워가고 싶습니다 혹시나 도와주실수 있는 분들은 가르쳐주세요 감사합니다
-
미해결팀 개발을 위한 Git, GitHub 입문
수업 PPT 자료 부탁드립니다 :)
안녕하세요 강사님 :) 아래 메일 주소로 수업 ppt자료 부탁드립니다. 깃허브 사용에 대해 좋은 강의 올려주셔서 감사드려요! min9288@gmail.com
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의 내용중 이미지 파일 출력 핸들러 메소드의 보안적 문제 언급에 대한 질문입니다.
안녕하세요. 이번 강의 내용에서 이미지 출력 처리에 있어서는 여러 방법 중 UrlResource를 사용하여 처리하는 과정을 볼 수 있었습니다. @ResponseBody@GetMapping("/images/{filename}")public Resource downloadImage(@PathVariable String filename) throws MalformedURLException { return new UrlResource("file:" + fileStore.getFullPath(filename));} 다만, 32:25 부분에서 "위 코드 만으로는 보안에 취약해 보일 수 있으니, 여러 체크 기능을 넣는 것이 좋다"라고 언급하신 부분에 대해 어떤 부분이 보안에 취약할까 생각하던 중 도무지 생각나질 않아서 좀 더 구체적인 내용을 얻어갈 수 있을까 해서 질문드립니다. 보안 이슈에 대한 설명만 해주셔도, 취약점 체크를 위한 코딩에 도움이 될 것 같습니다. 미리 답변 감사드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 관련해서 질문 있습니다.
안녕하세요! 강사님께서 em.clear를 한순간 끈건 아니지만 영속석 컨텍스트안에 완전히 다 지우고 새로 만든거라고 하셨는데 refMember.getUserName();을 한 순간에 DB를 조회해서 쿼리가 나가서 해당 클래스가 영속성 컨텍스안에 들어가는걸로 알고 있습니다. 근데 아직 DB 조회를 하기전( refMember.getUsername()을 하기전 )이라 영속성 컨텍스트안에 해당 클래스가 없는거 아닌가요? 항상 강의 잘보고있습니다 . 감사합니다!!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
npm run start 실행시 에러가 뜹니다
package.json 파일입니다! { "name": "nodejs_study", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "jung", "license": "ISC", "dependencies": { "express": "^4.17.1" } } 에러 메세지입니다. 이렇게 에러가 떠서 실행이 안되는데, 같은 문제를 겪고 계신 분들이 계신 것 같아서 확인 부탁드립니다. 좋은 강의 감사합니다 :)
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
하이버네이트 프로퍼티 문제
안녕하세요 선생님 실습 진행하다가 중간에 문제가 생겨서 질문 올립니다. 프로젝트를 실행하니 하이버네이트에 프로퍼티가 존재 하지 않는다는 오류를 발견했습니다. --- 8월 01, 2021 4:00:55 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...] 8월 01, 2021 4:00:55 오후 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.3.10.Final} 8월 01, 2021 4:00:55 오후 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174) at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hellojpa.JpaMain.main(JpaMain.java:8) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 12 more --- 그래서 제가 메인에 작성한 코드와 persistence.xml에 작성한 코드를 비교하니 다른 점을 찾을 수 없었습니다. 제가 문제를 잘못 파악한걸까요? 문제의 원인과 해결에 관해 질문드리고 싶습니다
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
pull-request를 두 번 할때
로컬rep로 clone해온 폴더1 안에 있는 a.py와 b.py라는 모듈에서 각각 수정사항을 발견한 상황인데요. 답글들을 보니 변경사항 각각에 대해 branch를 생성해야 한다고 나와 있어서요. 그렇다면 (질문 1)branch_a를 만들어서 a.py를 수정하고branch_b를 만들어서 b.py를 수정해서pull request를 총 2번 하는 것이 맞는지 궁금하구요 (질문 2)질문 1에 대해서 '그렇다'라는 답이 나왔을 때 다시 드는 의문은, 만약 패키지 제작자가 a에 대한 pr과, b에 대한 pr 모두 merge할 가치가 있다고 판단했을 때 먼저 a에 대한 pull request를 merge 하면,original package는 a.py에 대한 수정사항을 반영하게 되는데 (original package가 아니라 '변경된 패키지'가 생성됨!) 그 다음 b에 대한 pull request를 merge할 때는original package가 아니라, 앞서 생성된 '변경된 패키지'에 대해 b를 merge해야 하는 상황이 올 텐데이 경우 branch_b는 a.py에 대한 수정사항이 들어있지 않기 때문에, 충돌이 발생하지 않는가? 해서요1) (동시에 2개 pr) 이런 충돌사항은 패키지 제작자가 알아서 관리해야 하는 것인지2) (1회 pr) 충돌을 막기 위해서 a.py와 b.py에 대한 변경사항을 하나의 브랜치에 담아서 pr해야 하는지3) (시간차를 두고 2회 pr) 아니면 a.py에 대한 pr이 merge될 때까지 충분히 기다린 다음에, 그렇게 '변경된 패키지'를 local로 다시 clone해 온 다음 그제서야, b.py에 대해 pr을 진행하면 되는 것인지 궁금하네요. 감사합니다.
-
미해결[Django] 장고로 인프런 따라만들기
장고로 인프런 따라 만들기
강의 만들기 코드가 틀린게 없는데 강의 만들기가 전혀 안되네요.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 최대합 코드 문제점
안녕하세요. 강사님, 최대한 효율적인 코드를 짜보려고 반복문을 최대한 적게 도는 식으로 코드를 구현해봤는데, 마지막 input.txt에서 오답이 나오네요. 저로서는 전혀 이해가 안되는 부분인데 혹시 살펴봐주실 수 있을까요?? '''격자판 최대합'''import syssys.stdin = open('input.txt','rt')N = int(input())num_array = [list(map(int,input().split())) for _ in range(N)]row_sum_list =[]col_sum_list =[0 for _ in range(N)]diag_left_sum = 0diag_right_sum = 0for idx in range(N): row_sum = sum(num_array[idx]) row_sum_list.append(row_sum) col_sum_list = col_sum_list + num_array[idx] diag_left_sum += num_array[idx][idx] diag_right_sum += num_array[idx][(idx* -1) -1]print(max([max(row_sum_list),max(col_sum_list),diag_left_sum,diag_right_sum]))
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실전! 스프링 DB 접근 기술 출시예정일
영한님의 강의를 들으며 너무 만족중입니다. 그중에서도 DB 관련해서 너무나 듣고 싶은데 출시 예정일을 간략적으로나마 알고 싶습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
쿼리 파라미터 외부 라이브러리
insert 쿼리의 파라미터 로그를 찍을때 깃의 외부 라이브러리를 gradle에 추가만 하면 되고 코드를 수정할 필요가 없는 이유가 스트링 부트의 autoconfiguration 기능떄문이라고 하셨는데 이부분이 잘 이해가 안되서 그러는데 조금만 더 자세히 설명을 부탁드려도 될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
Header/Footer 내용
안녕하세요~ boiler-plate 강의 듣고 지금 강의로 넘어왔는데요 메인페이지 위에 헤더부분은 따로 만드신건가요? 그 부분이 안나온 것 같아서요ㅜㅜ 또 강의에서 antd 다운받은 것 까진 했는데 실제 레이아웃과 연결시켜주는 부분도 제가 놓친걸까요??
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
testbench DUT 관련 질문드립니다!
안녕하세요 testbench 코드를 보던중 궁금한점이 생겨 질문합니다! 위 코드에서 DUT를 적을 때 오른쪽 괄호 안의 내용은 어떤걸 의미하나요 ? 시뮬레이션을 할 때 나타나는 이름 정도로 생각하고 있었는데 맞을까요? output 부분은 비워져있는 이유는 무엇인가요 ?
-
미해결스프링 핵심 원리 - 기본편
코드 깃허브 업로드 문의
안녕하세요 강사님 질 높은 강의를 위해 힘써 주셔서 감사합니다. 강의 정말 잘듣고 있습니다. 다른 문의글에서 복습용도로 일부 예제코드나 강의자료를 첨부하는 대신 출처를 밝혀야 한다는 점을 확인했습니다. 그런데 제가 강의를 학습하면서 예제코드를 따라 쳐보고 리드미에 복습용도로 강의자료를 정리했습니다. 그런데 모든 코드를 깃허브에 업로드했는데 이것이 문제가 될까요? 문제가 된다면 이 코드를 전부 숨기고 싶은데 검색을 해보아도 방법이 잘 나오지 않아서 방법을 알고 싶어 문의드립니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
cors에러...
안녕하세요~ 수업 중에 친절히 알려주셔서 잘 따라하고있었는데 뭘 건드렸는지 아래와 같이 cors를 접했습니다. 로그인 post요청은 잘 가는데 useSWR로 보낸 users는 cors가 뜨네요.. 설정은 server에서 cors :true 되어 http://localhost:3095/api/users로 요청을 보내고있는 상태입니다. login은 요청이 되는데 users만 안되는 이유가 뭘까요 ? ㅠ어느 부분을 확인하면 좋을지...
-
미해결Vue.js 시작하기 - Age of Vue.js
Reactivity 강의에서 Object.defineProperty 관련 질문입니다!
안녕하세요. 아래 강의 내용 중 궁금한 점이 있어 질문드립니다. - 강의 : Reactivity 구현 - 내용 : var viewModel = {}; 와 같이 선언 후, Object.defineProperty(viewModel, 'str', ...) 과 같이 str이라는 속성이 정의가 되었잖아요? 그리고 나서 크롬으로 실행한 다음에, 콘솔에서 viewModel.str = 'hello'; 라고 입력하면 할당했으니 "할당 hello"라고 출력이 됩니다. 그런데 그 다음에, viewModel.str을 입력하면 "접근"이라고는 나오는데, str의 값인 "hello"도 출력되어야 하는 것은 아닌가요? Object.defineProperty를 통해 정의된 속성은 유지되는게 아니라 그 안에서만 유지되는 지역변수와 같은 개념으로 이해하면 될까요?
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
안녕하세요, 선생님! 리뷰 관련하여 문의드립니다.
안녕하세요, 선생님! inflern이라는 사이트를 최근에서야 알게되어, 선생님의 강의를 이제 막 듣기 시작한 수강생입니다. 아직 강의를 얼마 듣지 않았지만, 커리큘럼과 초반 강의를 들어보고 많은 분들의 수강후기를 살펴보니 제가 정말 많이 배울 수 있을 것 같다는 느낌이 듭니다. 혹시 가능하시다면, 제가 배운 내용들을 정리해서 블로그에 글로써 업로드해도 괜찮을까요? 선생님의 강의를 링크할 수 있습니다. 긍정적인 검토 부탁드립니다 :) 선생님, 좋은 강의 감사드리며, 즐거운 하루 되시길 바랍니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 등록, 수정 구현 방법에 대해서 궁금합니다.
안녕하세요 강사님! 항상 훌륭한 강의 감사드립니다. 다름이 아니라 Book뿐만 아니라 Food, Movie 등 여러 Item도 등록 및 수정을 구현해보고 있습니다. 궁금한점은 제가 구현하는 방식이 item 종류에 따라 Controller에 메서드를 구현, ItemService에서 if-else 문을 통해 SaveForm, UpdateForm의 타입을 판단하여 다운캐스팅을 통해 save, update를 실행하도록 하였습니다. 허나 이 방식은 Item의 종류가 증가하게 될때마다 메서드와 if문이 추가되기때문에 코드가 복잡하고 가독성이 떨어진다는 느낌이 들었습니다. 이 방식을 개선할 수 있는 방법이 무엇이 있는지 궁금합니다. [Save & Update Form] 각 Item들은 ItemSaveForm, ItemUpdateForm을 상속 [ add & edit Item ] @GetMapping("/addBook")public String addBookForm(Model model) { Book book = Book.createEmptyBook(); model.addAttribute("book", book); return VIEW_PATH + "book/addForm";}@PostMapping("/addBook")public String addBookForm(@Validated @ModelAttribute("book") BookSaveForm form, BindingResult bindingResult, RedirectAttributes redirectAttributes) { //특정 필드 예외가 아닌 전체 예외 if (form.getPrice() != null && form.getQuantity() != null) { int resultPrice = form.getPrice() * form.getQuantity(); if (resultPrice < 10000) { bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return VIEW_PATH + "book/addForm"; } Long savedId = itemService.save(form); redirectAttributes.addAttribute("itemId", savedId); redirectAttributes.addAttribute("status", true); return "redirect:/manager/items/{itemId}";}@GetMapping("/addFood")public String addFoodForm(Model model) { Food food = Food.createEmptyFood(); model.addAttribute("food", food); return VIEW_PATH + "food/addForm";}@PostMapping("/addFood")public String addFoodForm(@Validated @ModelAttribute("food") FoodSaveForm form, BindingResult bindingResult, RedirectAttributes redirectAttributes) { //특정 필드 예외가 아닌 전체 예외 if (form.getPrice() != null && form.getQuantity() != null) { int resultPrice = form.getPrice() * form.getQuantity(); if (resultPrice < 10000) { bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return VIEW_PATH + "food/addForm"; } Long savedId = itemService.save(form); redirectAttributes.addAttribute("itemId", savedId); redirectAttributes.addAttribute("status", true); return "redirect:/manager/items/{itemId}";} @GetMapping("/{itemId}/edit/book")public String editBookForm(@PathVariable Long itemId, Model model) { Item item = itemService.findItem(itemId); model.addAttribute("book", item); return VIEW_PATH + "book/editForm";}@PostMapping("/{itemId}/edit/book")public String editBook(@PathVariable Long itemId, @Validated @ModelAttribute("book") BookUpdateForm form, BindingResult bindingResult) { //특정 필드 예외가 아닌 전체 예외 if (form.getPrice() != null && form.getQuantity() != null) { int resultPrice = form.getPrice() * form.getQuantity(); if (resultPrice < 10000) { bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return VIEW_PATH + "book/editForm"; } itemService.update(itemId, form); return "redirect:/manager/items/{itemId}";}@GetMapping("/{itemId}/edit/food")public String editFoodForm(@PathVariable Long itemId, Model model) { Item item = itemService.findItem(itemId); model.addAttribute("food", item); return VIEW_PATH + "food/editForm";}@PostMapping("/{itemId}/edit/food")public String editFood(@PathVariable Long itemId, @Validated @ModelAttribute("food") FoodUpdateForm form, BindingResult bindingResult) { //특정 필드 예외가 아닌 전체 예외 if (form.getPrice() != null && form.getQuantity() != null) { int resultPrice = form.getPrice() * form.getQuantity(); if (resultPrice < 10000) { bindingResult.reject("totalPriceMin", new Object[]{10000, resultPrice}, null); } } if (bindingResult.hasErrors()) { log.info("errors={}", bindingResult); return VIEW_PATH + "food/editForm"; } itemService.update(itemId, form); return "redirect:/manager/items/{itemId}";} Item이 추가될때마다 add, edit 메서드를 구현해야함 [ItemService] public Long save(ItemSaveForm form) { if (form instanceof BookSaveForm) { Book book = Book.createBook(form.getItemName(), form.getPrice(), form.getQuantity(), ((BookSaveForm) form).getAuthor()); itemRepository.save(book); return book.getId(); } else if (form instanceof FoodSaveForm) { Food food = Food.createFood(form.getItemName(), form.getPrice(), form.getQuantity(), ((FoodSaveForm) form).getFoodType()); itemRepository.save(food); return food.getId(); } else if (form instanceof MovieSaveForm) { Movie movie = Movie.createMovie(form.getItemName(), form.getPrice(), form.getQuantity(), ((MovieSaveForm) form).getGenre()); itemRepository.save(movie); return movie.getId(); } return null;}public Long update(Long itemId, ItemUpdateForm form) { if (form instanceof BookUpdateForm) { Book book = (Book) itemRepository.findById(itemId).get(); book = Book.updateBook(book, (BookUpdateForm) form); } else if (form instanceof FoodUpdateForm) { Food food = (Food) itemRepository.findById(itemId).get(); food = Food.updateFood(food, (FoodUpdateForm) form); } else if (form instanceof MovieUpdateForm) { Movie movie = (Movie) itemRepository.findById(itemId).get(); movie = Movie.updateMovie(movie, (MovieUpdateForm) form); } return itemId;} ItemType에 따라 다운캐스팅하여 save, update 실행