묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Redux vs MobX (둘 다 배우자!)
리덕스 툴킷에서 rejected 일 때 에러메세지 처리하기
안녕하세요 제로초님! 궁금한 게 있어서 질문 남깁니다! 로그인을 처리하는 로직에서 error 발생시 직접 정의한 에러 메시지를 보여주고 싶은데요.. 툴킷을 사용하기 전에는 axios에 error.response를 통해서 직접 정의한 메세지를 뽑아 사용했었는데 rejected에서 action.error.message 를 담아도 원하는 값이 안나오네요 "존재하지 않는 이메일입니다!" 라는 문구를 logInError에 넣고싶습니다! 방법을 알 수 있을까요? 감사합니다! 혹시 몰라서 코드도 같이 올리겠습니다! import { createSlice, PayloadAction } from '@reduxjs/toolkit' import { ResUserData } from 'api/user/types' import { userLogin } from 'store/user/action' interface UserState { logInLoading: boolean logInDone: boolean logInError: string | null user: ResUserData | null } const initialState: UserState = { logInLoading: false, logInDone: false, logInError: null, user: null } const userSlice = createSlice({ name: 'user', initialState, reducers: {}, extraReducers: bulid => bulid .addCase(userLogin.pending, (state: UserState) => { state.logInLoading = true state.logInDone = false state.logInError = null }) .addCase( userLogin.fulfilled, (state: UserState, action: PayloadAction<ResUserData>) => { state.logInLoading = false state.logInDone = true state.user = action.payload } ) .addCase(userLogin.rejected, (state: UserState, action) => { state.logInLoading = false state.logInError = action.error.message! }) }) export default userSlice.reducer
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
강의 잘 보고 있습니다! 한가지 궁금한 점이 있는데요
오브젝트 아이디를 검증하실 때 isValidObjectId() 함수로 하시는데요 ~ 프론트에서 params로 넘어오는 값은 "61c07d24bb241609ebfe7fff" 이러한 문자열 값일텐데 저 함수가 어떤식으로 이게 ObjectId("61c07d24bb241609ebfe7fff")값인지 검증해주는 걸까요 ? 혹시 back에서 front로 넘겨줬던 아이디가 ObjectId("") 이기때문에 front에서 params로 넘겨주는 값도 ObjectId("") 형태인건가요 ? 리액트로 프론트 작업 도중 넘어오는 아이디값을 보면 "" 문자열 형태이고 넘기는 값도 그냥 문자열인데 오브젝트 아이디로 구별되는게 몽구스가 해주는건지 궁금하네요 ㅎㅎ
-
미해결홍정모의 따라하며 배우는 C++
delete, 소멸자
안녕하세요 delete는 꼭 소멸자 안에서 실행이 돼야 하는것인가요? constructor에 delete를 넣어주면 안되는 것인지 여쭤봅니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock 질문입니다.
저는 한쪽에만 lock을 걸으면 어떻게 될까? 라는 생각을 가지고 Thread_1에는 lock을 걸고, Thread_2에는 lock을 걸지 않았습니다. Thread_2에서는 lock을 걸지 않아서 lock의 영향을 받지 않기 때문에 Thread_1에서 작업중인 number에 접근할 수 있고, Thread_1에서도 Thread_2에서 작업중인 number에 접근할 수 있어서 난수가 나올 것이라고 예상했습니다. 하지만 몇번을 돌려봐도 결과는 난수가 아닌 0이 나왔습니다. 그리고 질문들을 살펴보다 보니 새로운 object _obj2를 만들어서 Thread_2에 lock을 했을 때는 난수가 나온다는 것을 알았습니다. 서로 다른 object를 통해 lock을 하면 난수가 나온다는 것은 이해했고 이게 제가 예상했던 결과인데, 한쪽에만 lock을 걸었을 경우에는 왜 0이 나오는지 잘 모르겠습니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
배포에서 에러가 발생합니다.
강의에 나오는 모든 과정을 따라하고 나니, travis ci 는 성공하였는데 elastic beanstalk 에서 다음과 같은 에러가 나오면서 주소로 들어가보면 502 상태입니다.Environment health has transitioned from Info to Severe. ELB processes are not healthy on all instances. Application update completed 65 seconds ago and took 4 minutes. ELB health is failing or not available for all instances. 그래서 올려주신 코드와의 차이를 보니, 지금까지 만든 docker-compose.yml 파일이 강사님의 코드에는 docker-compose-dev.yml이 되어있고, docker-compose.yml 에는 다음과 같은 코드가 들어가있네요. version: "3" services: react: build: context: . dockerfile: Dockerfile ports: - '80:80' volumes: - /usr/src/app/node_modules - ./:/usr/src/app stdin_open: true 여태까지 만든건 개발용인거 같은데 둘중 어떤걸 사용하는게 맞는건가요?그리고 docker-compose.yml은 docker-compose up으로 실행이 가능했는데,docker-compose-dev.yml은 어떻게 실행하나요?
-
해결됨[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
windows2012r2 구성관련
안녕하세요 강의를 잘보고있습니다!windows를 vagrant를 이용해서 구성하려고하니 403오류가 발생하여(opentable/win-2012r2-standard-amd64-nocm) 다음 vagrant box를 가지고 진행하였습니다. (devopsgroup-io/windows_server-2012r2-standard-amd64-nocm) 그랬더니 ip가 제가 할당하지않은 ip가 자동으로 할당되며 방화벽도 해제되지 않는것을 확인하였습니다 오류는 다음과같이 timeout이 발생하였습니다. ==> ansible-node05: Waiting for machine to boot. This may take a few minutes... ansible-node05: SSH address: 127.0.0.1:19215 ansible-node05: SSH username: vagrant Timed out while waiting for the machine to boot. This means that Vagrant was unable to communicate with the guest machine within the configured ("config.vm.boot_timeout" value) time period. If you look above, you should be able to see the error(s) that Vagrant had when attempting to connect to the machine. These errors are usually good hints as to what may be wrong. If you're using a custom box, make sure that networking is properly working and you're able to connect to the machine. It is a common problem that networking isn't setup properly in these boxes. Verify that authentication configurations are also setup properly, as well. If the box appears to be booting properly, you may want to increase the timeout ("config.vm.boot_timeout") value. 제가 실수한 부분이있는지 궁금합니다! 감사합니다!
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
네이버 header_parms
안녕하세요! 패턴으로 실습하며 익히기: 네이버 Open API로 크롤링하기 부분 6:40초에서 질의드립니다! naver_open_api = "https://openapi.naver.com/v1/search/shop.json?query=갤럭시노트10" header_params = ("X-Naver-Client-id":client_id, "X-Naver-Client-Secret":client_secret) res = requests.get(naver_open_api, headers=header_params) 위 코드 부분에서 requests.get 파라미터에 naver_open_api 이부분은 그대로 변수를 넣으셨는데, headers=header_params 이부분은 왜 headers에 다시 넣어주는지 궁금합니다! header_params = ("X-Naver-Client-id":client_id, "X-Naver-Client-Secret":client_secret) 여기 변수를 headers로 지정하면 되지 않을까 해서 시도해보았는데 에러가 나오더라구요.. 왜 그럴까요?
-
미해결청소년을 위한 로블록스 개발 첫걸음
제 다리는 에러가..
local bridge = game.Workspace.BridgePart local touchPart = script.Parent function showBridge() bridge.CanCollide = true bridge.Transparency = 0 wait(5) bridge.CanCollide = false bridge.Transparency = 1 end touchPart.Touched:Connect(showBridge) 로 계속 보고 따라 하고 있는데 플레이를 할 때 다리가 터치를 하기 전에 이미 생성이 되어 있네요 ㅜㅜ 뭐가 문제일까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
시퀄라이즈 여러 쿼리 보내기, Promise async await 개념
안녕하세요. 항상 강의 보면서 도움 많이 받고 있습니다. 프론트에서 체크박스로 제품을 열람가능한 유저를 선택해서 DB에서 기존 데이터를 삭제하고 체크한 유저를 다시 추가해주는 식으로 제품열람가능 유저를 업데이트 하려고 하는데요 제품모델과 유저 모델은 Item.associate = (db) => { // 릴레이션(관계) 정의 db.Item.belongsTo(db.User); // 제품 등록한 유저 db.Item.belongsToMany(db.User, { through: 'ItemUsers', as: 'ItemViewUsers'}); // 제품 노출할 유저 }; .................. User.associate = (db) => { // 릴레이션(관계) 정의 db.User.belongsToMany(db.User, { through: 'UsersRelation', as: 'Providers', foreignKey: 'customerId' }); // 판매자-구매자 관계 db.User.belongsToMany(db.User, { through: 'UsersRelation', as: 'Customers', foreignKey: 'providerId' }); // 판매자-구매자 관계 db.User.belongsToMany(db.Item, { through: 'ItemUsers', as: 'UserViewItems' }); // 열람가능한 제품 }; 이런식입니다. 프론트는 Form과 Checkbox로 단일 ItemId와 UserId 배열을 보내주고 백에서 req.body로 받는 데이터는 { id: '1', values: { customerIds: [ 'tttt', 'ttt3' ] } } 이런식으로 받습니다. // 제품에 열람가능한 고객 등록 router.post('/add-customer', isLoggedIn, async (req, res, next) => { try { console.log('고객등록 req.body',req.body); console.log(req.user.id) const item = await Item.findOne({ where: { id: req.body.id} }); if (!item) { return res.status(404).send('해당 제품이 존재하지 않습니다.'); } if (item.UserId !== req.user.id) { return res.status(404).send('권한이 없습니다.'); } const itemViewUsers = await item.getItemViewUsers(); //제품 열람가능한 유저 전부 제거 if (itemViewUsers) { await Promise.all( itemViewUsers.map( customer => { console.log('\x1b[36m 유저 제거 시도', customer.id); item.removeItemViewUsers(customer.id); }) ); } // 제품 열람가능한 유저 추가 (체크박스로 체크된) if(req.body.values.customerIds){ await Promise.all( req.body.values.customerIds.map( customerId => { console.log('\x1B[31m 유저 추가 시도', customerId); const user = User.findOne({ where: { id: customerId }}) if (!user){ return res.status(404).send('해당 유저가 존재하지 않습니다.'); } item.addItemViewUsers(customerId); }) ); } res.status(200).json(item); } catch (error) { console.error(error); next(error); // status 500 } }); 유저 tttt가 이미 등록된 상태에서 유저 tttt, ttt3 를 선택해서 등록하면 DB에는 ttt3만 등록된 결과가 나옵니다... 실제 INSERT 문도 하나만 실행되네요. 항상 이런건 아니고 될때도 있습니다. 비동기 부분이 꼬여서 그런것같은데 제가 promise 개념이 약해서 어떤식으로 해결할 수 있을지 궁금합니다. Promise, async, await 부분은 제로초님 강의 꼭 다시 보겠습니다. 백엔드 로그는 이러합니다. 고객등록 req.body { id: '1', values: { customerIds: [ 'tttt', 'ttt3' ] } } tester1 Executing (default): SELECT `id`, `codeName`, `name`, `packageName`, `unit`, `msrp`, `supplyPrice`, `imgSrc`, `createdAt`, `updatedAt`, `UserId` FROM `Items` AS `Item` WHERE `Item`.`id` = '1'; Executing (default): SELECT `User`.`id`, `User`.`password`, `User`.`company`, `User`.`name`, `User`.`phone`, `User`.`email`, `User`.`role`, `User`.`createdAt`, `User`.`updatedAt`, `ItemUsers`.`createdAt` AS `ItemUsers.createdAt`, `ItemUsers`.`updatedAt` AS `ItemUsers.updatedAt`, `ItemUsers`.`ItemId` AS `ItemUsers.ItemId`, `ItemUsers`.`UserId` AS `ItemUsers.UserId` FROM `Users` AS `User` INNER JOIN `ItemUsers` AS `ItemUsers` ON `User`.`id` = `ItemUsers`.`UserId` AND `ItemUsers`.`ItemId` = 1; 유저 제거 시도 tttt 유저 추가 시도 tttt 유저 추가 시도 ttt3 Executing (default): DELETE FROM `ItemUsers` WHERE `ItemId` = 1 AND `UserId` IN ('tttt') Executing (default): SELECT `id`, `password`, `company`, `name`, `phone`, `email`, `role`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 'tttt'; Executing (default): SELECT `createdAt`, `updatedAt`, `ItemId`, `UserId` FROM `ItemUsers` AS `ItemUsers` WHERE `ItemUsers`.`ItemId` = 1 AND `ItemUsers`.`UserId` IN ('tttt'); POST /item/add-customer/ 200 9.485 ms - 236 Executing (default): SELECT `id`, `password`, `company`, `name`, `phone`, `email`, `role`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 'ttt3'; Executing (default): SELECT `createdAt`, `updatedAt`, `ItemId`, `UserId` FROM `ItemUsers` AS `ItemUsers` WHERE `ItemUsers`.`ItemId` = 1 AND `ItemUsers`.`UserId` IN ('ttt3'); Executing (default): INSERT INTO `ItemUsers` (`createdAt`,`updatedAt`,`ItemId`,`UserId`) VALUES ('2021-12-22 05:56:16','2021-12-22 05:56:16',1,'ttt3'); Executing (default): SELECT `id`, `password`, `company`, `name`, `phone`, `email`, `role`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 'tester1'; Executing (default): SELECT `User`.`id`, `User`.`company`, `User`.`name`, `User`.`phone`, `User`.`email`, `User`.`role`, `User`.`createdAt`, `User`.`updatedAt`, `Customers`.`id` AS `Customers.id`, `Customers`.`company` AS `Customers.company`, `Customers`.`name` AS `Customers.name`, `Customers->UsersRelation`.`createdAt` AS `Customers.UsersRelation.createdAt`, `Customers->UsersRelation`.`updatedAt` AS `Customers.UsersRelation.updatedAt`, `Customers->UsersRelation`.`customerId` AS `Customers.UsersRelation.customerId`, `Customers->UsersRelation`.`providerId` AS `Customers.UsersRelation.providerId` FROM `Users` AS `User` LEFT OUTER JOIN ( `UsersRelation` AS `Customers->UsersRelation` INNER JOIN `Users` AS `Customers` ON `Customers`.`id` = `Customers->UsersRelation`.`customerId`) ON `User`.`id` = `Customers->UsersRelation`.`providerId` WHERE `User`.`id` = 'tester1'; Executing (default): SELECT `id`, `password`, `company`, `name`, `phone`, `email`, `role`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`id` = 'tester1'
-
미해결스프링 핵심 원리 - 기본편
싱글톤 방식의 주의점 강의의 질문입니다.
강의를 듣고 스프링 프레임워크에 의하여 생성되든 사용자가 Java 코드를 이용해 생성하든 Singleton 방식으로 구현된 객체는 1개의 객체가 여러 곳에서 재사용하기 때문에 무상태(stateless) 형태로 설계해야 한다는 것을 잘 알게 되었습니다. 강의에서도 예시를 들어주시면서 Class 내 Member 변수가 아닌 Method 내 지역 변수로만 값을 핸들링하며 return 시켜주시며 무상태(stateless)의 적절한 구현방법을 설명해주셨는데요. 한가지 의문이 들었습니다. 만약 Singleton 객체 내부에 선언된 공유 가능한 변수(강의 내에서는 Class의 Member 변수)에 상태값이 남을 수 있다면 함수도 Singleton 형태로 사용되는 것인가요? 만약 객체의 무상태(stateless)만 신경쓰고 개발하다가 아주 짧은 시간 내에 Singleton 객체 내부에 있는 A라는 함수에 동시다발적으로 호출이 몰리게 되면 A 함수 내부에 선언된 지역변수도 공유될 가능성이 존재하는 것인가요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
혹시 [참고] 붙은 환결설정 ppt 교육자료 공유 가능할까요>?
안녕하세요 유익한 강의로 많은 도움 받고 있습니다. 혹시 [참고] 붙은 환경설정 가이드 ppt 파일 공유 가능할지 문의드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
To display the conditions report re-run your application with 'debug' enabled 해결방안
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. run -> edit configuration 으로 들어가서 해봤는데, 잘모르겠어 질문 들립니다... 해결방안 부탁드립니다.
-
미해결반드시 알고 넘어가야 할 웹 기술 기초편
url 인코딩
마지막 예시에서 공백은 url인코딩으로 바뀌지 않아도 되나요?
-
미해결대세는 쿠버네티스 (초급~중급편)
노드 Overcommit상태에서 QoS 대신 Priority를 사용하여 우선순위 선점가능여부 문의드립니다.
Node의 자원이 Overcommit 상태에서도 중요한 Pod들에 대해 우선순위를 가져가고 싶은데 QoS Guaranteed를 사용하려면 노드의 자원을 효율적으로 사용하지 못한다는 단점이있는 것 같습니다. Burstable로 사용하여 자원은 효율적으로 사용하면서 Node의 자원이 Overcommit 상태에서도 중요한 Pod들에 대해 우선순위를 가져가려면 Priorityclass를 생성하여 사용하면 될지 문의드립니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤의 DIP 위반
다른 질문들에서 해답을 찾지 못해 질문을 올립니다. AppConfig의 memberService()에서 return new MemberServiceImpl(memberRepository()); 대신에 return new MemberServiceImpl.getInstance();로 사용하는 것은 클라이언트가 구현체(싱글톤객체)에 의존하게 되므로 DIP가 위배된다 라는 것이 강의의 내용인데요..AppConfig와 같은 구성에 사용되는 클래스는 어쩔 수 없이 구현체에 의존을 해야만 하는 것 아니었나요?실제로 싱글톤 사용 전인return new MemberServiceImpl(memberRepository());방식에서도 MemberServiceImpl이라는 구현체를 의존하고 있었고 이전까지의 내용에서는 이를 두고 DIP를 위반한다고 보지는 않았던 거 같은데 말이죠.오랜만에 공부하려니 쉽지가 않네요.. 답변 부탁드립니다 ㅠ ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ ( 자답 )혹시 아래 내용이 맞는지 확인 부탁드립니다. 싱글톤 반영 전에는 AppConfig에서 return new MemberServiceImpl(memberRepository());를 통해 MemberRepository의 구현체까지 AppConfig 내부에서 모두 결정됨. 즉, 클라이언트 (MemberServiceImpl) 가 MemberRepository의 구현체에 의존하지 않음 -> DIP 충족인 것이고,싱글톤 반영 후 AppConfig에서 return MemberServiceImpl.getInstance()할 경우 클라이언트 (MemberServiceImpl)의 내부 코드에서 다시 MemoryMemberRepository.getInstance() 를 호출해야한다.즉, 클라이언트가 구현체에 의존하게 된다.-> DIP 위반 제가 너무 AppConfig 안에서만 생각해서 인지부조화가 발생한 것 같은데.. 이렇게 받아들이는게 맞을까요?
-
해결됨실전! 스프링 데이터 JPA
findTopN.... 에서 N의 상한점 및 DB에 걸린 SELECT 쿼리 조회 건수 제약이 있을때의 동작 방식이 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 학습 중 궁금한 내용이 생겨서 질문드립니다. JpaRepository를 구현한 뒤 규칙에 맞게 메서드 쿼리를 작성하는 것으로 간단하게 해당 Entity에 대한 SQL쿼리를 수행하는 메서드를 만들 수 있다고 알고 있습니다. 1. 혹시 findTopN... 형태의 메서드에서 N의 상한점이 있을까요? 예를 들면 findTop1000000... 이런식으로 작성해도 문제가 없는지 궁금합니다. 2. (1번 예시에서 이어서)한번에 100만건을 가져오는 건데 한번의 쿼리로 작성한 대로 100만건을 읽어와서 List형태로 받을 수 있을까요? 아니면 뭔가의 설정이나 기준으로 인해 알아서 N개씩 분할해서 여러번의 쿼리가 호출되는지가 궁금합니다. 3. 1번 예시에서 이어서)DB 자체에 제약을 걸어 SELECT문 조회시 최대K건의 데이터만 조회되도록 설정해놓은 상태에서는 어떻게 동작하는지 궁금합니다. 예를 들면 500건의 데이터만 조회되도록 DB자체에 설정을 걸어놓고 findTop5000.. 식의 쿼리를 쓴다면 SELECT 쿼리가 5000/500 = 10, 즉 10번의 쿼리가 호출되는지, 아니면 메서드 쿼리의 설정이 우선시 되어 5000건을 한 번에 읽어올지 궁금합니다. 위의 예시의 경우, 결국 EntityManager에 의해 SQL이 호출되는 것이기 때문에 DB 자체에 걸린 제약이 우선시되어 findTop5000... 을 호출했지만 한 번의 호출로 인해 500건밖에 가져오지 못할 것 같습니다. 이 경우에 나머지 4500건을 알아서 추가로 호출해올까요?... 감사합니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
지도학습 프로세스 및 데이터 처리 관련 질문
안녕하세요? 강의를 들으면서 공부하다가 조금 개념이 덜 잡혀서 질문드립니다. 머신러닝 지도학습 프로세스: 데이터 전처리 -> 데이터세트분리 -> 모델학습 및 검증평가 -> 예측수행 -> 평가 질문사항 1) 여기서 교차검증은 데이터세트분리 후에 모델학습을 하면서 한다고 생각하면 되는건가요? 아니면 모델학습 후 검증평가 단계에서 한다고 생각하면 되는건가요? 2) p.242(사이킷런 래퍼 XGBoost)에서 평가를 위한 데이터 세트로 테스트 데이터 세트를 사용했다고 써있습니다. 데이터 세트 분리에서 train data set + test data set로 분리되는데, train data set로 모델학습 및 검증평가(교차검증 포함)을 수행하고선 test data set로 예측 수행하고선 그 예측 결과를 평가 하는게 프로세스가 전부하고 생각하는데요. 책의 내용(p.242)을 보면서 제가 무엇을 잘못 생각하고 있는 것 같아서 질문 드립니다.
-
미해결실전! 스프링 데이터 JPA
JpaRepository의 Query Method 파싱 및 동작을 담당하는 클래스 및 인터페이스가 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 학습 중 다음과 같은 궁금함이 생겨서 질문드립니다. public interface CustomerJpaRepository implements JpaRepository<Customer, Long>{ public Customer findByName(); } 위와 같은 코드를 작성하면 findByName()이라는 메서드 이름을 파싱해서 규칙에 맞게 SQL 쿼리를 생성하고 해당 메서드를 호출 시 SQL 쿼리를 수행하는것으로 이해하고 있습니다. 혹시 저 메서드 명을 파싱해서 실제로 Query객체를 만들어 수행하는 부분의 코드는 어디서 확인할 수 있을까요? 연관된 클래스 또는 실제 동작 부분의 로직이 작성된 코드를 확인해보고 싶습니다. 감사합니다.
-
미해결리눅스 입문 - 개념으로 탄탄히!!
터미널
안녕하세요 터미널하고 명령프로프트(cmd)는 같은 것인가요? 그리고 윈도우용 터미널을 설치를 별도로 할수 있는것 같은데 이것은 기본 터미널에 UI기능이 업데이트 된거라고 생각하면 되나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
cluster 설정 관련문의
안녕하세요 cm 들어가서 .... cluster1이 이미 존재한다고 하고 cluster 2로 하니... 설정가능한 호스트 탭창이 보이지 않습니다. 어떻게 해야할까요...