안녕하세요 강사님 강의가 거의 대부분 이해가 될 듯 말듯합니다. 강의코드를 다 잘 아시니까, 이게 이런거고 저게저런거다라고 쭈욱 빠르게 얘기해주시는데, 이해시키기보단 강사님이 아시는걸 설명하시는 느낌이에요. 근데, 반쯤 이해되는 상태이고, 코드 따라 안써봐도 되겠죠? 커서로 짜주는 코드를 해석하는 능력을 기르는게 중요하다고 하셨으니까요..!! 일단 정주행해도 될지, 아니면 제가 방향을 잘못잡고있는지 궁금해서 질문남겼습니다!! 열의있게 강의해주셔서 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서는 키워드 synchronized 를 메서드 앞부분에 붙여 동기화를 구현하는데, 롬복의 @Synchronized 다른 점이 무엇인지 궁금합니다. 그리고 실무에서는 둘 중 어느 방법을 사용하는지도 궁금합니다!
works together에서 위 아래 padding 을 다 주셨는데, top은 이해가 되는데 bottom 을 지정하는 이유가 따로 있나요? .banner { padding-top: 216px; padding-bottom: 216px; background-color: #386e38; text-align: center; color: white; 만약 위 코드에서 height: 650px; 처럼 세로 길이가 고정되어 있는 배너라면 padding-bottom 은 필요 없을까요?
단순 호기심 질문이긴 한데요. 클래스명 보면 banner__title 처럼 언더스코어를 두개씩 지정하시던데, 단순히 baner_title 처럼 언더스코어 하나만 사용했을때와 다른 어떤 이유나 숨겨진 미세팁 같은게 있을까요? 아니면 딱히 이유 없이 경력이 쌓이면서 습관화 돼서 사용하시는 관례인건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 복습중 실행오류로 발견했습니다 패키지가 oop 대신 oop1에 들어가야 할 것 같아요. 강의에도 oop1으로 되어있네요. p.12에 있어요 ++ 조금 명확히 하자면 이 코드를 실행하는 main 클래스가 oop1에 있어서 저 클래스를 참조 못하는 것 같아요. 이 자료는 p.13 과 p.14에 걸쳐 있어요
Github Repository에서 Master branch를 내려받고 강의대로 mvn clean test-compile 을 실행하면 java: cannot find symbol 에러가 발생하네요. m1 맥 환경에서 아래와 같은 오류가 발생합니다. cannot find symbol symbol: class Category_ location: package com.vladmihalcea.hpjp.hibernate.query.recursive.category.model
강의 수강 중 궁금하여 실험한 내용 공유합니다. 2번 특정 객체의 인스턴스 참조에 관련한 내용입니다. 강의자료에서는 () -> person.introduce 가 person::introduce 와 동일한 것처럼 설명된 것 같습니다. "그럼 person 에 대한 캡처가 일어날까?" 하는 궁금증이 들었고, 다음과 같은 코드를 작성했습니다. Person person = new Person("Kim"); Supplier<String> instanceMethod = () -> person.introduce(); person = new Person("Lee"); System.out.println(instanceMethod1.get()); 컴파일러가 person 이 사실상 final이 아니라면서 컴파일해주지 않더군요. 다음으로는 람다 대신 메소드 참조로 바꾸어보았습니다. Person person = new Person("Kim"); Supplier<String> instanceMethod = person::introduce; person = new Person("Lee"); System.out.println(instanceMethod.get()); 이는 컴파일에 성공하고, "I am Kim"이 출력됩니다. Person 클래스에 setName 을 추가하고 메소드 참조 이후에 호출해보았습니다. Person person = new Person("Kim"); Supplier<String> instanceMethod = person::introduce; person.setName("Park"); person = new Person("Lee"); System.out.println(instanceMethod.get()); "I am Park"이 출력됩니다. 요약하면 다음과 같습니다. () -> person.introduce 에서는 person 이 사실상 final이 되어야만 한다. person::introduce 는 사실상 final이 아니어도 되며, 해당 메소드 참조는 정의 시 객체 참조를 유지한다.
synchronized, ReentrantLock, Atomic 모두 상호배제(동기화)를 구현하지만, 락을 "획득하고 해제하는 과정" 자체도 동시 접근이 발생할 수 있는 또 다른 임계영역처럼 보입니다. → 그렇다면 이 락 자체 또한 어떻게 동기화하는지 궁금합니다. 핵심적으로, synchronized JVM이 모니터 락을 통해 상호배제를 구현하는데 내부적으로 CAS 연산 + OS의 스레드 대기 관련 시스템 콜 + JVM 내부 스레드 대기 큐 을 활용 상호배제를 구현한다. 즉, 락 획득과 해제 과정의 동기화는 JVM 수준에서 구현 한 것이다. OS는 단지 스레드를 잠재우고 깨우는 역할만 담당 → 이 이해가 맞는지? ReentrantLock 자바에서 명시적으로 CAS 연산 + OS의 스레드 대기 관련 시스템 콜 + 스레드 대기 큐 을 활용하여 상호배제를 구현한다. 즉, 락 획득과 해제 과정의 동기화는 자바 코드 수준에서 직접 구현 한 것이다. OS는 단지 스레드를 잠재우고 깨우는 역할만 담당 → 이 이해가 맞는지? Atomic 자바에서 명시적으로 CAS 연산 활용하여 상호배제를 구현한다. 즉, 락이 없고, 시스템콜도 없다. CAS 한 줄이 동기화의 전부 → 이 이해가 맞는지?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 오라클 jdk21 버전이 없어서 이클립스 21 하려 했는데 둘 다 없습니다. 찾아보니, 25년 초쯤에 오라클 24버전이 나와서 없어진듯 한데.,. 그 버전으로 해도 무방한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. byte는 -128~127이고 int는 0~255 범위라 음수 부분이 전혀 겹치지 않는데, read()에서 어떤 방식으로 byte를 int로 변환하는 건지 대략적인 기준이 궁금합니다. 아스키 코드의 0~126까지는 그대로 int로 변환이 되고 그 외 byte의 음수가 그대로 int 나머지 범위(127~255)까지 배정되는 방식일까요? +)아스키 코드(0~126)에 포함되지 않는 byte -128~-1까지의 대략적인 의미가 궁금합니다. 얘네는 영문 외 외국어나 추가 특수 문자들 같은 걸까요?
도커 컨테이너를 사용하여서 실행 시키는걸로 진행하셨는데 저는 도커를 데스크탑이 아니라 olima로 실행시키고 있어서 환경변수 에러가 나오더라구요 export로 변수 바꿔줘도 안돼서 데스크탑으로 실행해 보니 되기는 하는데, olima로 실행 할 수 있도록 하는 방법이 있을까요? 그리고 도커 컨테이너를 사용 안하고 flyway만 따로 설정하는건 어떻게 하는게 좋을까요? dev.monosoul.jooq-docker 이걸로는 도커가 무조건 설정되어있어야 하는거 같은데, nu.studer.jooq + flyway 조합으로 가는게 좋을까요? 1.olima로 인텔리j에서 dev.monosoul.jooq-docker 설정에 맞게 실행 시키는법 2.도커 없이 flyway 사용할때에는 nu.studer.jooq + flyway 이 조합으로 하는게 권장되는 방식인지?
학습중 궁금한 것은 언제든 문의 하세요. 질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다. 추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다. Pub-Sub 모델을 이용한 실시간 알림 part2에 질문이 있습니다 ! package com.example.messagequeue.step2.step2; public class NotificationMessage { private final String message; public NotificationMessage() { message = ""; } public NotificationMessage(String message) { this.message = message; } public String getMessage(){ return message; } } 짊여기에서 NotificationMessage DTO를 만들어주셧는데, 뭐 때문에 만드신걸까요 ? 직렬화, 역직렬화와 관련이 있는거 같은데, 잘 이해가 안되네요 ㅎㅎ 답변 주시면 감사드리겠습니다 !
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 1. 예 예 예 안녕하세요. 강의 잘 듣고 있습니다! 강의 3분 44초 전후로 ExecutorService를 close() 함수로 닫으셨는데 es.close() 부분에서 오류가 발생합니다(스크린샷 참고). 찾아보니 Java 9 이상에서 ExecutorService 구현체가 AutoCloseable 을 구현한 경우에만 close()를 사용 가능 하다고 하는데 현재 JDK 17 버전을 쓰고 있는데도 close() 함수를 찾지 못하고 있습니다. (다만 shudown() 함수를 사용하니 정상적으로 컴파일이 되고 닫히고 있습니다) close() 대신 shutdown()을 사용하여도 성능상 차이가 없는지 궁금합니다. 글이 길어져서 죄송합니다. 답변 부탁드립니다. 감사합니다.