묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨오브젝트 - 기초편
도메인 모델을 잘 정의하기 위해서 어떻게 해야할까요?
안녕하세요. 좋은 강의를 통해 값진 지식을 얻어갔습니다. 감사합니다.다름이 아니라 완강 이후 "좋은 도메인 모델은 어떻게 만드는 것인가?" 라는 의문이 들었습니다.강의를 통해 도메인 모델과 변경의 관점에서 설계를 평가하는 방법과 책임을 부여하는 패턴들을 통해 개발자의 변경에 유연한 코드를 만드는 실마리는 얻었지만 한편으로는 이러한 부분들은 문맥을 제공하는 도메인 모델이 잘 정의되어있을 때, 빛이 발하는 것이 아닌가 생각이 들었습니다.사실 현업에서 도메인 모델을 따로 정의하고 의식하면서 개발을 해본 경험이 없기 때문에 어떻게 하는 것이 좋을지 잘 모르겠습니다. 따라서 아래의 세부 의문점에 대해 답변해주실 수 있으면 감사하겠습니다.도메인 모델은 개발 프로세스 중 어느 시점에 정의하는 것이 좋은지?도메인 모델을 정의하는 것은 개발자가 주도적으로 이끄는 것인지 아니면 기획자와 같은 다른 팀원들과 함께 만들어 나가는 것인지?만들어진 도메인 모델을 토대로 설계 및 개발을 진행하다 도메인 모델을 변경해야만 하는 순간이 있는지?좋은 도메인 모델을 만들었는지 평가해볼만한 방법들이 있는지?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메모리 가시성 문제가 발생하는 이유
멀티스레드 환경에서 메모리 가시성 문제가 발생하는 이유를, CPU 캐시와 메인 메모리 간의 데이터 갱신 시점 차이 때문이라고 이해했습니다.그렇다면 이 현상은 하드웨어 수준의 문제로 봐야 할까요, 아니면 JVM의 메모리 관리 방식이 영향을 주는 걸까요?또한, 이런 문제가 자바가 컴파일 언어이기 때문에 발생하는지도 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
3강 18. null 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 3강 18. null 강의를 보는 중 궁금한 점이 있어 질문 드립니다.해당 강의 GC 섹션에서 말씀하신 참조하지 않는 인스턴스라는 부분이null -> x001 -> null이렇게 인스턴스에 값을 할당하는 과정에서 다시 null을 할당하며 x001 이라는 참조 값이 사라져서 x001 값이 GC가 된다는 게 맞을까요? 아니면 해당 인스턴스 자체가 GC가 되는 걸까요? 강의 잘 보고있습니다. 감사합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
데몬스레드가 어떨 때 사용이 되는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]데몬스레드의 특징은 이해했는데, 어떨 때 사용이 되는 건지 궁금합니다. 그리고 현업에서도 보통 데몬 스레드를 사용할 일이 있나요?
-
미해결TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
undo 구현
안녕하세요 좋은 강의 잘 듣고 있습니다 undo 기능을 따라 구현하던 중 이슈가 있어 질문 드립니다pen mode로 그린 뒤 eraser mode에서 일부 지움 -> undo 실행-> 화면이 모두 지워집니다 원인은 eraser mode에서 mousedown 시 ctx.globalCompositeOperation = 'destination-out' 로 바뀐 상태가 유지된 채 restore() 내부에서 drawImage()가 실행되기 때문인 것 같은데요, 제로초님이라면 eraser mode 종료 시점 (mouseup)에서 source-over로 되돌리는 방식이랑restore에서 source-over로 바꾼 뒤 drawImage()하는 것 또는 제 3의 장소??어떤 곳에 작업하실지 여쭙고 싶습니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Future.cancel() 취소를 사용하는 예가 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요! 강의 잘 듣고 있는와중에 Future 관련 내용을 보다가 궁금한 점이 생겨서 질문 남깁니다. cancel() 기능이 필요한 실제 사례가 어떤 것이 있을까요?Future.cancel() 을 통해 실행을 취소시킬 수도 있다는 것은 이해가 됐습니다. 그런데 cancel() 기능이 필요한 실제 사례가 뭐가 있을지가 연상이 잘 안됩니다.실제로 작업을 수행하다가 취소 처리를 해야하는 경우가 일단 뭐가 있을지 궁금합니다.그냥 생각이 드는 건 특정 시간 제한이 지나서인데, 이건 get에 시간제한을 둬서 TimeoutException 하는 걸로 충분할 것 같아서요. cancel(false) 로 취소는 하되 과정은 수행하도록 내버려두는 케이스는 어떤 경우를 위해 있는건가요?아예 interrupt로 취소를 시키는 경우는 막상 예시가 떠오르진 않지만 논리적으로 이해가 갑니다. 어떤 작업을 수행하다가 특정 케이스에서는 필요가 없어져서 취소시킬 수 있겠다 싶습니다. 그런데 cancel(false) 로 취소는 하되 그 과정을 수행하도록 내버려둘 필요가 있나 싶어서요.어차피 cancel을 하면 true/false 어떤걸 넘겨줘도 get 하면 exception이 발생하면서 결과값을 못 얻는데 수행을 하게 내버려 둘 필요가 없을 것 같은데 어떤 경우를 위해 이렇게 구현이 되어 있는 건지 궁금합니다.
-
해결됨프론트엔드 마스터클래스
학습자료는 따로 공유가 안되는건가요?
그 전까지는 크게 불편함이 없었는데 이번 장에 위에 설명이 건너뛰기가 돼서 놓치게 되네요. 다양한 학습자료 제공에 miro형식 파일이라고 강의 소개에 적혀있긴한데, 따로 첨부파일이나 링크는 등록이 안돼있는것 같아서요.
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
노드의 내장 시그널 이용 관련 문의
안녕하세요 강사님꾸준하게 피드백 주셔서 감사드립니다.시간이 부족하다는 핑계로 수업 진도가 좀 많이 늦어졌네요 ㅠ 51강의 1:45초 부근에 대한 질문입니다.player 씬에서 BoostTimer의 내장 시그널(timeout())을 이용하여 시그널이 연결되어 있었는데, 이것을 삭제하고 수동으로 연결을 해주셨습니다. 그런데 보다보니 '굳이?' 라는 생각이 듭니다.내장 시그널을 이용하면 코드를 직접 작성할 필요가 없고, 시그널이 연결된 함수를 찾아가기에도 편하고 여러모로 편한것 같은데, 직접 작성하시는 이유가 궁금합니다~!
-
해결됨오브젝트 - 기초편
getter 사용에 대한 질문입니다.
안녕하세요. 객체지향 설계에서, 객체의 상태를 getter로 직접 꺼내서 사용하기보다 객체에 메시지를 보내 처리하라는 원칙을 따르려고 합니다.그런데 만약 특정 로직이 코드 전체에서 단 한 번만 사용되는 경우에도, 이 원칙을 지키기 위해 객체 내부에 새로운 메서드를 구현하는 것이 올바른 방법일까요? 아니면 이런 예외적인 경우에는 실용성을 고려해 getter를 사용하는 것이 더 나을까요?
-
미해결얄코의 떠먹여주는 객체지향 디자인 패턴
3-layer 에서의 파사드 패턴적용
안녕하세요. 강의 잘 들었습니다! 저는 SpringBoot를 주력으로 백엔드 개발을 하고있는데요. 주로 3-layer로 이루어진 계층형 아키텍처를 사용하고 있습니다. 이때, Controller에서 Service를 호출한 후 서비스 계층에서 비즈니스 로직을 처리한 후 결과만을 Controller에 리턴해주게 될텐데요! 이런 경우에 Controller에서 하나의 Service 클래스에 비즈니스 로직의 실행을 위임하는 것을 파사드 패턴이라고 볼 수 있을까요?
-
해결됨오브젝트 - 설계 원칙편
7-3 Reader의 소유권 이동에 관해
pdf의 17~18 페이지, 강의의 4:54Reader를 reader 패키지에서 game 패키지로 이동시켜 reader 패키지가 game 패키지를 의존하게 만들 수 있다고 하셨는데 패키지란게 Java의 기능인가요? 그렇다면 C++에 대응될 만한 기능이 있을까요?
-
미해결김영한의 실전 자바 - 기본편
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의를 듣다가 궁금한 부분이 있어 질문 드립니다. this 와 super의 호출 순서는 왜 중요한가요?개념으로 이해하기에는 부모에 해당하는 super가 있어야 자식에 해당하는 this 를 호출할 수 있다고 생각하고 있습니다. top -down으로 이해하고 있는데 이것외에도 중요한 이유가 있을까요?
-
해결됨오브젝트 - 기초편
6-1. 변경과 설계 마지막 추상화 관련 질문 입니다.
안녕하세요.이번에 설계의 관점에서의 배움을 위해 강의를 듣고 있습니다.실 생활(영화) 의 예시로 알려주셔서 이해하고, 생각해보는데 도움이 되고 있습니다. 6-1 강의 마지막에 추상화를 변경이 일어날 것을 미리 추측하여 만들지 말고 간단하게 하는 것이 좀더 나은것 같다고 이야기 해주셨는데요.이부분에 대해서 현 영화의 예시로 본다면, 할인 정책이 만약 정액재 (금액 할인) 정책만 존재한다면정책 인터페이스를 만들 필요 없이 금액 정책 클래스만 만들어 활용하는게 더 좋다는 의미로 이해했습니다. 이렇게 말씀해주신 이유를 생각해보았는데, 추상화를 활용해 message 만 일치한다면 다양한 방식의 정책을 동적으로 활용할 수 있다는 장점이 있습니다. 다만 코드의 동작 분석에 있어 실제 runtime 단계에서 어떤 구현체가 사용되는지 확인 해야 하는 어려움이 있기 때문에 위와 같이 말씀 에 동의할 수 있는거 같습니다. 만약, 변경이 일어날 것을 추측이 아닌 실제로 일어나게 된다면 최소 몇개의 변경이 있어야 ( Ex ) 정책이 3개 ) 추상화를 하는게 좋다는 강사님만의 기준이 있을까요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
자원 정리시 에러가 발생 했을 때 메모리 상황 및 실무에서 로그 확인 방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 안녕하세요 강의 잘 듣고 있습니다. 자원정리에 대한 강의를 듣던 와중에 OS단의 메모리 상황과 실무에서 처리 방법이 궁금하여 질문드립니다. [질문 내용]강의 내용 자원 정리를 하다가 나는 에러 (CloseException) 등에 대해선 try-catch로 잡은 뒤, log만 남긴 뒤 무시하고 있음 궁금한 점 자원 정리를 하다가 에러가 나면 자원이 정리가 안된 채로 메모리에 남아있을 것 같습니다. 이를 추후 로그를 확인하고 일괄 수동 정리 처리를 하는지, 아니면 보통 자원마다 동작 타임 같은 게 설정되어 있어서 자동으로 정리되기 때문에 신경쓰지 않고 넘어가는지 궁금합니다. 만약 첫번째 질문에서 추후 로그를 확인하고 일괄 수동 정리 처리를 하는게 맞다면, 자원정리 도중 뜬 에러 관련한 것만 로그에서 추출해서 확인한다던지 어떤 방식으로 로그에서 필요한 내용만을 효율적으로 확인해서 처리하는지 궁금합니다. (참고로 이전에 김영한님 강의에서 Logger를 AOP를 이용해 남겨 양식을 통일화 시키고 레벨을 통해 효율적으로 확인하는 방법은 확인하였습니다.)
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
구글 AD 미디에이션
미디에이션을 구현하는 방법이나 방법이 잘 설명이 되어있는 주소를 알려주세요
-
미해결TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
[프론트엔드 문서화 관련 질문]
안녕하세요, 제로초님.프론트엔드 문서화 관련하여 질문을 드릴 게 있습니다.저희 회사에서 단기간에 규모가 큰 프로젝트를 진행하다보니 AI의 도움을 빌려 만들기는 만들었는데 문서화가 제대로 되지 않은 상태입니다.최근 한 명의 백엔드 개발자가 프론트엔드도 함께 개발을 하게 되어 문서화의 필요성을 느끼고 있는데, 문서화에 대한 경험이 없어 제로초님께 여쭤봅니다.현재 폴더 구조는 FSD를 채택하여 개발 중입니다.구상중인 것은 Slice 단마다 문서를 만드려고 하는데,해당 Slice에 포함된 파일의 사용 방식(API input값, output 값 등)에 대해 작성하고, store(zustand)에 저장된 값을 적고, ui에서 필요한 정보값들에 대해서도 적어보려고 합니다.이렇게 모든 폴더에 정리하게 된다면 못해도 50개가 넘는 문서가 만들어지게 될텐데, 괜찮은 방법인지 확신하지 못하겠네요.(현재 회사에 있는 개발자분들은 딱히 관심이 없어보이십니다ㅠ)제로초님이라면 해당 문서에 어떤 내용을 담으실지 궁금합니다.그리고 프로젝트 전체를 소개하는 문서에는 Tech Stack, 프로젝트 구조 이외에 어떤 항목을 넣는 것이 좋을지도 궁금합니다.이 수업에서 배운 디자인패턴에 대해서도 작성하는 것이 좋을까요?
-
미해결김영한의 실전 자바 - 기본편
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기본형과 참조형 - 참조형과 메서드 호출 - 활용 강의 자료 보고 생긴 궁금증입니다!자바에는 객체 생성 시 초기화를 담당하는 "생성자(Constructor)"가 있는데, createStudent()와 같은 팩토리 메서드 패턴과 일반 생성자를 사용하는 것의 장단점이나, 어떤 상황에 어떤 방법을 사용하는 것이 더 적절한지 궁금합니다!
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized 와 인스턴스의 lock
[질문 내용]이 부분을 보면 synchronized 메서드를 호출하려면 인스턴스의 lock이 필요하다고 되어잇는데, 헷갈리는 부분이 있습니다인스턴스는 메서드 단위가 아닌, 클래스 단위로 존재하는거라고 알고 있는데, 그러면 지금 synchronized 된 메서드 하나를 호출하면 해당 클래스 전체에 Lock 이 발생한다(다른 스레드는 접근하지 못한다)는 개념으로 이해가 되는데 이렇게 동작하는게 맞는건지 궁금합니다
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
data class와 자바의 Lombok을 이용한 DTO 클래스 차이 질문
안녕하세요. 좋은 강의를 제공해주셔서 감사합니다. 현재 코틀린과 자바를 함께 사용하는 프로젝트를 준비 중입니다.그 과정에서 DTO를 구현할 때, 코틀린에서는 data class라는 매우 편리한 기능이 있다는 것을 알게 되었고, 이와 관련해서 질문이 있습니다.궁금한 점은,실무(특히 스프링 기반 개발)에서는 DTO를 작성할 때 자바의 Lombok을 주로 사용하는지, 아니면 코틀린의 data class를 더 많이 사용하는지입니다.또한, 두 방식의 차이점과 선택 기준에 대해서도 알고 싶습니다.감사합니다!
-
해결됨김영한의 실전 자바 - 중급 2편
실프로젝트에서 Java25버전 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서는 Java 21버전을 사용하고, 현재 최신 LTS 버전은 25입니다.실무에서는 21버전을 계속 사용하다가 25버전이 안정화되면 25버전을 사용하나요?아니면 22, 23, 24 바로 업데이트 하는 경우가 많을까요?