안녕하세요, 선생님...ㅎ 갑작스럽게 생각난 질문인데요...ㅎ 제가 예시로 아래처럼 클래스를 만들어 봤는데, 혹시 상속받은 클래스의 super(); 생성자 안에 이렇게 메소드도 넣을 수 있나요? 자바를 공부하면서 지금 여러 소스 코드들을 보고 있는데, 어느 소스코드는 super(); 생성자 안에 메소드를 집어 넣은 경우가 있더라구요?! 만약에 이렇게 만들 수 있다면, 언제 어느 때 가능할까요? 클래스는 정말 제가 생각나는대로 적어서 컴파일 에러 같은 건 생각하지 않았습니다. 부디 너그럽게 봐주셨음 합니다...ㅎ class Kid extends SomethingAwesome { Kid(int age) { super(comment(age)); // super() 생성자 안에 comment메소드 삽입 } public String comment(int age) { String saySometing = ""; if (age > 3 && age < 7) { saySomething += "엄마, 과자 사줘!"; } else if (age >= 7 && age < 11) { saySomething += "엄마, 이젠 로보트 사줘!"; } return saySomething; } public static void main(String[] args) {...} // 메인 메소드 실행 } 또한 일반적인 생성자 (Constructor)를 만들 때도, 생성자 안에 전달 값외에도 메소드를 넣을 수 있는가요? 이것도 마찬가지로 위에 예시로 코드를 적은 것 처럼 제 나름대로...ㅎ 써봤습니다...ㅎ 위의 예시 처럼 정말로 생성자 안에 메소드를 넣는게 가능한지 궁금해서 약간 무리수를 두면서(?) 코드를 적어봤습니다..ㅎ 이것도 너그럽게 봐주세요...ㅎ 감사합니다 : ) class ThankYouNote { // 제가 생각해도 좀 많이 이상하지만, // 메소드를 이렇게 선언해서 do = thanks(); // this.do = do; 이렇게는 많이 무리수죠? ㅠㅠ // 저렇게 위 클래스 처럼 super 생성자 안에 메소드를 넣는건 처음봐요 ㅠㅠ ThankYouNote() { thanks(); // this(thanks()); // 너무 많이 무리수 인듯하지만 일단 적어봤습니다...ㅠㅜ } public void thanks() { System.out.println("나도코딩 선생님, 감사합니다. :)"); } public static void main(String[] args){ ... } // 메인 메소드 실행 }
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요. 9강 returnBookTest() 질문 드립니다. 저는 강의 내용을 듣기 전에 미리 제가 테스트코드를 짜보고 이후에 비교해가면서 강의를 수강하는데요. 제가 짠 코드는 실패를 해서 문의드려봅니다. @Test @DisplayName("책 반납 성공") fun returnTest(){ //given val user = User("phd",31) userRepository.save(user) val book = Book("testBook") bookRepository.save(book) val loanHistory = UserLoanHistory(user,"testBook",false) userLoanHistoryRepository.save(loanHistory) //when assertThat(loanHistory.isReturn).isFalse() bookService.returnBook(BookReturnRequest(user.name, "testBook")) //then assertThat(loanHistory.isReturn).isTrue() } 저는 loanHistory 엔티티가 영속성 컨텍스트에 있기 때문에 user.userLoanHistroy 엔티티가 바뀔 때 loanHIstroy 객체의 상태 값 도 바뀔거라고 생각했는데요. 생각해보니까 각 엔티티를 save() 하는 메소드들의 트랜잭션이 각각 달라서 영속성 컨텍스트에 loanHistroy 객체가 없었을것 같아요. 뭔가 제대로 확인 할 방법은 없어서 그렇게 유추만 하고 있는데, 제가 유추한 내용이 맞을까요?... 강의 언제나 잘 보고 있습니다. 감사합니다!
[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
Vagrantfile 작성 후 vagrant up 시 network bridge 설정 질문이 나와서 설정방법 문의드립니다. virtualbox version: 6.1.18 vagrant version: 2.2.14 [Vagrantfile 내용] #-*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| config.vm.define:"ansible-server" do |cfg| cfg.vm.box = "centos/7" cfg.vm.provider:virtualbox do |vb| vb.name="Ansible-Server(Udemy-Bloter)" end cfg.vm.host_name="ansible-server" cfg.vm.synced_folder ".", "/vagrant", disabled: true cfg.vm.network "public_network", ip: "192.168.1.10" cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh" cfg.vm.provision "shell", path: "bootstrap.sh" end end
강의 중 생성한 Enemy 클래스에서 애님 클래스 설정을 ABP_Manny 로 기존 3인칭 템플릿 프로젝트에 있는 애님 블루프린트 클래스로 설정해주었는데요. ABP_Manny 클래스 내부 노드를 보면 현재 컨트롤러를 사용 중인 Pawn 의 속도, 땅에 붙어있는지 등 여러 정보들을 사용해 애니메이션을 실행하고 있습니다. 여기서 AI 컨트롤러와 비헤이비어 트리를 통해 AI 컨트롤러를 가진 Enemy 클래스가 이동할 수 있도록 해주었는데요. 그렇다면 속도 값이 업데이트되어 Walk/Run 노드가 실행되어야 할 것 같은데, 계속해서 Idle 노드가 실행되는 이유가 궁금합니다~
public class PhantomReferenceExample { public static void main(String[] args) throws InterruptedException { BigObject strong = new BigObject(); ReferenceQueue<BigObject> rq = new ReferenceQueue<>(); BigObjectReference<BigObject> phantom = new BigObjectReference<>(strong, rq); strong = null; System.gc(); Thread.sleep(3000L); // TODO 팬텀은 유령이니까.. // 죽었지만.. 사라지진 않고 큐에 들어갑니다. System.out.println(phantom.isEnqueued()); Reference<? extends BigObject> reference = rq.poll(); BigObjectReference bigObjectCleaner = (BigObjectReference) reference; bigObjectCleaner.cleanUp(); reference.clear(); } } 위에 코드에서 커스텀하게 만든 BigObjectReference 로 형변환을 하고 cleanUp을 따로 호출 하는 부분이 이해가 잘 가지 않습니다. cleanUp 메서드도 단순히 출력만하는데 굳이나 상속을 받아서 커스텀하게 만든 형태가 만든게 무의미한 것 같습니다. 기선님이 의도한 소멸되는 시점을 확인하고자 하면 아마 아래와 같이 clear 메서드를 오버라이딩하는게 좀 더 맞지 않나 조심 스럽게 의견을 내봅니다. public class BigObjectReference<BigObject> extends PhantomReference<BigObject> { public BigObjectReference(BigObject referent, ReferenceQueue<? super BigObject> q) { super(referent, q); } @Override public void clear() { super.clear(); System.out.println("clean up"); } } public class PhantomReferenceExample { public static void main(String[] args) throws InterruptedException { BigObject strong = new BigObject(); ReferenceQueue<BigObject> rq = new ReferenceQueue<>(); BigObjectReference<BigObject> phantom = new BigObjectReference<>(strong, rq); strong = null; System.gc(); Thread.sleep(3000L); // TODO 팬텀은 유령이니까.. // 죽었지만.. 사라지진 않고 큐에 들어갑니다. System.out.println(phantom.isEnqueued()); Reference<? extends BigObject> reference = rq.poll(); reference.clear(); } } 출력화면
cmd에서 ./gradlew /gradlew gradlew gradlew build 다 쳐봤는데 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고 나오거나 ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk-11\bin Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 라고 떠요.. 그리고 버전 확인해봤는데 저렇게 나오는 게 맞나요? 다른 분들 질문한거 웬만한거 다봤는데 여기서 더이상 어떻게 진행해야 될 지 모르겠어서 막막하네요ㅠㅠ
강의에서 플레이어 주변으로 적들이 몰리도록 하는 EQS를 구현하였습니다. 여러가지 테스트 항목들을 사용하여 구현하였는데, 그 중 Trace 항목이 이해가 안되는 부분이 있습니다. Trace 항목은 커리어가 추적할 수 없는 곳을 필터링하는 노드로 이해가 되는데, 왜 디테일 세팅에서 Bool 일치를 False 로 설정하는 것인가요?? Bool 일치를 False 로 설정하면 반대로 동작을 해서 추적할 수 있는 곳이 필터링 되어 추적할 수 없는 곳만 남게되는 것 아닌가요..? 이 부분에 대해서 설명 부탁드립니다!
[질문 내용] 회원 목록 조회 강의수강중입니다. 어플리케이션을 재시작 할때마다 DB에 테이블이 재생성이 되면서 기존 데이터가 사라집니다. yml에 ddl-auto : create설정 때문인 것 같은데, none, 이나 update로 설정하면 테이블의 재생성은 방지가 되는데, 최초 구동 시 JPA가 테이블을 생성하는것도 막히는건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 jpa부분을듣고 실습을 따라하다 다른방법이 있는지 문의드립니다. MemberServiceIntegrationTest 에서 @Transactional 를 사용하지않으면 데이터 세개가 들어감과 동시에 회원가입 메소드와 중복_회원_예외()의 함수를 실행하면 데이터가 들어가게 됩니다. 이런 오류가 나오는데.. 제가 궁금한것은 @Transactional 를 사용하지않고 트랜젝션? 처리하는 방법이 있을까요? 방법이 존재한다면 어떤방법으로 처리하면.. @Transactional 유사 처리가 되는지 궁금합니다. 강의를 보고 또 보고하면서도 많이 배우고있습니다. 감사합니다.
문제에서 웅덩이의 첫번째 구간은 1~6으로 주어졌는데 이 문제의 힌트를 보면 111222..333444555.... // 길이 3인 널빤지 .MMMMM..MMMM.MMMM.... // 웅덩이 012345678901234567890 // 좌표 1부터 5까지인 것을 확인할 수 있습니다. 왜 이렇게 나오는 것인지 궁금합니다..!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예/ 아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 안녕하세요. ModelView를 사용하는 이유는 서블릿에 대한 종속성에서 벗어나기 위해 사용하는걸로 이해하면 될까요?
개인 사정으로 학교를 오랫동안 쉬었다가 복학을 하게 되었고 현재 3학년입니다. 아래는 현재 고민중인 부분입니다. 클라와 서버를 모두 깊이 있게 공부해서 실력을 겸비하여 졸업작품으로 클라+서버 모두 담당하여 퀄리티 있는 졸업작품을 만든다. - 졸업까지 3년 클라를 집중적으로 공부해서 졸업작품으로 클라를 담당한다. 잘하는 팀원에게 버스를 타는 한이 있더라도 졸업을 우선시한다. - 졸업까지 2년 학교는 한국산업기술대 게임공학과입니다. 졸업작품은 DX12를 이용해서 자체엔진을 제작하여 만들 것입니다. 1번을 목표로 하면 학과 커리큘럼상 졸업작품을 1년 늦게 시작해야 하므로 총 3년이 걸립니다. 졸업작품을 만드는 마지막 1년은 졸업 작품을 제외하면 수업에는 여유가 있어서 취업준비도 겸할 수 있습니다. 1번은 졸업하는 년도에 만으로 29세가 됩니다. 저는 장기적으로 봤을 때(취업이 목적이 아닌 고급프로그래머가 되려면) 1번이 더 효율적이라고 생각이 됩니다. 루키스님의 생각은 어떠하신가요? 졸업을 늦게하면 저에게 무엇이 안좋게 작용될지도 궁금합니다. 긴 글 읽어주셔서 감사합니다. 그리고 양질의 강의 제공해주셔서 감사드립니다.
순수 JDBC 강의를 따라가며 실행해보았는데 디버깅 오류는 없으나 페이지 실행시 이름등록에서 등록 버튼 클릭후, 회원목록 클릭 후 연결되지 않는 에러가 발생합니다. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sat Mar 04 13:46:34 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). 코드 링크 올려드립니다. 감사합니다. 링크 https://drive.google.com/file/d/1b8PmvEY2uQqk3TCS01tPzKYRXbq7-tGY/view?usp=share_link