묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
실무 코드에 디자인 패턴 적용 시의 '기준'에 대해 조언을 얻고 싶습니다.
강의를 들으며 정리한 내용을 바탕으로, 실무적인 관점에서 더 깊이 이해하고 싶은 부분이 생겨 질문드립니다.추석 연휴 동안 강의를 수강하고, 출근을 하여 실무에서 다루고 있는 코드를 보다보니 "이것도 OO 패턴으로 리팩토링 할 수 있을까?" 하는 유혹(?)을 이곳 저곳에서 느끼게 되었습니다.(특히, 상태 패턴과 전략 패턴을 도입 할 수 있어 보이는 코드가 상당히 많았습니다.) 책임 연쇄 패턴이나 커맨드 패턴처럼 유연성을 위해 클래스가 많이 늘어나는 경우, 얻는 이점보다 구조의 복잡함이 더 커지는 순간이 있을 것 같은데요. 결국은 본인 혹은 현실적인 실무 환경 등, 각자의 실무 환경에 따라 달라질 수 있는 내용이지만 실무에서 "이 정도면 과하다. 그냥 if문으로 가자"라고 판단하시는 기준이나 경험적인 '신호'가 있다면 어떤 것일지 조언을 구하고 싶습니다.
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
데코레이터 패턴, before 가 O(2^n) 인 이유
백기선님 안녕하세요.수강중 질문 사항이 있어 글 남깁니다.7분 구간에서 코드 증가량을 빅오로 비유하시며 before를 O(2^n) 로 설명하셨는데,2^n 판단의 전제를 더 설명해 주실 수 있을까요? 또 실무에서 패턴 선택 시, 중요하게 생각하시는 부분이 있으신지 궁금합니다. 마지막으로 자막에서 O(n) 을 “5에 n” 으로 표시하고 있어 제보드립니다. 확인 부탁드립니다 감사합니다:)
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
알고리즘 자료 구조들..
알고리즘을 풀때 주로 사용되는 자료구조랑 주로 어디에 쓰는지 알려주실 수 있나요?
-
미해결얄코의 떠먹여주는 객체지향 디자인 패턴
3-layer 에서의 파사드 패턴적용
안녕하세요. 강의 잘 들었습니다! 저는 SpringBoot를 주력으로 백엔드 개발을 하고있는데요. 주로 3-layer로 이루어진 계층형 아키텍처를 사용하고 있습니다. 이때, Controller에서 Service를 호출한 후 서비스 계층에서 비즈니스 로직을 처리한 후 결과만을 Controller에 리턴해주게 될텐데요! 이런 경우에 Controller에서 하나의 Service 클래스에 비즈니스 로직의 실행을 위임하는 것을 파사드 패턴이라고 볼 수 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Native Query와 MyBatis
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 대부분을 jpa로 작성하고(jpql, QueryDSL), 극 소수의 안되는 것들에만 JDBC Templates, MyBatis를 이용하는 것으로 이해했습니다. 1) 그렇다면 가급적 Native Query는 사용을 지양하는게 좋을까요? Native Query를 사용해야할 정도라면 사실 JDBC Templates나 MyBatis를 이용하는게 나을테니까요. 2) 만약 그렇다면 MyBatis 등을 처리하기 위한 패키지를 따로 구분해서 처리를 하게 되나요? 이 경우에 .flush()를 처리하기 위해서 entityManager 인스턴스도 가져와서 따로 해줘야할 것 같은데, 구조가 조금 복잡해지지 않을까? 걱정 됩니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
StringBuilder vs BufferdWriter
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 출력이 나오는 문제에서 항상 이 두 개를 고려하곤 하는데 가끔은 기준이 안잡혀서 고민입니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 정보와 게시글 조회수 동시에 필요한 API 조회 질문
현재처럼 서비스 구조가 거의 테이블 단위로 DB와 API 서비스가 분리될 때,이런 구조에서 화면에서 리스트 형태로 두 도메인 데이터를 함께 조회해야 하는 경우가 있을 것 같습니다.예를 들자면 게시글과 게시글 조회 수를 함께 보여주는 리스트 API가 필요한 상황에서,단건 조회라면 프론트에서 별도로 API를 호출해도 괜찮을 것 같은데,페이징 처리나 리스트 형태로 여러 데이터를 묶어서 조회해야 할 때,실무에서는 보통한 서비스에서 다른 서비스를 RestClient(Feign 등) 로 호출해서 데이터를 합치는 방식으로 처리하는지,아니면, 같은 도메인 서비스로 묶어버린다던지아니면 프론트엔드에서 각각의 API를 호출한 뒤 병합하는 방식으로 처리하는지궁금합니다.실제 현업에서는 이런 경우 어떤 접근 방식을 주로 사용하나요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
entity 내부에 passwordEncoder 를 넣는다면 결합도를 높게 만들게 되는 것 아닌가요?
일단 제가 배운대로면 결합도를 낮추는 것이 좋은 코드라고 배웠는데, 왜 그렇게 만드셨는지가 궁금합니다!
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
fetch join DISTINCT 중복제거
fetch join 부분이 조금 어렵게 느껴져서, gpt에게 물어보며 공부했습니다.강의에서 fetch join으로 나온 중복 데이터를 DISTINCT 키워드를 이용해서 제거해주시는 부분을 보았는데, gpt가 다음과 같이 설명해주는 것을 보았습니다.DISTINCT 키워드가 SQL과 JPA 양쪽에서 다르게 동작하기 때문에 완전한 중복 제거가 보장되진 않습니다.이 말이 맞다면 현업에서는 이런 문제를 어떤 식으로 해결하는지 궁금합니다!
-
미해결김영한의 실전 자바 - 중급 1편
실무에서 중첩(내부) 클래스 사용하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]중첩 클래스를 학습하다 보니 실무에서도 종종 쓰일까 생각이 들었습니다.(쓰니까 있지 않을까 싶습니다?)예시로 Member, Role 과 같은 객체가 있을 때, 이 관계를 중첩 클래스로 표현하는 게 더 합리적일까요? 부족하다 보니 이런 고민이 드네요!(코드와 주관에 따라 다르겠지만 일반적인 경우로 가정)
-
미해결Spring WebFlux + LLM 실전 구현
순수 webflux 프로젝트의 가독성 팁 그리고 향후 kotlin을 활용한 프로젝트 계획이 있는지 궁금합니다.
안녕하세요. 좋은 강의로 덕분에 webflux에 대해 쉽게 이해할 수 있었습니다. 저는 현재 kotlin으로 개발하는 프로젝트가 있어,webflux를 사용할때는 coroutine을 함께 사용하는데요, 이렇게 하면서 코드를 함수형처럼 짤 수 있어 보다 쉽게 동료들에게 보여줄 수 있었습니다. 혹시 강사님께서도 coroutine을 함께 사용하기도 하시는지, 그렇다면 java가 아닌 kotlin을 사용한 강의 계획이 있는지 궁금합니다.또한, 강의에서 쉽게 설명해주셨지만 비즈니스 로직이 좀 더 추가되는 경우 코드가 많이 복잡하고 가독성이 어려워지던데, 가독성을 위한 팁들이 있는지 궁금합니다. ps. webflux 2 프로젝트에는 사용 가능한 gmemini api key가 입력되어 있습니다. 😅
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
실제 실무에서도 이런식으로 쿼리를 작성하는지 궁금합니다!
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요.향로님의 추석 챌리지에서 우연히 제목을 보고 바로 구매했는데 아직 완강하지는 못했지만 정말 좋은 강의 같습니다!선배 개발자님이 개발하시는 느낌으로 보고있습니다! ㅎㅎ궁금한 점은 혹시 실무에서도 이런식으로 서브쿼리를 이용해서 대규모 데이터에 대해서 처리를 하는지가 궁금해져서 질문 남겨봅니다!
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
인메모리 DB, 테스트 컨테이너 선택 기준이 있으신지 궁금합니다
강의에서는 H2 인메모리 DB를 이용해 테스트를 진행하셨는데,실무에서는 테스트 환경에서 실제 MySQL이나 PostgreSQL 같은 실제 운영 DB와 동일한 컨테이너 기반 테스트 DB를 사용하는 경우도 많은 것 같습니다.실무에서는 인메모리 DB와 컨테이너 DB 중 어떤 상황에서 어떤 것을 선택하시는지, 선택 기준이나 장단점에 대해 조언을 받을수 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Path Enumeration 방식 적용 후 redis 적용 방법 관련 질문
안녕하세요 강사님.강의에서 Path Enumeration 방식을 활용해 데이터베이스 조회 성능을 최적화하는 방법을 매우 유익하게 배웠습니다.실제 대규모 서비스 환경에서 이 조회 결과를 Redis로 캐싱하려고 할 때, 캐시를 저장하는 자료구조 선택에 대해 강사님의 의견을 듣고 싶습니다.현재는 Path를 기반으로 DB에서 계층 구조를 유지하며 정렬된 댓글 목록을 조회하고 있습니다. 이 결과를 Redis에 저장하는 방법으로 아래 두 가지를 고려하고 있습니다.1. List 구조 (LRANGE)장점: DB에서 조회한 정렬 순서를 그대로 Redis에 저장할 수 있어, 조회 시 한 번에 가져올 수 있습니다.고민: CUD(특히 중간 삽입) 발생 시 전체 List를 삭제하고 DB에서 다시 조회해 재저장해야 하므로 비효율적일 수 있습니다.2. Sorted Set 구조 (ZADD)장점: 각 댓글을 멤버로 저장하고 Path 값이나 정렬 기준을 score로 부여하면, CUD 발생 시 해당 멤버만 ADD/REMOVE로 처리할 수 있어 갱신이 효율적입니다.고민: Path 기반의 정렬 값을 Redis의 score로 매핑하는 과정이 다소 복잡합니다.이처럼 캐싱 로직의 구현 복잡도(Sorted Set)와 갱신 효율성(List의 TTL 전략) 사이의 균형을 고려할 때,강사님께서는 무한 depth 댓글 구조를 캐싱할 때 어떤 Redis 자료구조가 더 적합하다고 생각하시는지 궁금합니다.감사합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
OutBox 패턴에 대한 질문입니다.
안녕하세요 ! 강의 잘 듣고 있습니다.최근 OutBox 패턴을 사용해보려고 시도중입니다 !CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다.ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다.여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다.어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
kafka 컨슘은 실시간 인가요?
실시간 이라면 stream하고 어떻게 차이가 나는걸까요?
-
미해결김영한의 실전 자바 - 기본편
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의를 듣다가 궁금한 부분이 있어 질문 드립니다. this 와 super의 호출 순서는 왜 중요한가요?개념으로 이해하기에는 부모에 해당하는 super가 있어야 자식에 해당하는 this 를 호출할 수 있다고 생각하고 있습니다. top -down으로 이해하고 있는데 이것외에도 중요한 이유가 있을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
8강 도메인 모델과 DDD 내용에 대해 질문있습니다.
8강 도메인 모델과 DDD 에서코드의 내용이 도메인에도 반영이 되어야 할 때도 있다고 하셨는데 예시를 들어 주실 수 있을까요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
표준 예외와 커스텀 예외 사용 전략 질문
안녕하세요. 수업 내용과는 크게 관계가 없지만... 예외처리 관련 내용에 대한 질문을 드립니다. 스프링이 제공하는 표준 예외(IllegalArgumentException, IllegalStateException)와 비즈니스 로직을 표현하는 커스텀 예외(NotFoundUserException) 사이에서 표준 예외를 사용하는 경우와 커스텀 예외를 사용하는 경우에 대한 기준을 알 수 있을까요? 감사합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
도메인의 응집도와 모델 복잡도간 밸런스 고민
강의 너무 재미있게 듣고 있습니다.도메인이라는 개념에 대해서 고민하다가 궁금한 사항이 생겨서 질문드립니다. "도메인 모델이 비즈니스 규칙을 모두 내포하면 응집도는 높아지지만, 복잡도도 함께 커집니다. 이때 어디까지를 도메인 모델에 포함시키는 게 적절할까요?"