안녕하세요 토비님. OrderRepository 인터페이스가 application layer에 있고, 이걸 구현한 구현체가 persistence layer에 있는데요. 일반적인 layered 아키텍처라고 하면, 의존성의 방향이 아래로 향해야하는데, 이 경우라면 의존성이 application 으로 향하게 되는거 같은데요. 만약에 이런식으로 구성한다면 port & adapter 같은 개념을 별도로 두지 않더라도, 의존성방향에 의하면 헥사고날 (혹은 클린 아키텍처) 라고 부를 수 있는건가요? 아니면 그럼에도 layered 아키텍처라고 부르나요?
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
안녕하세요 ㅎㅎ 강의 너무 잘 듣고있습니다. use client 사용하는 이유에 대해서 잘 모르겠어서 질문을 드립니다 .ㅎㅎ 설명을 들었을때 server slide rendering 이지만 server side 기능을 하는것이 아니라 client side 로 넘어온다? 로 이해를 했는데 , 그렇다면 굳이 저 위의 지시어 use client 를 사용해야할때가 있을까 ?? 생각을 했습니다 ㅎㅎ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예) [질문 내용] 안녕하세요. 저는 지금 강의를 보고 있는 비전공자 학생입니다. 다름이 아니라 강의 시간 기준 약 8분대에 println("a = " + a + ", b = " + b)라는 코드가 있습니다. 이 때 +a+가 의미하는 것이 무엇인지 또 " " 안에 ,를 넣고 b를 넣었는지에 대해 물어보고 싶습니다. 감사합니다 .
해당 강의는 무료 제공 강의이기에 별도의 강의 내용 코칭은 제공해드리고 있지 않고 있습니다. (단, 내용 오류 신고는 지속적으로 받고 있으며, 기존에 신고 받았던 내용은 영상 상세 설명란에 참조 내용으로 적혀있습니다) 수익을 내지 않는 무료 제공 강의다보니 내용 오류나 오탈자가 있을 수 있습니다. 내용 오류는 dbswjdgkssla@naver.com 으로 신고해주시면 주기적으로 검토해서 반영하고 있습니다. (단순 오탈자는 건당 100원, 단순 오탈자가 아닌 내용 오류 신고는 건당 1000원의 신고 포상금을 드리고 있습니다) 강의에 오류가 있는 부분은 강의 내용에 사전 안내가 되어 있습니다, 해당 오류는 유튜브에서 이미 인지한 오류이며, 올인원 교재 업데이트(24년) 전까지 한 강씩 차례로 수정 반영될 예정입니다. 04번 해설에서 SELECT COUNT(COL2) .... 이니깐 개수를 셀 때는 COL2에서 NULLL 값을 제외하고 계산하니깐 4개인거 아닌가요? 강의에서는 COL1에서 NULL 값을 제외하고 4개를 세시는데 헷갈리네요. 제가 잘못 이해한 부분이 있는거라면 그 부분에 대해서 설명 부탁드립니다.
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
tailwind.config.ts 를 변경하려고 하는데 변경이 되지 않습니다. 다른 파일들도 수정하려고 보니까 수정이 안되네요ㅠㅠㅠ 이렇게해서 생성을 진행했구요. 잘은 모르겠지만 npx create-next-app . 로 설치를 진행했는데 권한 에러가 발생하더라구요 npm error code EACCES 그래서 sudo 를 앞에 붙여서 진행을 했습니다. 혹시 이 문제일까요 ?
기본 강의는 모두 봤고 이제 기출로 익혀보려고 합니다. 그런데 선생님 강의 보는 사람들의 오픈채팅이 있으면 더 도움 되겠다는 생각이 드네요 강의 중간 중간에 오류도 보이는데 그때마다 게시판에 적을수도 없고... 다른 분들의 질문을 통해서 더 이해되는 부분이 있지 않을까 싶기도 해서 시작하시는 초반이라 서로 도움이 되지 않나 싶어요~ 흐름이 빠르다 보니 아쉬운 점이 있지만.. 시험용 강의로 참 좋네요
안녕하세요. 해당 강의를 수강하다 궁금증이 생겨 질문 드립니다. 강의에서는 MemberService 같은 경우에 @Transactional public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } 이런식으로 엔터티를 파라미터로 받고, MemberApiController 같은 경우에는 @PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long id = memberService.join(member); return new CreateMemberResponse(id); } 별도의 DTO를 파라미터로 받아 member 엔티티 객체를 생성하여 set 해주는 식으로 진행하였는데, (set 말고 생성메소드를 이용해야하는건 알아요!) 1. 엔티티를 외부에 노출하면 안되고, API 스펙이 바뀌어도 문제가 생기지 않기 위해 Controller단에 파라미터 및 반환값에 DTO를 사용하는 것은 당연하다. 그렇다면 서비스나 리포지토리에서는 파라미터로 엔티티를 받아야 하나요? DTO를 받아야 하나요?? 2. 만약 DTO를 Controller에서만 받고, Service단에서 파라미터로 엔티티를 받는다면, Controller 단에서 엔티티 객체를 생성하여 Dto의 정보를 넣어준 뒤 Service단으로 보내줘야하는데, Controller단에서 엔티티를 생성하는 것이 괜찮은 방법인가요? 어떤게 더 좋은 방법이고, 실무에서 더 많이 쓰는 방법인지, 어떤 장단이 있는지도 궁금합니다.
const response = await axios.get(`http://localhost:4000/products/${id}`); 로 호출할때 클라이언트에서는 별다른 에러 메시지가 나오지 않으나 npm run dev로 실행한 서버 터미널에서는 GET /products/backendManager.js.map 500 in 9ms ⨯ AxiosError: Request failed with status code 404 GET /products/react_devtools_backend_compact.js.map 500 in 16ms 이라는 에러가 나옵니다. 이 파일들을 호출하는 이유가 무엇인가요..?
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
안녕하세요 . drawer.tsx에 있는 DrawerClose를 사용하면 useState를 통해 상태관리를 안해줘도 되지않나 싶어서 여쭤봅니다. Header쪽에 <DrawerClose> <Logo/> </DrawerClose> 이렇게 감싸주면 drawer가 열렸을때 x버튼을 누르면 똑같이 동작하더라고요. 혹시 useState를 사용하신 이유가 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 바로 전에 AnonymousOuter 참고해가며 이렇게 해봤는데 출력 결과는 동일하게 나오는데 혹시 잘못된 부분있거나 부족한 부분있으면 조언 부탁드립니다. package nested.anonymous.ex; import java.util.Random; public class Ex1Main { public void hello(String str) { System.out.println("프로그램 시작"); Process process = new Process() { @Override public void run() { if (str.equals("DICE")) { // 코드 조각 시작 int randomValue = new Random().nextInt(6) + 1; System.out.println("주사위 = " + randomValue); // 코드 조각 종료 } else if (str.equals("SUM")) { // 코드 조각 시작 for (int i = 0; i < 3; i++) { System.out.println("i = " + i); } // 코드 조각 종료 } } }; process.run(); System.out.println("프로그램 종료"); } public static void main(String[] args) { Ex1Main ex1Main = new Ex1Main(); ex1Main.hello("DICE"); ex1Main.hello("SUM"); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] \querydsl\src\test\java\study\querydsl\repository\MemberJpaRepositoryTest.java:21: error: cannot find symbol MemberJpaRepository memberJpaRepository; ^ symbol: class MemberJpaRepository location: class MemberJpaRepositoryTest MemberJpaRepository 테스트 오류를 어떻게 확인해야되나요 동일하게 질문하신 분이 계신데 드라이브 통해서 파일 올리라고만 답변되어있어서 질문 드립니다. 강의와 같은 경로에 repository 생성 후 테스트를 돌리면 심볼 오류가 납니다. 확인 부탁드립니다!! generated/study/querydsl/repository/ MemberJpaRepository 소스 코드 경로 https://drive.google.com/file/d/1wV-xy9-oUE0TgfONiumr5dr2TniGHdj_/view?usp=sharing
강사님 안녕하세요. 우선, 좋은 강의 감사합니다. 19강.코틀린의 이모저모 학습 중 이해되지 않는 부분이 있어서 질문드립니다. takeIf 을 설명하실 때 getNumberOrNull 함수와 getNumberOrNullV2 함수가 동일한 코드라고 설명해주셨는데요. 강의에서 takeIf 확장 함수는 주어진 조건을 만족하면 그 값을, 만족하지 않는다면 null 을 반환한다고 설명해주셨는데, 그러면 getNumberOrNull 함수의 반환 값이 반대로 된 것이 아닌가요? 오히려 getNumberOrNull 함수는 takeUnless 를 사용하는 getNumberOrNullV3 함수와 동일하다고 생각됩니다. 저는 아래와 같이 이해했는데.. 혹시 제가 잘못 이해한건지, 아니면 강의자료에 오타가 있으신건지 궁금합니다~~ // takeIf 구현 fun getNumberOrNull(): Int? { return if (number <= 0) number // 해당 조건이 맞으면 해당 값을 반환 else null // 아니면 Null을 반환 }
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 500 에러 뜨면서 자꾸 실행이 안됩니다. 이거 tomcat 설정에 jdk 버전이랑 뭐 안 맞다고 하는 오류 떄문에 그런 것 같은데 설정해봐도 안 되고 미치겠네요