[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. Q. 수업에서 사용되는 MySQL Workbench가 실무에서도 사용될만한 지 혹은 실무에서 사용하는 데이터베이스와 비슷한 수준인지, 아니면 단순 수업용이라고 보는 게 맞을지 궁금합니다! 항상 스승님의 강의가 실전에서 사용할 수 있게 바로 알려주셔서 너무 감사히 잘 듣고 있습니다! 일반적으로도 DB 강의에는 Workbench를 사용하는 것 같던데, 이러한 이유가 무료라서 가벼워서 실무 제품과 유사해서 중에 어떤 것인지 갑자기 궁금해져서 질문을 드려보게 되었습니다!!
[1.5탄] 옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
안녕하세요, 이번 강의를 듣다가 문득 궁금한 점이 생겨서 질문 드립니다. 강의에서 @RequestMapping(method = RequestMethod.GET)을 @GetMapping으로 축약할 수 있다고 배웠습니다. 그런데 이런 축약 어노테이션들이 단순히 가독성만을 위한 것인가요? 아니면 성능상의 차이도 있나요? 왜 굳이 이렇게 나뉘어져서 존재하는지 궁금합니다.
안녕하세요, 토비님. 좋은 강의 항상 감사드립니다. Clock 관련해서 궁금한 점이 있어 질문드립니다. 스프링에서 빈은 기본적으로 싱글톤으로 관리된다고 알고 있습니다. 그런데 만약 Clock을 빈으로 등록하고 Clock.fixed... 로 고정된 시계를 만든다면, 여러 스레드가 동일한 Clock 인스턴스를 공유하게 될 텐데요. 이 경우 동시성 문제가 발생할 가능성은 없는지 궁금합니다.
안녕하세요, 좋은 강의 올려주셔서 감사합니다. Seperate Interface 패턴에 대해 궁금한 점이 있어 질문드립니다. "오브젝트와 의존관계" 세션의 마지막 강의에서, DIP를 적용하기 위해 payment 패키지에 ExRateProvider 인터페이스를 두고, 해당 인터페이스를 exrate 패키지에서 구현한다고 알려주셨습니다. 저도 직접 코드를 따라서 작성해보니 훨씬 깔끔하다는 느낌이 들었는데요. 그런데 사실 제가 실무에서 개발을 하면서 저런 구조를 경험해보지 못했습니다. 저는 Spring MVC를 사용하는데, 흔히 사용하는 controller-service-repository 패키지 구조에서 repository 패키지 아래에 인터페이스를 만들어서 그대로 쓰거나(JpaRepository) 필요하면 구현체를 만들어서 쓰는 방식으로 개발을 해왔습니다. 그래서 다음 2가지가 궁금한데요. 1) Spring MVC를 사용하는 경우에도 알려주신 Separate Interface 패턴을 적용할 수 있나요? 아니면 프로젝트의 설계 자체가 달라져야 하는 것인가요? 2) 실무에서도 Seperate Interface 패턴을 많이 적용하고 있나요? 스프링을 더 잘 이해하고 코드를 더 잘 작성하고 싶었는데, 강의 들으면서 많이 배우고 있습니다. 감사합니다.
5년차 백엔드 개발자 이며 현재 섹션5. 헥사고날 아키텍처의 사실과 오해를 학습하고 있습니다. 현업에서 신규 프로젝트를 준비 하면서 어떤 아키텍처를 가져가는 것이 좋을지 고민중에 강의를 접하게 되었습니다. 부동산 관련 데이터를 기반으로 한 서비스를 개발 및 설계 단계에 있습니다. 제가 전부 리드하는 것은 아니지만 프로젝트 전반적인 부분을 개발 리드분에게 권한을 받고 저와 팀원 둘이서 백엔드 구조를 설계 하고 있습니다. 수천만건 그 이상이 될 수 있는 데이터를 기반으로한 서비스를 계획 및 설계하고 있는데, 자바 스프링으로 서버를 구축 하려고 하는데 헥사고날 아키텍처를 저와 팀원은 경험 하지 못하였는데, 확장성 있는 서비스를 만들기 위해 헥사고날 아키텍처 기반으로 어떤 구조 설계를 하는 것이 좋을지 ,,, 조언 부탁드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 최근 프로젝트를 진행하며 코드 구조를 정리하는 과정에서 궁금한 점이 생겨 질문드립니다. 현재 상황 PostStrategy 인터페이스를 만들고 3개의 구현체를 두어, 홈 피드에 게시글을 조회하는 전략을 분리했습니다. 인터페이스에는 homePosts() 관련 메서드가 여러 버전으로 존재합니다. ( homePosts , homePostsV2 , homePostsV3 등) public interface PostStrategy { boolean isExecutable(UserContext userContext); boolean requiresAuthentication(); PostSummaryResponse homePosts(int size, Long cursorPostId, String username); PostSummaryResponse homePostsV2(int size, Long cursorPostId, String username); PostSummaryResponse homePostsV3(int size, Long cursorPostId, UserContext userContext); ... } 문제 상황 구현체 중 ForYouPostStrategy 만 V2와 V3를 실제로 사용하고 있고, 나머지 구현체에서는 homePosts() 만 호출하는 식으로 처리하고 있습니다. 처음엔 단순했는데 버전이 늘어나면서 인터페이스가 점점 커지고 불필요한 코드가 많이 생긴 상황입니다. 궁금한 점 PostStrategy 인터페이스에 default 메서드를 정의해 공통 로직을 담고, 특정 전략에서만 필요한 부분을 오버라이드하는 방식으로 해도 괜찮을지 궁금합니다. 또는 인터페이스가 아닌 다른 방식으로 리팩토링하는 것이 더 적절할지 궁금합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요. Inner Join 시 ON의 조건을 선언하는 부분에서, FROM 절에 있는 테이블을 먼저 작성하고, 이후 Join 절에 있는 테이블을 작성한 것을 보았습니다. ex. select u.address from orders o join users u on o.user_id = u.user_id where o.order_id = 1 ; 여기서 u.user_id = o.user_id 라고 작성해도 동일한 결과를 반환하는데, o.user_id = u.user_id 형태로 쓴 것은 가독성을 높이기 위함인가요? 아니면 성능상의 이슈가 있는 건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 현재 Stream API Collector 65강까지 수강 완료한 수강생입니다. 먼저 강사님 덕분에 자바에 대해서 계속 공부하는 시간이 정말 즐겁니다! 감사합니다! 아래와 같은 질문 사항이 있어 남깁니다! 실무에서 Collector 를 직접 구현해야 하는 상황은 어떤 경우가 많나요? 직접 Collector 를 구현해야 하는 상황이 생긴다면 병렬 스트림에서도 안전하게 동작하도록 어떤 설계 포인트를 가장 중요하게 봐야 할까요? 다소 정답이 없는 질문이지만 방향성과 강사님의 생각이 궁금합니다! 😃 감사합니다.
안녕하세요. 토비님! 강의 정말 잘 듣고 있습니다. 테스트 코드를 작성해본 경험이 많지 않아서 강의 내에서 테스트 단원을 보다가 궁금한 점이 있어서 질문드립니다. 강의의 예제는 paymentService 를 테스트 하는 코드를 작성하시고, 스프링을 이용하지 않는 방법과 스프링을 이용해 DI 를 통한 테스트를 진행합니다. 코드는 paymentService 의 prepare 메소드 하나를 검증하는데, 사실은 3가지 목적. 적용환율, 원화 환산 금액, 원화 환산 금액 유효시간을 테스트 합니다. 실제로 현업에서 사용하는 서비스 에서는 보다 많은 코드와 기능이 존재할테고, 그에 따른 경우의 수도 기하급수적으로 많아질거라고 생각해요. 그렇다면 보통, 어떤 기준을 통해 테스트를 작성하는 것이 바람직한 테스트 일까요 ? 예를들어 제가 생각해본 여러가지 방법은 다음과 같습니다. 단순히 prepare 메소드 하나만. 메서드 단위로 테스트를 진행. 메서드 안에 존재하는 메서드(예시 코드에서는 provider 메서드) 단위. 목적에 따라서. 적용 환율을 잘 가져오는지, 원화 환산 금액이 잘 계산 되는지, 유효시간을 잘 지키는지. 그 밖에 여러가지 방법. 예를들어 기능이 잘 작동하는지 크게 테스트 한 뒤, 내부적으로 변동사항이 있을 법한 코드만 따로 분리해서 테스트. 물론, 프로젝트 특성이나 팀의 컨벤션, 서비스 코드를 작성할 코드의 특성에 따라서 달라지겠지만 테스트 코드를 작성할 때는 너무 작게도, 그렇다고 너무 뭉뚱그려서도 안된다고 이해하고 있습니다. 보편적으로 어떤 기준을 가지고 테스트 코드를 작성하게 되나요 ?
물리적 모델링에서 PK의 타입을 선택할 때 대부분 BIGINT를 사용하고 용량 차이도 크지않다는 강의가 매우 좋았습니다. 그런데 논리적 모델링에서 PK로 UUID도 사용한다고 들었는데 UUID는 128바이트로 16바이트로 정수 PK보다 2배 더 크고 식별하기도 힘들것이라고 생각되는데 사용한 경험이 있으실까요? 아니면 어떠한 상황에서 장점이 있는지 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 2뎁스 댓글 목록의 테스트 데이터 삽입 시에는 계층 구조까지 파악할 수 있게끔 작성이 되었는데 무한 뎁스 댓글의 테스트 데이터 삽입은 계층 구조로 생성하지 않으신 이유가 궁금합니다!
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
querydsl이 쿼리를 코드로 작성하여 컴파일 시점에 오류를 감지할 수 있는게 가장 큰 장점인데 Spring JPA와 혼합하여 사용할떄 그 외에 장점이 또 있을까요 레거시 쿼리는 이미 사용되고 있어 이를 전환하기 위해 먼가 더 장점이 필요할 것 같아서요 아니면 레거시는 두고 신규 추가되는 부분만 Querydsl를 도입하는 식으로 가면 될까요?
강의를 들으며 정리한 내용을 바탕으로, 실무적인 관점에서 더 깊이 이해하고 싶은 부분이 생겨 질문드립니다. 추석 연휴 동안 강의를 수강하고, 출근을 하여 실무에서 다루고 있는 코드를 보다보니 "이것도 OO 패턴으로 리팩토링 할 수 있을까?" 하는 유혹(?)을 이곳 저곳에서 느끼게 되었습니다. (특히, 상태 패턴과 전략 패턴을 도입 할 수 있어 보이는 코드가 상당히 많았습니다.) 책임 연쇄 패턴이나 커맨드 패턴처럼 유연성을 위해 클래스가 많이 늘어나는 경우, 얻는 이점보다 구조의 복잡함이 더 커지는 순간이 있을 것 같은데요. 결국은 본인 혹은 현실적인 실무 환경 등, 각자의 실무 환경에 따라 달라질 수 있는 내용이지만 실무에서 "이 정도면 과하다. 그냥 if문으로 가자"라고 판단하시는 기준이나 경험적인 '신호' 가 있다면 어떤 것일지 조언을 구하고 싶습니다.