안녕하세요 백기선님, 강의 들으면서 많이 배우고 있습니다. 싱글톤 (Singleton) 패턴 구현 방법 3 - 2. 만약에 생성자에서 checked 예외를 던진다면 이 코드를 어떻게 변경해야 할까요? 위 퀴즈에 대해 질문이 하나 있습니다. static 필드의 초기화 혹은 static block에서 exception이 발생하면 ExceptionInInitializerError가 발생하는 것으로 알고 있습니다. 인터넷에서 많은 사람들이 위 퀴즈에 대해 '생성자에서, 혹은 static block에서 try/catch하여 checked exception을 RuntimeException으로 변환해준다' 라고 설명을 하는데, static eager initialization를 사용하는 구조에서는 unckecked, checked 등 exception의 종류와 관계 없이 모두 ExceptionInInitializerError 이 발생하지 않나요? 그리고 static eager initialization 과정에서 exception이 발생하여 싱글턴 인스턴스가 null이 되어버리는 경우, Spring에서의 BeanCreationException과 같이 서버가 뜨면 안되는 상황이 아닐까 생각이 됩니다. 제가 잘못 파악하고 있거나 놓친 부분이 있다면 가르침 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 MAC OS X Sonoma Beta 상에서 실습 진행중이며 기본 언어는 영어로 설정되어있습니다. 기본 언어가 영어로 설정되어있어 그런지 default가 messages_en.properties로 잡히는 것 같은데요 Locale 파라미터를 설정하려고 보니 Locale.KOREA Locale.KOREAN 2가지가 존재하고 두가지를 모두 입력해봐도 한국어는 테스트가 성공하지 않네요 그렇다면 1) 현재 기본 언어가 영어이기 때문에 TEST 코드에서도 null로 가는 경우 accepted-language가 영어로 가기 때문에 default가 무시되고 messages_en으로 처리됨 2) LOCALE을 KOREAN으로 하더라도 messages_en.properties처럼 ko properties를 작성하지 않았기 때문에 결국에는 messages.properties는 기본 언어가 한국어가 아닌 경우 꼭 _ko를 뒤에 붙여주지 않는 이상 기본값으로 동작하지 않는것으로 이해했는데 이부분이 맞을까요?
발생하는 장점을 다음과 같이 설명해주셨는데요. 1. new 한 번으로 모든 곳에서 재사용 가능 2. 의존성 주입으로 몽땅 한꺼번에 변경 가능 다음과 같은 예시를 들어주셨는데, ProductController의 constructor에서 this.cashService = new CashService() 와 같은 사용을 하면 constructor에서 변경점을 가져가고 해당 클래스의 모든 함수에서는 this.cashService를 통해 사용할 수 있고요. class ProductController { cashService constructor() { this.cashService = new CashService() } } CashService 대신 CashService2로 변경하고 싶을때는 다음처럼 변경하면 2번 장점도 동일해지구요. class ProductController { cashService constructor() { //this.cashService = new CashService() this.cashService = new CashService2() } } 의존성 주입을 통해 얻을 수 있는 이점은 위와 같은 재사용이나 변경에 대한 장점보다도 말 그래도 의존성을 없애는 것에 있다고 보는데요. 의존성 주입을 통해 ProductController에서 구현체인 CashService에 대한 의존성을 없애고, 외부에서 CashService에 대한 의존성을 가져갈 수 있게 되니까요. CashService에 대한 코드의 변경으로 인한 ProductController의 코드 변경이 발생하지 않도록 하는 것이 의존성 주입의 핵심이라고 보는데, tight-coupling을 왜 loose-coupling으로 변경해주어야 하는지에 대한 설명은 없었던 거 같아서요. 이 부분에 대해 어떻게 생각하시는지 궁금합니다!
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
선생님 제 Dio버전이 달라서 그런건지 플러터 문제인지 } on DioError catch (e) { 코드에서 DioError를 사용할 수 없다는 메세지가 뜹니다.// 'DioError' is deprecated and shouldn't be used. Use DioException instead. This will be removed in 6.0.0. Try replacing the use of the deprecated member with the replacement. 라는 메세지가 뜨며 DioException을 사용하라는 것 같은데 강의버전과 동일한 dio버전으로 내린뒤에 펍겟해도 똑같이 DioError와 DioErrorType에 선이 그어져있어 // ignore : deprecated_member_use } on DioError catch (e) { 위의 주석코드를 입력하게 되면 DioError 코드 에러가 사라집니다. 이렇게 사용해도 상관이 없는지 DioException을 사용해야 하는지 궁금합니다.
[질문 내용] 여기에 질문 내용을 남겨주세요. 1. Tasks - other에 compileQuerydsl이 없어서 compileJava를 눌러서 했는데 괜찮은지 ?? 2.강사님과 다르게 build /generated 이렇게 생성되어도 문제가 없는지? 저런식으로 Q파일들이 생성되었는데 import가 안되고 사용이 안되는 이유 알려주시면 감사하겠습니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
책 이름 등록하고 사용자가 대여하는 기능을 하고있는데 책 대출 기능에서 사용자이름과 책이름을 입력하고 저장하게되면 내부 서버오류 500 뜨면서 java.lang.NullPointerException: null 이라고 나옵니다. 구글링을 해봤는데 해결이 안되서 질문드립니다.
Singleton Pattern 기초 강의 내용에서 질문드립니다. Bill Pugh Solution (Java) 부분에서 Holder 클래스를 보시면 private static final DBHandler INSTANCE = new DBHandler(); 라고 되어있는데, 이 경우 getInstance() 함수를 통해 Holder.INSTANCE 가 호출이 되어도 fianl 로 선언되어있어 한번만 선언되기 때문에 signleton 으로 사용 가능하다는 말씀이 맞는지 궁금합니다.
안녕하세요 질문드립니다. 올려주신 ios키트 에서 강의에서 사용하신 하단바는 아니지만 다른 하단바를 가져와서 연습중입니다. 하단바를 제작할때 그룹을 짓거나 하지않고 하단바의 아이콘과 텍스트를 각각 묶어서 프레임을 지어놓으시더라고요. 이유가 무엇인가요? 그룹지어서 놓는게 더 편할꺼같은데 디자이너분들이 프레임으로 묶어놓는 이유가 있나요? 그리고 저 분홍색 부분이 배경 컬러를 넣으신게 아니라 하단바 자체를 그리드위에 만들어 놓았던데 굳이 그렇게 할 이유가 있는건가요? 어떤상황에는 프레임으로 묶고, 어떤상황에는 그룹으로 묶어서 정리하는지 정확히 잘모르겠습니다.
1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 질문 잘하기 메뉴얼을 읽어보셨나요? (예) ================================================================== 안녕하세요. 선생님 덕분에 많은 것을 배우고 있는 취준생입니다. 현재 상황 회원 정보에 대한 공통 DTO 생성 (회원 엔티티에 노출 가능한 모든 필드를 담았습니다.) 목표 공통 DTO에 validation 적용 문제 상황 공통 DTO를 사용하니 컨트롤러, 서비스 로직에 따라 조건이 달라 Bean validation 적용에 어려움을 겪고 있습니다. ex) 서비스 메소드 마다 member_id가 필요한 경우가 있고, 없는 경우가 있습니다. 생각해본 해결 방법 Bean validation(어노테이션)을 통해 최소한에 검증만 한 후 개별 로직안에서 추가 validation을 진행한다. 가장 간단하나 로직이 지저분해질 것 같습니다. 공통 DTO를 validation을 따라 분리한다. DTO 분리 기준이 validation이라는 점이 타당하지 않은 것 같습니다. DTO 생성을 별도의 팩토리로 분리하여 팩토리 내에서 validation을 진행한다. DTO 생성과 검증에 대한 로직을 숨길 수 있는 장점이 있지만 DTO 수가 늘어날수록 팩토리 클래스도 많아져서 복잡도가 올라 갈 것 같습니다. DTO 내에 별도의 검증 메소드를 만들어 생성될 때 validation을 진행한다. Bean validation group을 사용한다. 질문 JPA 강의에서 공통 DTO를 사용 후 예외 케이스만 분리하신다는 답변을 봤습니다. 공통 DTO에 경우 validation을 주로 어떻게 해결하시는지 궁금합니다!! 공통 DTO에 회원 엔티티에 대부분 필드를 담았는데, 위에 말씀하신 공통 DTO를 잘못 이해하여 범위를 너무 크게 잡아 생긴 문제인지 혹은 Bean validation으로 풀어내려는 강박인지(?) 궁금합니다!! 읽어주셔서 감사합니다!!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 공부하다가 궁금한게 있어서요 stl을 잘활용해야한다고 하셨는데 초심자지만 감히 호기심 차원에서 질문을해봅니다..! ( 따지는건 절대아닙니다! 그냥 학습차원에서 궁금해서요! ) 제가 주워 듣기론 EA STL이 좀더 게임개발에 맞춰 기존 stl을뜯어고친 STL이라서 성능향상에 좋다는 소리를 들었고 visualstudio 에서 제공하는 stl같은 경우는 정확히 뭐가 안좋다는 건진 모르겠지만 좋지는 않다고 하더라구요 강사님 생각은 어떤지 궁금해서 물어봐요..!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 수업에 다대다 단방향만나와서 양방향하는 방법을 알고 싶습니다. 쉽게 말해서 한 학생이 여러과목을 들을 수 있는데 과목의 입장에서는 다양한 학생들이 있으니 그렇게 양방향으로 보고 싶습니다.
안녕하세요! 태블로 강의 보고 공부하고 있는 직장인 입니다. 태블로에 대해서 잘 몰랐는데 강의 보면서 이것저것 해보면서 많은 도움이 되고 있습니다. 다름이 아니라 라인 차트를 그리는데 질문이 있어서 글남깁니다. 데이터 구조 가전 제품 판매 데이터 가전 제품 판매 일자 가전 제품 판매 데이터( PK, 제품명, 가격 등...) 의류 판매 데이터 의류 판매 일자 의류 판매 데이터 (PK, 제품명, 가격 등...) 이렇게 2가지 테이블이 있는데 [각 제품 별 판매량 증가 추이] 그래프를 이중축으로 해서 그려고 합니다. 열 : 고정 시간 (22년 부터 현재까지) 행 : 가전 제품 판매량, 의류 판매량 [열] 칸에 가전제품 판매 일자 혹은 의류 판매 일자를 넣으면 각 일자 별로 가전제품 판매량 추이, 의류 판매량 추이 그래프가 그려질 줄 알았는데 열에 해당하는 그래프만 그려지고 나머지 데이터는 시간대별로 그려지지 않습니다. 제가 데이터 상 문제는 없어보이는데 아직 숙련도가 부족한건지 아니면 태블로에서 해당 기능을 제공안하는지 궁금합니다. 감사합니다.
안녕하세요 교수님! ModelCheckpoint에서 ModelCheckpoint('best_model.h5', save_weights_only=True, monitor='val_loss', save_best_only=True, mode='min') save_weights_only = True로 했을 때 아래와 같은 load_model 에러가 나더라구요.. 그래서 구글링을 해봤는데 저렇게 설정할 경우에 모델 아키텍처가 저장이 안되어서 load_model을 할 수 없다고 json 파일로 모델을 따로 저장하고 나중에 json 모델을 다시 불러오는 방법을 사용하라고 나왔습니다. 강의 중에도 언급해주셨지만 save_weights_only = True로 했을 때의 이점이 있을까요..? False로 했을 때 교수님께서 모델을 불러올 때 충돌..? 비슷한 것이 난다고 하셨는데 좀 더 세부적인 내용을 알고 싶습니다..! 만약에 True로 설정했다면 매번 json으로 모델을 저장하는 과정을 거쳐야 하는 것인지 궁금합니다! model.save () 함수도 있던데 이거는 modelcheckpoint와 달리 학습 중에 저장은 안되는 것 같아서요.. 항상 감사합니다 교수님!!
@ComponentScan 으로 bean을 찾아서 등록하는 과정에 대해서는 이해를 했습니다. 근데 AppConfig, AutoAppConfig가 모두 없는 상태에서도 bean이 자동 등록되는건 @SpringBootApplication 어노테이션을 사용하는 class가 존재하기 때문이라고 봐도 되는건가요? (@ComponentScan을 포함하므로) 위 예제에서 AutoAppConfig를 보여주신 예는 컴포넌트 스캔의 예를 보여주신거고 실제 구현에서 자동 스캔을 위해 AutoAppConfig를 따로 두지는 않아도 되는걸까요?