데이터 저장 방식에 대하여 공부하던 중, ScriptableObject라는 유니티 데이터 저장 용 객체에 대해 알게 되었습니다. 보통 현업에서 일할 때 캐릭터/몬스터의 스텟 등 에디터 내에서 조절해주는 경우는 ScriptableObject를 사용하고, 세이브 파일, 설정 값 저장 등 런타임 동안 읽고 쓸 가능성이 있는 데이터는 Json 및 xml 파일에 데이터를 저장한다고 배웠습니다. 선생님의 수업에서 DataManager들은 스텟같은 전자에 속하는 데이터들도 Json or xml 파일로 데이터를 저장하는 것으로 배워서 궁금한 점이 1. 추측하기로는 배포 후 밸런스 패치 등 외부에서 스텟등을 조절해주기 위해 Json방식을 쓰는 것일까 하는데 맞나요? 2. ScriptableObject 방식이 문자열 읽고 파싱하고 C#데이터로 바꾸는 Json 사용 방식보다 성능이 우수하다고 하는데 전자를 별로 사용하지 않는 이유가 있나요? 3. 현업에서는 ScriptableObject를 자주 사용하나요? 4. 선생님의 ScriptableObject에 대한 개인 의견(ex. 불편함, 효율적임, ...)은 어떠신가요? 이렇게 4가지입니다. 항상 좋은 수업들 올려주셔서 감사합니다. 새로운 강의를 볼 때마다 새로운 가르침을 얻을 수 있어 좋습니다.
package section06_Sorting_Searching.no06_fail; import java.util.*; public class Main { public int[] solution(int n, int[] arr) { int [] answer = new int[2]; for (int i = 0; i < n-1; i++) { if (arr[i] > arr[i+1] && answer[0] == 0) { // 첫번째 바뀐 지점 answer[0] = i+1; } else if (arr[i] > arr[i+1] && answer[0] != 0) { // 두번째 바뀐 지점 answer[1] = i+2; break; } if (i == n-2) answer[1] = answer[0] + 1; // 서로 인접한 상태에서 바꼈을때 } return answer; } public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } for (int x : m.solution(n, arr)) System.out.print(x + " "); } } 코드를 위와 같이 작성했는데 틀렸다고만 나와서 왜 틀렸는지 아무리 생각해봐도 잘 모르겠어서 질문합니다.
JobListener 를 구현하면서 동적으로 executionContext 를 밀어 넣을때 설명이 내가 이해한게 맞다면 오타가 발생한 듯 하다. 이렇게 InfiltrationPlanListener를 JobBuilder 의 listener() 메서드로 등록해주면 beforeStep() 메서드에서 동적으로 생성한 데이터를 각 Step에서 참조할 준비가 완료된다. 해당 문구의 작업은 JobExecutionListener 로 동작한 부분으로 beforeStep 이 아닌 beforeJob 에 의해서 동적으로 생성되는게 맞지 아니한가?!
안녕하세요 선생님 현재 올려주신 게임을 하나하나 분석하면서 공부하고 있는 취준생 입니다. 다름이 아니라 이건 치트를 쓰지 않으면 잘 찾을수 없는 부분인데 제가 이해한게 맞는지 궁금하여 질문 드립니다. 일단 첫번째 버그? 이상한 부분은 서포트 스킬을 배웠을때 수치 변화 입니다. 예를들어 공격력을 5프로 올리는 서포트 스킬을 배웠을때 5프로 수치가 상승해야 하는데 10프로가 상승을 하길래 브레이크 포인트로 차근차근 넘겨보니 UpdatePlayerStat 함수를 호출할대 InitCreaureStat 을 호출하는데 거기서 Atk,MaxHp 등의 값을 곱해주고 다시 updateplayerstat 에서 처리를 또 해주더라구요 그래서 일단은 InitCreautreStat 함수 부분에 Stat 처리를 해주는 부분을 주석처리 해서 중복으로 서포트 스킬의 general 타입들이 적용되는걸 막았는데 이렇게 하는게 맞는건지 궁금합니다. 두번째 이상한 부분은 special 서포트 스킬 부분입니다. 이것도 역시 치트를 쓰지않으면 정말 찾기가 힘든 부분인데 현재 skillbook 스크립트 부분에서 addsupportskill 을 통해서 서포트 스킬을 추가하고 있는데 여기서 special 서포트 스킬의 경우에 skillbase 에 updateskilldata 함수에서 해당 공격스킬의 추가 값을 처리해 주는걸로 알고 있습니다 근데 여기서 예를들어 일렉트로닉 필드의 범위를 0.1 증가해주는 스킬을 배웠다고 했을때 처음에 배울때는 0.1이 정상적으로 증가를 하는데 두번째 일렉트로닉 필드 0.1 증가를 배웠을때 SupportSkills 리스트를 순회하면서 값을 적용하는데 이미 0.1이 증가된 specail 스킬을 한번 더 순회를 하여 0.1 + 0.1 해서 0.2가 되어야 하는데 0.1증가되서 0.2가 된 상태에서 한번 더 순회를 해서 0.3이 되는 현상이 있다는걸 알게 되었습니다. 그래서 현재 해결책으로는 AddSupportSkill 에서 Special 서포트 스킬을 SkillBase 의 updateskillData 부분에서 처리를 넘겨줬는데 그러지 않고 그냥 AddSupportSkill 함수 내에서 변경된 값을 추가를 하고 UpdateSkillData 함수로 넘기지 않고 처리 하는 방식으로 수정을 해서 이상하게 수치가 나오는 부분을 수정을 하고 기존의 Skillbase 스크립트 부분의 UpdateSKillData 함수 부분에서 처리하는 부분을 주석처리 해줘서 일단 중첩되서 처리가 되는 값을 수정을 해주었는데 혹시 더 나은 방법이 있는지 궁금하여 질문을 남깁니다. 일단 이렇게 좋은 자료를 주셔서 너무 감사드리고 앞으로도 계속 꾸준히 코드를 뜯어보며 공부를 열심히 하겠습니다. 날씨가 많이 추운데 감기 조심하시고 공부하다가 궁금한 부분은 이곳에 또 남기도록 하겠습니다.
킬구형 ㅎㅇ 요즘 형 spring-batch 오픈소스 이슈에서 잘 보고 있어. 진짜 형 대단한 거 같아. 형 그런데 나는 궁금한 게 있어 일단 이번에 나도 간단한 오타 수정으로 기여를 하기는 했는데 나도 이슈를 한번 찾아보고 싶은데 감이 안 잡혀서 형은 보통 이슈를 어떻게 찾는지, 아니면 오픈소스를 볼 때 팁 같은 게 있는지 궁금해.
안녕하세요, 강사님. 현재 자바 중급 2편을 이번 주 내로 수강 완료할 예정인 수강생입니다. 인프런에 올라와 있는 ‘김영한의 자바 공부법 로드맵’에서는 자바 고급 1, 고급 2를 뒤로 미루고 스프링 강의로 먼저 넘어가는 흐름을 추천해 주셨는데, 영상으로 올려주신 ‘김영한의 실전 자바 로드맵’에서는 자바 고급 1은 6강까지, 자바 고급 2는 전부 수강한 뒤 스프링으로 넘어가는 것이 최적이라고 말씀해 주셔서 두 로드맵 중 어떤 흐름을 따르는 것이 좋을지 고민되어 질문드립니다. 저의 목표는 다음과 같습니다. 올해 안에 「스프링 핵심 원리 - 기본편」까지 들어가는 것 스프링을 활용해서 직접 무언가를 개발해 보는 것 다만, 스프링을 빨리 배우고 싶으면서도 자바 기본기와 객체 지향에 대한 공부를 소홀히 하고 싶지는 않아서 인프런 로드맵처럼 자바 고급 1, 2를 건너뛰고 스프링으로 넘어가도 괜찮은 선택인지 확신이 서지 않습니다. 제 상황에서는 어느 로드맵 흐름을 따르는 것이 더 좋을지,자바 고급 1, 2를 어느 정도까지 수강한 뒤 스프링으로 넘어가는 것이 좋을지 추천해 주실 수 있을까요?
OAuthAttributes와 CustomOAuth2User 간의 차이가 궁금합니다. OAuthAttribute는 google로부터 받은 사용자 정보를 우리가 원하는 대로 확장 가능하게 하는 DTO라고 말씀해주셨고, CustomOAuth2User도 google로부터 받은 데이터 외에 별도의 사용자 정보를 추가하는 용도라고 말씀해주셨는데, 두 설명이 같은 의미처럼 느껴집니다. 두 클래스가 어떤 차이가 있는 건가요?
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님 취준생으로써 강의 들으면서 궁금한 점 질문 드립니다. 1.CustomRepository형식 과 Impl 형식이 보통 어떨때 자주 쓰이는 지 궁금해서 질문 드립니다. 2.JPA 에서 작성한 것들을 Querydsl 로 바꿀때가 그럼 ByXxx 에서 조인조건이 두개이상 들어가면 무조건 Querydsl 자바코드로 바꾸어 주는 게 좋을까요?
안녕하세요. 파이어베이스 이벤트 로그 수집관련해서 2가지 질문이 생겼습니다. 앱 삭제시 삭제하는 유저의 마지막 스테이지 값을 함께 받아보고 싶은데 어떻게 구현해야 하는지 궁금합니다. 동일한 유저가 앱을 설치하고 삭제한 뒤 다시 재설치하고 또 삭제한 다면 설치한 유저는 총 2명, 삭제한 유저는 총 2명으로 기록되는지 궁금합니다. 아무래도 파이어베이스 이벤트 로그 수집에 시간차가 있다보니 정확한 판단을 내리기가 어려워 테스트 하는게 쉽지가 않네요.
킬구형 RetryPolicy 작동 방식이 policyMap 에서 우선 발생한 에러의 상위 카테고리를 찾고, RetryPolicy 에 들어있는 SimpleRetryPolicy 가 실제로 각 에러에 대해 어떻게 처리할지를 정하는 것 같은데 그러면 두 에러가 상속 관계에 있어야지만 정상적으로 작동하는 거 같은데 맞아? 그런데 예제 코드에 있는 HttpTimeoutException 와 HttpServerErrorException 는 상속 관계가 아니어서 아마 의도대로 작동하지 않을 것 같은데 한 번 검토해봐줄 수 있어? 참고로 나는 java17 + spring-boot-starter-batch:3.5.6 환경으로 진행중이야
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 질문 메뉴얼 링크 따라서 build.gradle을 설정했는데, Q파일이 보이지 않습니다. 사진을 보면 우측 other 파일 밑에 querydsl이 없는데 어떻게 해야 하나요? 현재 저의 build.gradle 입니다.
킬구형 강의 특별해서 좋아~ 즐길 수 있을거 같아! 이런 강의 의도를 더 믿음있게 하기 위해서 오타 제보~ 섹션 1. SYSTEM INIT: 스프링 배치 종결의 서막 2. 배치 처리, 시스템 종결의 서막💀 Flexible.png 이미지 내 오타 ItemReader interface 를 상속하는 RedisItemWriter 는 없다. RedisItemReader 가 존재한다