묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
생성자 직접 호출 vs 팩토리 메서드 패턴
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]해당 질문 자체가 질문 자체가 성립되지 않는 것일지 고민되어서 먼저 찾아봤지만 해당 질문에 대한 답변을 찾지 못하여서 질문을 남겨봅니다..애초에 질문거리가 되지 못하는 것이었다면, 제가 어느 부분에서 잘못 생각한 걸까요?🥲 public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } public OrderService orderService() { return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy()); } }위 AppConfig처럼 생성자를 직접 호출하여 객체를 생성하는 방식과 팩토리 메서드 패턴처럼 생성자를 간접적으로 호출하는 방식 중 어느 방식이 더 객체 지향적으로 좋은 방식일까요?
-
해결됨프론트엔드 마스터클래스
배포 관련 내용 추가될 예정이 있을까요?
안녕하세요, 좋은 강의 잘 보고 있습니다.혹시 CDN 등 배포 관련 섹션이나 내용이 추가될 예정이 있을지 궁금합니다.
-
해결됨오브젝트 - 설계 원칙편
4-2 값 객체 질문
안녕하세요. 좋은 강의 감사합니다.값 객체에 대한 내용을 듣고 궁금했던 점이 있었는데, 섹션 4 퀴즈를 풀면서 해소되는 동시에 새로운 질문이 생겼습니다.값 객체를 사용하는 메소드를 과도하게 호출하여 OOM(Out of Memory)이 발생할 것으로 예상되는 경우, 이를 어떻게 회피할 수 있는지 궁금합니다.아직 강의를 전부 듣지 않아서 이후에 나올 내용일 수도 있겠지만, 지금 드는 생각으로는 Map을 이용해 내부적으로 캐시를 구현하여 메모리 사용량을 줄이는 방법이 떠오르는데, 이 접근법이 맞을지 궁금합니다.
-
해결됨오브젝트 - 기초편
책임주도 설계 적용에 대한 간단한 질문 남겨드립니다.
안녕하세요! 영호님. 강의 잘 듣고 있습니다. 현실적으로 DB 스키마가 이미 정해져 있거나, 기존 데이터를 마이그레이션해야 해서 새롭게 설계하기 어려운 경우, 또는 DBA가 별도로 관리하는 환경에서는 책임주도 설계를 적용하기가 쉽지 않을 것 같습니다. 이런 상황에서도 객체지향적인 설계를 현실적으로 적용할 수 있는 방법이 있을까요?(DAO를 중간 계층으로 두면 어느 정도 해결될까요? 아니면 도메인 레이어와 퍼시스턴스 레이어는 분리된 영역이니 크게 상관없을까요? 반대로, 두 레이어가 지나치게 달라지면 오히려 유지보수가 더 어려워지지는 않을까 하는 걱정도 듭니다.)그리고, 책임주도 설계가 이론적으로는 유지보수에 강하다고 하지만, 실제로는 아직 구조가 다소 복잡하게 느껴져서 오히려 유지보수성을 해칠 수도 있지 않을까 합니다. 이런 복잡함은 설계 패턴에 익숙해지면 자연스럽게 해소될까요?감사합니다!
-
미해결김영한의 실전 자바 - 중급 2편
실전 자바 중급 - 2편 후 추천 강의
안녕하십니까 ?현재, 실전 자바 중급 2편을 듣고 있는 2년차 개발자입니다. 평소에 아무런 생각없이 사용하고 있던 자료 구조들에 대해 공부하게 되니까, 어떻게 사용해야하는 지와 왜 해당 자료구조가 시간복잡도 상 좋은 지에 대해 알 수 있어서, 새롭게 느끼고 있습니다. 혹시, 자바 관련해서 강의를 더 듣는 다면, 어떤 강의가 실무에 도움될지 궁금해서 여쭙습니다. 혹시나 더 추천하는 강의가 있으실까여?
-
미해결스프링 핵심 원리 - 기본편
Spring에서 SessionScope와 RequestScope는 함께 사용되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Spring에서 SessionScope와 RequestScope는 실제로 어떤 관계로 동작하나요?예를 들어, 사용자가 로그인되어 세션이 유지되는 동안에도, 각 요청(Request)마다 RequestScope 빈이 새로 생성되는 구조인가요?아니면 JWT 기반 인증처럼 세션과 관계없이 매 요청마다 인증 로직이 수행되는 방식인가요?또 실제 실무에서는 로그인한 사용자의 상태를 SessionScope로 유지하면서 RequestScope 빈을 함께 사용하는 경우가 많은지도 궁금합니다.
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
주니어 개발자가 더 나아가기 위한 조언을 부탁 드려도 될까요?
선배 개발자로서 알려주시는 강의 내용들이 정말 좋았는데요, 그와 더불어 앞으로 주니어 백엔드 개발자로서 어떤 역량을 조금 더 집중해서 키우면 좋을지 조언을 부탁드리고 싶습니다.또, 아직 이를 수도 있지만 이직을 준비할 때 도움이 될 만한 공부 방향이나 추천해주실 만한 책이 있다면 알려주시면 감사하겠습니다. 강의 중간중간 소개해주시는 책들이 많아서 최근에 또 추천해주실 책이 생기셨는지 궁금합니다.
-
해결됨오브젝트 - 기초편
객체지향 설계에서 메서드를 설계할 때 궁금한 점이 있습니다.
안녕하세요. 메서드를 설계할 때 궁금한 점이 있어서 질문드려요.예를들어 메서드를 설계할 때 (Long customerId, Long screeningId, Integer audienceCount) 파라미터에 이렇게 ID 식별자를 넣어줘야는지 혹은 객체를 넣어줘야하는지를 설계할 때는 어떤 점을 판단하는 것이 좋을까요?
-
해결됨C개발자를 위한 최소한의 C++
임시 객체 복사 생성자 질문드립니다
30강 19분에서 TestData result = testFunc( 10); 에서 10은 리터럴 상수인데, TestData 객체로 변환될 때 값이 아닌 상수형 참조로 처리되는 건가요? 상수형 참조로 처리되기 때문에 컴파일러가 내부적으로 TestData(10) 라는 임시 객체를 생성해서 그 객체를 testFunc() 의 인자로 넘기는 과정이 맞는 건지 헷갈립니다..!
-
해결됨오브젝트 - 기초편
도메인 모델을 잘 정의하기 위해서 어떻게 해야할까요?
안녕하세요. 좋은 강의를 통해 값진 지식을 얻어갔습니다. 감사합니다.다름이 아니라 완강 이후 "좋은 도메인 모델은 어떻게 만드는 것인가?" 라는 의문이 들었습니다.강의를 통해 도메인 모델과 변경의 관점에서 설계를 평가하는 방법과 책임을 부여하는 패턴들을 통해 개발자의 변경에 유연한 코드를 만드는 실마리는 얻었지만 한편으로는 이러한 부분들은 문맥을 제공하는 도메인 모델이 잘 정의되어있을 때, 빛이 발하는 것이 아닌가 생각이 들었습니다.사실 현업에서 도메인 모델을 따로 정의하고 의식하면서 개발을 해본 경험이 없기 때문에 어떻게 하는 것이 좋을지 잘 모르겠습니다. 따라서 아래의 세부 의문점에 대해 답변해주실 수 있으면 감사하겠습니다.도메인 모델은 개발 프로세스 중 어느 시점에 정의하는 것이 좋은지?도메인 모델을 정의하는 것은 개발자가 주도적으로 이끄는 것인지 아니면 기획자와 같은 다른 팀원들과 함께 만들어 나가는 것인지?만들어진 도메인 모델을 토대로 설계 및 개발을 진행하다 도메인 모델을 변경해야만 하는 순간이 있는지?좋은 도메인 모델을 만들었는지 평가해볼만한 방법들이 있는지?
-
미해결김영한의 실전 자바 - 고급 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++에 대응될 만한 기능이 있을까요?