묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인 모델 패턴식의 코딩관련 질문
안녕하세요 영한님~, 궁금한 것이 있습니다.영한님이 말씀하신 것처럼 아직은 도메인 모델 패턴이 생소하더군요. (실무에선 트랜잭션 스크립트 방식의 프로젝트들만 접해봐서요) [도움 받고 싶은 것] ddd가 어떤 식으로 구성되고, 어떻게 메시지를 주고 받는구나 하고 이해할 수 있는 샘플 프로젝트 알고 계신게 있을까요? 저는 깃허브에서 java ddd sample 검색해서 프로젝트들 다운받아서 기웃기웃 하고 있긴 한데, 아무래도 영한님이 ddd는 제가 아는 사람들 중에선 제일 잘 아는 것 같아서 여쭤봐요. 아니면 ddd 강좌나 책도 괜찮은거 추천 주시면 감사하겠습니다! ps] 실무에서 사이드성 프로젝트로(작은 서비스) 영한님 강좌에서 한 것처럼 도메인에 좀 더 많은 로직을 넣는걸로 시작을 했는데 점점 이게 커지면서, 어느순간 이 역할을 서비스 계층에 넣는게 맞나, 아니면 도메인이 처리를 하게끔 하는게 맞나 조금, 고민이 되는 순간이 오더라고요 엉엉. 그래도 영한님 강좌 덕분에 테스트 케이스도 많이 작성하면서 코딩하고, 재밌게 실무 하고 있습니다 :)
-
미해결R로 하는 웹 크롤링 - 실전편
원하는 지역의 카페(맛집) 리스트 크롤링 10:09분경 질문
1. 윗 부분 코드에는 name,id,x,y,address를 찾기 위해서 list앞에 [[1]]를 일괄적으로 붙이는 건 이해가 가는데, 아래의 sapply 부분 코드에서의 function부분을 보면 [[1]]가 없는데 왜 그런지 잘 이해가 가지 않습니다. b2$result$site$list[[1]]가 아니라 b2$result$site$list를 입력값으로 받는거면 함수에 적용되는 식도 b2$result$site$list$name 등 이런 식이 아닌가요? 따로 b2$result$site$list$name을 시도해봤는데 오류가 뜨고.. 즉 함수의 입력값에 들어가는 값이 x[[1]]가 아니라 단순히 x로 들어가는 것 같은데 왜 정상적으로 실행이 되는건지 원리가 잘 이해가 안가네요. 2. 왜 이런 오류가 뜨는 지 잘 모르겠네요. 첫번째 키워드(신촌 카페)는 잘 수집되는데 두 번쨰부터 막히는 것 같습니다. 키워드를 바꿔서 해봤는데도 항상 두 번째 키워드만 시행이 안됩니다. HTTP 404 오류가 발생했다고해서 사이트에 직접 접속해보면 문제없이 되서 무엇이 문제인지 잘 모르겠습니다. 감사합니다
-
미해결Azure 기초 (AZ-900)
[질문] 안녕하세요 ^^ 강의 잘 보고 있습니다.
안녕하세요. 강의 잘보고 있습니다. 현재 파이썬으로 AppService 코드 방식으로 배포를 하였습니다. 파이썬 로그 관련해서 화면을 어떻게 봐야 하는지 혹은 화면 설정을 어떻게 해야 하는지에 대해서 알고 싶습니다. 에러, 디버그, 인포 로그 확인이 필요합니다. 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
scanf를 사용해서 예제 1번을 풀려하는데..ㅠㅠ
#include<stdio.h> int main() { char alpa = 'A'; char beta = 'K'; int recycle = 0; int num = 0; printf("How much recycling? : \n"); scanf("%d", &recycle); printf("Recycle : %d\n", recycle); for (num; num <=recycle; num++) { for (alpa; alpa <= beta; alpa++) { printf("%c", alpa); } char alpa = 'A'; } } -- 첫번째 for문에서 scanf로 받은 값 만큼 반복시키려고 했는데.. 왜 안되는지 아무리 생각해도 모르겠네요.ㅠㅠ... 넘 어렵네요..
-
윤재성의 Oracle SQL Database 11g PL/SQL Developer
문의합니다
삭제된 글입니다
-
미해결HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
오늘 보드를 구매하여 받았습니다.예제 소스를 좀 받고 싶은데요
오늘 보드를 구매하여 받았습니다.예제 소스를 좀 받고 싶은데요
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
입력 로직 렌더링에 관하여 질문드립니다.
입력 로직 렌더링에 대한 설명을 들었을 때 MVC라는 패턴이 생각 났습니다. 제가 MVC에 대한 패턴은 자세히 모르지만 M(Model) : 실질적으로 바뀌는 곳 V(View) : 보여지는 곳 C(Controller) : 명령을 내리는 곳 이렇게 알고 있는데요. 해당 입력로직렌더링에 맞춰보니까 모델 : 로직 뷰 : 렌더링 컨틀롤러 : 입력 으로 연상되더라고요. 이렇게 이해해도 문제 없는지 궁금하며 혹시 부가적으로 MVC에 대해 설명을 해주신다면 감사하겠습니다. 사실... 저번에 면접보다 Unity의 MVC 패턴 설명해보세요. 라는 질문에 막혀버린 경험이 있어 질문드렸습니다.
-
미해결정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
map 생성 질문드립니다.
안녕하세요~강의 잘 보고 있습니다~! Map을 생성할 때, 강의에서는 Map<String,List<String>> map = new HashMap<>(); 이렇게 구현하셨는데, 깃허브에서는 Map<String,List<String>> map = new HashMap<String,List<String>>(); 이렇게 하셨더라구요~ 둘의 차이가 있는지 궁금합니다. 감사합니다~
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
input name 속성 전달에 대한 질문입니다.
MemberFor객체 에 동일한 프로퍼티 이름이 있으면 찾아서 넣어주는것은 알겠습니다. 그래서 input name="names"로 바꾸고 MemberForm의 name변수이름을 모두 names로 바꾸고 실행했더니 null값이 나오는데 왜 그런건가요???
-
미해결웹 게임을 만들며 배우는 React
인프런에서도 redux
redux 구조 볼수있네용 ㅋㅋ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
isPrime 부분
bool isPrime(int x){ int i; if(x==1) return false; bool flag=true; for(i=2; i<x; i++){ if(x%i==0){ flag=false; break; } } return flag; for(i=1; i<n; i++){ scanf("%d", &num); tmp=reverse(num); if(isPrime(tmp)) printf("%d ",tmp); } } 에서 return flag; 하는데 flag가 true 일때 tmp로 넘어가는거고 그럼 x==1 일떄 return false 인데 false 일 경우에는 tmp로 넘어가지않나요??
-
미해결Flutter 초급 - Http통신, 상태관리
bloc부분에서 에러가 납니다.
안녕하세요 강의 듣던 중 bloc 최신버전으로 했을 때 오류가 납니다 class CartBloc 부분에 error가 납니다.. flutter_bloc: ^6.1.1 최신버전 사용했습니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
SSR시 header
ssr 시에 백엔드 api 서버로부터 받은 헤더 와 쿠키를 브라우저에 전달하려면 어떻게 해야한요? 그리고 받은 쿠키 헤더를 다시 api에 보내려면 어떻게 해야하나요? 그리고 next.config.js에서 headers()에서 set-cookie에 여러개의 값을 넣을 려면 어떻게 하나요???
-
미해결Javascript ES6+ 제대로 알아보기 - 초급
다운로드 받은파일
확장자가 MD 인데 어떻게 확인 할수 있을까요?
-
[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
RetinaNet 할 때 YOLO는 넘겨도 되나요?
삭제된 글입니다
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
이클립스에서 lombok 어노테이션 사용
안녕하세요, 저는 이클립스에서 해당 수업 실습을 진행하고 있는데요.. 이클립스는 자동으로 라이브러리를 다운받아서 쓰는걸로 알고 있는데... lombok 어노테이션 테그가 먹지 않습니다...그래서 getter, setter를 만들어야만 정상적으로 페이지가 실행되네요.. 무엇이 문제일까요...?
-
미해결인터랙티브 웹 개발 제대로 시작하기
질문이 있습니다.
function doorHandler(e) { const targetElem = e.target; if ( !targetElem.classList.contains('stage') && currentItem ) { let tgid = parseInt(targetElem.parentNode.dataset.id); if ( tgid ) { inactivate(currentItem); } } if ( targetElem.classList.contains('door-body') ) { activate(targetElem.parentNode); } }; /* 문이 닫히지 않는 조건을 2개 적용했습니다. 1. stage 클릭했을 때 2. 열려있는 문을 클릭했을 때 1번의 경우, !targetElem.classList.contains('stage') 2번의 경우, let tgid = parseInt(targetElem.parentNode.dataset.id); if ( tgid ) { inactivate(currentItem); } 위 1,2번으로 조건을 적용하였는데 이렇게 적용하면 맞는 걸까요? 기능상으로는 제가 원하는 대로 작동은 합니다만 이 방법이 맞는 건지, 또는 좀 더 나은 방법이 있는 건지 궁금해서 여쭤봅니다. */
-
미해결애플 웹사이트 인터랙션 클론!
pageYOffset에 대한 질문
선생님, 넘 초보적인 질문일 수 있는데, 페이지를 새로고침하면 즉, load 이벤트가 일어나도 이전에 스크롤했던 pageYOffset값은 그대로 유지되는건가요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
커맨드와 쿼리 분리
MemberService의 update 메서드에서 Member를 그대로 반환하지 않는 이유가 커맨드와 쿼리를 분리하기 위해서라고 하셨는데 정확히 이해가 가지 않습니다 ㅠ 1. Member를 update 메서드에서 그대로 반환하면 왜 영속상태가 끊킨 Member가 반환이 되나요? 2.Member를 그대로 반환하면 updateMemberV2 메서드에서 Member member = memberService.update(id, request.getName());return new UpdateMemberResponse(member.getId(), member.getName()); 이런식으로 되면 오히려 강의에서 수정한 Member를 찾는 Select 쿼리 안날라가서 커맨드와 쿼리를 분리할 필요가 없는게 아닌가요..? * 여담으로 스프링 MVC 강의 11월에 출시된다고해서 기다리고있었는데 12월로 미뤄졌네요ㅠㅠ 빨리 듣고싶어요~
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
컨트롤러에서find한 객체를 받았을 때
강의 2번째 듣는중 궁금해져서 질문드립니다. 컨트롤러에서 find한 객체를 사용하게되면 더이상 영속상태가 아니기 때문에 id값만 받아서 서비스 transactional에서 find 하라고 말씀하셔서 궁금중이 생겨 컨트롤러에서find한 객체를 받아보았습니다. order()에서 find한 객체를 받아도 정상작동 되는건 이해가 되지만 set Name으로 이름을 바꿨을때 영속 상태가 아닌 member의 이름이 바뀌어서 db에 저장되는 이유가 무엇인가요? 파라미터로 받아도 영속상태는 유지되는 건가요? @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId,@RequestParam("itemId")Long itemId ,@RequestParam("count")int count){ Member member = memberService.find(memberId); orderService.order(itemId,count,member); return "redirect:/orders";} @Transactionalpublic Long order(Long itemId, int count,Member member){member.setName("change"); Item item = itemRepository.findOne(itemId); Delivery delivery=new Delivery(); delivery.setAddress(findMember.getAddress()); OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count); Order order = Order.createOrder(member, delivery, orderItem); orderRepository.Order(order); return order.getId();}