묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨C개발자를 위한 최소한의 C++
이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.
안녕하세요.이동시멘틱 강의를 보다가 의문이 있어 문의드립니다.강의에 나오는 CMyString 클래스는 내부 포인터 변수 멤버를 가지고 있는데, CMyString a,b,c;에서 a = b+c;를 실행할 때CMyString operator+() 함수의 return값의 사본이 임시객체에 저장되고 이 임시객체가 이동생성자의 매개변수에 들어가는 것이 맞을까요?만약 그렇다면 사본을 가진 임시객체의 포인터 변수 멤버의 값이 return 값의 포인터 변수 멤버의 값과 같을텐데 return 후 return값이 소멸함에도 이동생성자 내부에서 사본은 어떻게 계속 값을 유지하는걸까요?이동생성자 호출 시에는 이동생성자 종료 전까지 return 값이 사라지지 않는걸까요?사본이라고 표현하신 것의 의미도 궁금합니다...사본은 모든게 다 똑같은 복사본인걸까요..?근데 그러면 참조자와 같은것일것같은데 반환형식이 참조자는 아니고... shallow copy한 것도 아니고 deep copy한 것도 아닌것 같은데...너무 헷갈리네요...감사합니다.
-
미해결마이크로서비스 디자인 패턴 완벽 가이드
MSA 아키텍쳐 프로젝트 구성 방식
안녕하세요 강사님질문을 드리고 싶은 부분이 있는데요MSA 아키텍쳐로 개발할 때 각각의 서비스 마다 단일 배포할 수 있다는 장점이 있다고 들었는데그러면 MSA 아키텍쳐로 개발을 진행할 때 보여주신 것 처럼 하나의 큰 프로젝트 안에 각각의 마이크로 서비스를 넣어서 만드나요? (모노레포?)혹은 각각의 마이크로 서비스를 독립적으로 만드는건가요? (폴리레포?)만약 둘 다 사용한다면 주로 사용하는 방식은 어떤 방식인가요?
-
미해결스프링 핵심 원리 - 고급편
final 키워드 사용 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]프록시 기술과 한계 - 스프링의 해결책 강의에서프레임워크 같은 개발이 아니라 일반적인 웹 애플리케이션을 개발할 때는 final 키워드를 잘 사용하지 않는다라고 하셨는데요, 다른 자료로 공부할 때 유틸 함수를 모아두는 유틸 클래스의 경우에는 상속이나 오버라이드를 막기 위해서 final 클래스와 static 메서드 등으로 사용하는 것도 좋다고 배웠습니다.영한님께서는 유틸 기능들도 순수 자바 클래스/메서드 보다는 스프링 컴포넌트로 관리하는게 좋다고 생각하시는 편인가요?
-
미해결스프링 핵심 원리 - 고급편
안녕하세요
안녕하세요@Around가 포인트컷이고그밑에 메소드가 어드바이스가 맞을까요? 그렇다면 @Around가 포인트컷에 조건에 해당하는 곳에 프록시가 생성되고 비즈니스 로직이 실행이된다고 생각되는데 예전에는 프록시가 생성되는 지점 포인트컷 , 비즈니스 로직이 적용되는 포인트컷 조건이 있는 걸로 설명을 들었는데 @Around가 포인트컷이 프록시가 생성되는 포인트컷과 비즈니스 로직이 적용되는 포인트컷 두개의 의미가 모두 들어있는걸까요?감사합니다
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
많이 사용되는 패턴의 순서를 정한다면 어떤 순서일까요?
안녕하세요.강의잘들었습니다. 제가 모르고 사용한 패턴들이 많이 보이네요. 그떄 그떄 상황에 맞게 사용을 하면 될 것 같긴 한데.. 그래도 자주사용하는 패턴들의 순서를 매긴 다면 어떻게 될까요?
-
미해결마이크로서비스 디자인 패턴 완벽 가이드
마이크로서비스와 모듈러 아키텍처 선택 질문
db(db2, 오라클 등등)가 여러 종류로 나뉘어 서비스 중입니다. 무조건 마이크로 서비스 구조를 채택하는것이 좋을까요?
-
미해결스프링 핵심 원리 - 고급편
ThradLocal 실무 사례
실무에서 보통 ThreadLocal을 어떤 데이터를 저장에 주로 쓰는지 궁금합니다
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
@Builder에 대해 사소한 질문
강의 잘 듣고 있습니다!강의를 듣던 중 궁금한것이 있는데요.예를 들어 결제 API를 만든다면: - 금액, 결제수단: 필수- 할인쿠폰, 메모: 선택 @Builder를 사용할 때 필수 파라미터 처리가 궁금합니다. 결제 API 같은 걸 만든다면 금액은 필수인데, @NonNull은 런타임 체크로 알고 있는데요. 프로그램을 실행해야 에러를 확인할 수 있었습니다. 필수 항목을 빠뜨리면 컴파일 에러가 나게 할 수는 없나요? 실무에서는 런타임 체크로 충분한가요, 아니면 중요한 객체는 컴파일 타임 체크를 위해 직접 구현해야 할까요?
-
해결됨C개발자를 위한 최소한의 C++
임시 객체 복사 생성자 질문드립니다
30강 19분에서 TestData result = testFunc( 10); 에서 10은 리터럴 상수인데, TestData 객체로 변환될 때 값이 아닌 상수형 참조로 처리되는 건가요? 상수형 참조로 처리되기 때문에 컴파일러가 내부적으로 TestData(10) 라는 임시 객체를 생성해서 그 객체를 testFunc() 의 인자로 넘기는 과정이 맞는 건지 헷갈립니다..!
-
미해결스프링 핵심 원리 - 고급편
실무에서의 동시성 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 실무에서의 동시성 문제에 대해서 궁금한게 생겨서 질문 드립니다.현재 외부 API를 사용하는 서비스를 개발 중인데, WebClient, RestTemplate를 사용하여 개발 중에 있습니다.구글링 및 Claude MCP를 사용하여 검증 했을 때에는 해당 라이브러리를 사용할 때 동시성 문제를 일으킬 가능성이 없다고 하는데, 해당 라이브러리를 사용할 때 동시성 문제에 완전히 자유로운 건가요? 아니면 특정 상황에서는 동시성 문제가 발생할 수 있는 건가요?만약 발생할 수 있다면, 어떻게 테스트 코드를 작성해서 확인 할 수 있을까요?
-
미해결스프링 핵심 원리 - 고급편
로그 등 부가 기능에 대한 테스트코드
강의 자료에서 제공된 테스트 코드가 온전한 테스트 코드가 아니라고 언급하셨습니다. 실무에서 로그와 같은 부가기능에 대해서도 테스트 코드를 작성하시나요? 작성하신다면 로그가 정확하게 찍혔는지, 혹은 메서드 호출 순서나 시간이 기대한 대로 측정되었는지 등을 자동으로 검증하기 위해 일반적으로 사용되는 테스트 기법이나 프레임워크가 있을까요? 관련 방법이나 라이브러리 등에 대해 학습할 수 있는 키워드를 알려주시면 감사하겠습니다.
-
미해결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의 장소??어떤 곳에 작업하실지 여쭙고 싶습니다
-
미해결스프링 핵심 원리 - 고급편
ProceedingJoinPoint와 MethodInvocation에 대하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]1. 스프링에서 제공하는 MethodInterceptor에서 사용하는 MethodInvocation 객체와 @Aspect 프록시에서 사용되는 ProceedingJoinPoint는 어떤 차이점이 있나요?2. 비슷한 기능을 제공함에도 다른 객체가 사용되는 특별한 이유가 있나요?
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
default 기능이 있는 interface와 추상클래스의 차이
interface에 default 메서드를 사용할 수 있음에 따라 추상 클래스와 동일한 용도로 사용될 수 있는 것처럼 보입니다. 업무 중에는 jdk 6 환경까지 컴파일되야 함을 감안하여 코드를 작성하다보니 해당 기능에 대해 아예 생각해본적이 없는데, 팩토리 강의를 듣던 중 default를 통해 interface가 추상 클래스처럼 사용되는걸 보니, jdk 8 이상의 환경, 특히 9에서는 private까지 지원되면 추상 클래스를 완전히 대체할 수 있는 것처럼 보입니다.default 기능을 제공하는 interface와 추상 클래스에 차이가 있는지, 현장에서 interface의 default 기능이 적극적으로 사용되는지, 추상 클래스는 더이상 필요없는 것인지요.기존에 해당 기능을 설명하는 글귀만 봤을 때는 interface를 변경할 때 레거시 코드의 수정없이 변경할 수 있는, 편의성을 위한 기능이라고만 이해하고 넘어갔는데, 적극적으로 사용되는 기능인지 궁금하네요
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
실무 코드에 디자인 패턴 적용 시의 '기준'에 대해 조언을 얻고 싶습니다.
강의를 들으며 정리한 내용을 바탕으로, 실무적인 관점에서 더 깊이 이해하고 싶은 부분이 생겨 질문드립니다.추석 연휴 동안 강의를 수강하고, 출근을 하여 실무에서 다루고 있는 코드를 보다보니 "이것도 OO 패턴으로 리팩토링 할 수 있을까?" 하는 유혹(?)을 이곳 저곳에서 느끼게 되었습니다.(특히, 상태 패턴과 전략 패턴을 도입 할 수 있어 보이는 코드가 상당히 많았습니다.) 책임 연쇄 패턴이나 커맨드 패턴처럼 유연성을 위해 클래스가 많이 늘어나는 경우, 얻는 이점보다 구조의 복잡함이 더 커지는 순간이 있을 것 같은데요. 결국은 본인 혹은 현실적인 실무 환경 등, 각자의 실무 환경에 따라 달라질 수 있는 내용이지만 실무에서 "이 정도면 과하다. 그냥 if문으로 가자"라고 판단하시는 기준이나 경험적인 '신호'가 있다면 어떤 것일지 조언을 구하고 싶습니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
데코레이터 패턴, before 가 O(2^n) 인 이유
백기선님 안녕하세요.수강중 질문 사항이 있어 글 남깁니다.7분 구간에서 코드 증가량을 빅오로 비유하시며 before를 O(2^n) 로 설명하셨는데,2^n 판단의 전제를 더 설명해 주실 수 있을까요? 또 실무에서 패턴 선택 시, 중요하게 생각하시는 부분이 있으신지 궁금합니다. 마지막으로 자막에서 O(n) 을 “5에 n” 으로 표시하고 있어 제보드립니다. 확인 부탁드립니다 감사합니다:)
-
미해결얄코의 떠먹여주는 객체지향 디자인 패턴
3-layer 에서의 파사드 패턴적용
안녕하세요. 강의 잘 들었습니다! 저는 SpringBoot를 주력으로 백엔드 개발을 하고있는데요. 주로 3-layer로 이루어진 계층형 아키텍처를 사용하고 있습니다. 이때, Controller에서 Service를 호출한 후 서비스 계층에서 비즈니스 로직을 처리한 후 결과만을 Controller에 리턴해주게 될텐데요! 이런 경우에 Controller에서 하나의 Service 클래스에 비즈니스 로직의 실행을 위임하는 것을 파사드 패턴이라고 볼 수 있을까요?
-
미해결TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
[프론트엔드 문서화 관련 질문]
안녕하세요, 제로초님.프론트엔드 문서화 관련하여 질문을 드릴 게 있습니다.저희 회사에서 단기간에 규모가 큰 프로젝트를 진행하다보니 AI의 도움을 빌려 만들기는 만들었는데 문서화가 제대로 되지 않은 상태입니다.최근 한 명의 백엔드 개발자가 프론트엔드도 함께 개발을 하게 되어 문서화의 필요성을 느끼고 있는데, 문서화에 대한 경험이 없어 제로초님께 여쭤봅니다.현재 폴더 구조는 FSD를 채택하여 개발 중입니다.구상중인 것은 Slice 단마다 문서를 만드려고 하는데,해당 Slice에 포함된 파일의 사용 방식(API input값, output 값 등)에 대해 작성하고, store(zustand)에 저장된 값을 적고, ui에서 필요한 정보값들에 대해서도 적어보려고 합니다.이렇게 모든 폴더에 정리하게 된다면 못해도 50개가 넘는 문서가 만들어지게 될텐데, 괜찮은 방법인지 확신하지 못하겠네요.(현재 회사에 있는 개발자분들은 딱히 관심이 없어보이십니다ㅠ)제로초님이라면 해당 문서에 어떤 내용을 담으실지 궁금합니다.그리고 프로젝트 전체를 소개하는 문서에는 Tech Stack, 프로젝트 구조 이외에 어떤 항목을 넣는 것이 좋을지도 궁금합니다.이 수업에서 배운 디자인패턴에 대해서도 작성하는 것이 좋을까요?
-
미해결마이크로서비스 디자인 패턴 완벽 가이드
섹션 2 - 12강 강의 제목 관련 질문있습니다.
안녕하세요. 강의 재밌게 잘 듣고있습니다.섹션 2 - 12 목차가 Modular Monolithic Architecture 소개로 되어있는데, 실제 강의 내용이 Layered Architecture 관련 내용인 것 같습니다. 목차 명이 의도하신 것이 맞는지 궁금해서 질문드립니다!
-
미해결스프링 핵심 원리 - 고급편
실무 멀티스레딩에 대한 궁금증
=========================================[질문 내용]안녕하세요, 영한님? 영한님의 자바와 스프링 전편의 로드맵을 수강 중인 개발자입니다. 항상 영한님의 강의를 들으며 스텝업하는 부분이 있기에 너무 감사하단 인사를 먼저 드리고 싶습니다. 본격적인 질문은 스레드 로컬을 포함한 멀티 스레딩 관련 내용입니다. 영한님의 유튜브 영상 중 초보 개===============================[질문 내용]안녕하세요, 영한님? 영한님의 자바와 스프링 전편의 로드맵을 수강 중인 개발자입니다. 항상 영한님의 강의를 들으며 스텝업하는 부분이 있기에 너무 감사하단 인사를 먼저 드리고 싶습니다. 영한님의 유튜브 영상 중 고민 많은 개발자가 찾아왔다 를 보고 저 역시 처음부터 높은 목표를 가지지 않고 당장 입사 가능한 회사에 들어가 1년간 업무를 해봤습니다. 그래서 그런지 몰라도 이전 회사에선 영한님 강의에서 배운 내용들을 10% 조차 적용하지 못해봤던 것 같고 그 부분에 회의를 조금 느낀 것인지 안주하지 않겠다는 생각을 가지고 퇴사 후 교육을 듣게 되었던 것 같습니다. 본격적인 질문은 스레드 로컬을 포함한 멀티 스레딩 관련 내용입니다. 자바 고급편에서 다뤄주신 executorService나 이번의 스레드 로컬과 같은 멀티스레드 관련 지식을 적용할만한 코드가 이전 회사에선 없었습니다. 기껏해야 비동기 API 구성시 Future를 사용한 것 정도일까요? 그래서 궁금해졌습니다. 스프링 부트에서는 기본적으로 대부분의 컴포넌트가 싱글톤 스코프로 관리되기 때문에, stateless하게 설계하면 일반적으로 스레드 안전성 문제가 드물다고 알고 있습니다.다만 실무에서는 의도치 않게 stateful한 코드가 들어가는 경우가 자주 발생하곤 하는데요.(그게 실수가 되었건 불가피하건 말이죠)> 실제로 규모가 있는 서비스 회사에서는 이런 문제를 사전에 방지하기 위해 클래스/컴포넌트 설계 가이드나 명세 단계에서 thread-safe 설계를 강제하는 편인가요?아니면 설계 때보단 코드 리뷰나 테스트 중 문제 발견 후 사후적으로 수정·보완하는 프로세스를 거치나요?