이야기를 나눠요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java 중급강의 언제나오나요?!
김영한님 java 중급강의가 24년 초에 나온다고 알고 있는데 3,4월쯤에 나올나요??
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 수강 중 에러.
질문탭으로 가야하는데 고민으로 작성했네요... 수정으로는 이동이 안되는데 이동 가능하다면 부탁드립니다.ㅠㅠ===========================================AOP 수강 중 에러가 발생했는데 어디를 건드려야할지 잘 모르겠어서 문의 남깁니다.우선 강의와 다른 환경으로 실습해보고 있어 조금씩 코드가 다릅니다.먼저 에러 메세지는 아래 2개입니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [D:\dev\java\hello-spring\out\production\classes\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}2번 메세지를 보게 되면 MemberService타입의 Qualifying 한 bean이 존재하지 않아 wiring 할수 없다는 에러인데. 스프링을 처음 해보는 입장에서는 그대로 따라 쳤는데 되지 않아 어떻게 더 수정해야할지 고민입니다.관련된 코드 블럭을 첨부 드립니다.SpringConfig.Javapackage hello.hellospring; import hello.hellospring.repository.*; import hello.hellospring.service.MemberService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { // private EntityManager em; private final MemberRepository memberRepository; public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } // public SpringConfig(EntityManager em) { // this.em = em; // } @Bean public MemberService memberService(){ return new MemberService(memberRepository); } // @Bean // public MemberRepository memberRepository(){ //// return new MemoryMemberRepository(); //// return new JdbcMemberRepository(dataSource); //// return new JdbcTemplateMemberRepository(dataSource); //// return new JpaMemberRepository(em); // } }MemberService.Javapackage hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.JdbcMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Component public class MemberService { private final MemberRepository memberRepository; @Autowired public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /* * 회원가입 */ public Long join(Member member){ //같은 이름이 있느 중복 회원X validatedDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validatedDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } public List<Member> findMembers(){ return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId); } } application.propertiesspring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=none spring.datasource.username=sagradleplugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '21' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' } tasks.named('test') { useJUnitPlatform() }MemberController.javapackage hello.hellospring.controller; import hello.hellospring.domain.Member; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping("/members/new") public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } @GetMapping("members") public String list(Model model){ List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } } 감사합니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 환경에서 h2 db 를 사용하는 경우 실용성에 대하여
테스트 환경에서 h2 메모리 db 를 사용하는 방식에 대한 실용성 관련 고민이 있습니다. 프로젝트를 진행하다보면 기본적으로 orm 기반으로 구현을 하지만 일부 예외적인 기능들은 특정 dbms 에 의존적인 쿼리를 직접 실행하는 경우가 불가피하게 발생하는 듯 합니다. 이 경우 특정 dbms(예를들어 mysql) 에 대한 의존성이 발생할 수 밖에 없는데요. 이때 운영 dbms 와 다른 메모리 db(h2) 를 사용하여 테스트를 작성하게 불가능해지고 결국엔 실환경과 동일한 테스트용 db 를 세팅하는식으로 다시 변경하게 되는 듯 합니다. (결국 메모리 db 를 이용한 간단한 테스트를 사용할 수 없는 상황) 실무적인 차원에서 이런 경우 보통 어떤 방식으로 해결하는게 최선일지 궁금합니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 소스 코드
현재 자바 기본편까지 듣고 스프링 입문 강의 수강 중입니다. 학업에 있어 건의드릴 사항이 있는데 강의 소스코드가 있었으면 좋겠습니다. 스프링 로드맵을 따라 쭉 공부할 예정인데 이 강의의 다음 강의인 스프링 핵심원리 기본편에도 강의 소스코드가 없는 것 같아 말씀드립니다.감사합니다.
-
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Spring Cloud Config 사용시 의존 문제
강의 잘 듣고 있습니다. msa를 현업에서 적용시키려고 하고있는데 질문이있습니다.Spring Cloud Config 가 가지고 있는 경로에 Database 연결 정보를 넣고 db를 사용하는 Micro service들이 해당 config서비스를 빌드시 참조하도록 설계해보았는데요,Spring Cloud Config service에 너무 의존을 하고 있는거 같단 생각이 듭니다.해당 서비스가 먹통이되면 다른 서비스 모두 db는 사용할 수 없다는 치명적인 이슈가 있으니까요. 현업에서 Spring Cloud Config 서비스를 구현할 때에 이렇게 크리티컬한 정보는 사용하지 않는지, 사용한다면 어떻게 의존성이 강한 문제를 해결 할 수 있는지 궁금합니다.
-
[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
controller, API controller차이
앞서서 만든 프로그램에apiContrioller가 있고 그냥 controller가 있었는데 이 둘의 차이가 궁금합니다. 또한 이미 만든 show,new,index등의 mustache들도 API controller로 만들수 있는거 아닌가요?(자바스크립트로 요청을 보낸다면)반대의 경우도 가능할까요?
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로드맵에서 알려준 첫 챕터강의를 보고있습니다.
그런데 정말 무슨 내용인지 잘 모르겠습니다. 자바 입문 교제 공부 를 끝내고 자바 웹 백엔드 공부를 하고 싶어서 찾아 보았는데 자바 웹 백엔드 공부를 하려면 스프링은 필수라고 하여서 수강 중인데 내용 이해가 잘 안됩니다. 이럴땐 일단 완강부터 한 후 에 다시 들어봐야 하나요 너무 힘듭니다.
-
실전! 스프링 데이터 JPA
SSR 시 HTTP Patch 메소드는 redirect를 수행할 수 없나요 ?
@RequestMapping(value = "blog/{blogId}/poster/{posterId}/edit", method = RequestMethod.PATCH) ResponseEntity<String> editPoster(@PathVariable(required = false) Long blogId, @PathVariable(required = false) Long posterId, @ModelAttribute PosterDto posterDto, Model model) throws URISyntaxException { categoryService.findCategoryAndAddToModel(blogId, model); posterService.updatePosterByDto(posterId, posterDto); String redirectUrl = "/blog/" + blogId + "/poster/" + posterId; System.out.println("redirectUrl = " + redirectUrl); // 리다이렉션을 원하는 경우 URI location = new URI(redirectUrl);// 새로 업데이트된 리소스의 URI 생성; return ResponseEntity.status(HttpStatus.SEE_OTHER).location(location).body("Resource updated successfully"); } 안녕하세요 JPA주제는 아니지만 아무리 찾아봐도 안떠서 여기에라도 질문을 올립니다..일단 제가 하고있는 프로젝트는 서버사이드 렌더링으로 타임리프를 사용하고있습니다.영한님의 MVC 강의 중 PRG(Post Redirect and Get) 기법을 사용하는 것을 보고 항상 Post method로 데이터를 수정하고 redirect 하는 컨트롤러를 만들었습니다.어느날 Patch 나 Put 이 데이터를 수정하는데 쓰이는 HTTP method라는 말을 듣고 Patch나 Put을 사용한 후 리다이렉트를 해줬는데 리다이렉트가 안되는 문제가 발생하였습니다.구글링을 해봐도 Patch 후에 redirect 하는 방법은 거의 나오질 않고 gpt한테 물어보니 저런 방법을 쓰라고 해서 썼지만 화면이 전환되지 않는 문제가 있었습니다.Patch method 는 redirect를 할 수 없는지 그렇다면 redirect 를 사용한다면 Post method 를 사용하는 것이 좋은지 궁금합니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요. 고민이있습니다.
자바 언어 공부 문법 전체적인 공부를 한번 마친 학생입니다. 스프링을 해야겠다 싶어 스프링 입문을 듣는데 듣는 도중 뭐지? 문법도 그렇고 잘 이해가 안가는 부분이 많습니다. 코드가 이해가 안가는 부분이 많기도 합니다. 이럴 경우 자바를 다시 한번 듣고 스프링으로 넘어 와서 들어야할까요?
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이클립스와 메이븐..
국비교육으로 현재 학원에서 수강중입니다.이제 곧 스프링을 배우게 되는데 학원에서는 이클립스 사용중이고빌드툴은 메이븐으로 사용한다고 하네요 미리 강의 듣고 공부를 좀 하려고 했는데학원 환경에 맞춰서 이클립스 메이븐으로 설정 맞추고 강의를 들으려고 보니까 패키지 구조도 약간 다르고처음에 환경 설정하면서 오류잡는데만 이틀을 보냈습니다. 그리고 스프링부트 없이 하다보니계속 조금씩 차이가 생기기도 하구요 그래서 그냥 혼자 공부할때만 인텔리제이+그래들로강의랑 똑같이 맞추려고 하는데 괜찮을지 모르겠네요. 가능하면 학원환경에 우선적으로 맞추고강의를 듣고싶었는데 생각보다 다른부분이 많아 고민입니다..타임리프 대신 jsp사용중이기도 하고이렇게 해도 이클립스+메이븐사용하는 학원수업에 지장 없을까요?아니면 어떻게든 이클립스+메이븐으로 가능한한 강의를 따라가는게 맞는지..
-
인프라공방 - 그럴듯한 서비스 만들기
학습방향 질문입니다
인프라에 대해 처음 공부하는 터라 막막함이 있어 강의를 수강하기 시작했는데요. 강의를 듣기 전 미션을 수행하려고 보니 네트워크와 리눅스 지식은 조금 있지만 도커나 was에 대한 학습 내용을 보니 저에게는 어려움이 다가왔습니다. 먼저 미션을 수행하기 전에 아래 도커공부를 먼저 하고 인프라 미션을 수행해야할까요?https://www.brainbackdoor.com/infra-workshop/docker-container
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 스프링 공부 방향과 로드맵
안녕하세요. 자바를 공부하고 있고 스프링 공부를 준비중인 대학 휴학생입니다.제 수준은 대학에 들어와 처음으로 컴퓨터공학이란 학문과 코딩에 입문하였으며 C언어와 자바를 배워 별찍기와 정말 간단한 예제를 풀었던 수준입니다. 아는 것도 별로 없고 궁금증도 많지만 조언을 구하거나 상담을 하며 도움을 받을 방법이 안 보여 인터넷에서 찾아보기를 반복했습니다. 계속해서 많은 정보만 쌓이다보니 길을 잃게 되었습니다.최근에 자바를 다시 공부하기 시작했습니다. 자바를 다시 공부를 하면 김영한님의 스프링 강의를 통해 공부를 해야지 하고 있었는데, 다시금 막힌 부분이 생겼습니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편스프링 부트와 JPA 활용 1,2스프링 데이터 JPAQuery DSL위 5개의 강의들을 스프링 완전 정복 로드맵에서 어느 강의들 사이에 듣는게 좋은지 궁금합니다. 가장 궁금한 부분은 스프링 완전 정복 로드맵을 시작하기 전 JPA를 먼저 공부해야하는지입니다.추가적으로 지금 목표하는 부분은 스스로 JAVA와 스프링으로 무언가를 할 수 있으면 좋겠습니다. 후에 대학생 수준으로 교내외에서 IT협업활동을 진행하고 싶은데 이때 자바와 스프링으로 백엔드, 서버, 웹 부분을 맡을 수 있는지 아니라면 어떤 부분을 할 수 있는지 또 이런 활동이나 동아리, 단체에서 위와 같은 부분을 담당할 수 있다면 김영한님의 로드맵 기준으로 어느 강의까지 들으면 가능할지 궁금합니다.수준 낮은 질문에 부끄럽고 죄송합니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
저번질문에 글올렸는데코드가더꼬인것같아요..
https://drive.google.com/file/d/19EdcpxnIZQKKAeCSlucWIrX8HVv4bCtf/view?usp=drive_link 머리아프네요..17강까지 잘되었습니다..
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB를 제외한 로드맵
안녕하세요, 현재 사지방에서 스프링을 공부하고있는 군인입니다.스프링 입문 편을 보면서 다른건 다 문제 없이 진행됐는데 h2 database를 활용하는 부분에서부터 막히게 됐습니다. 계속해서 방법을 검색하고 적용해봤지만 결국에 DB관련 파트는 포기하게됐습니다.앞으로 '스프링 완전 정복' 로드맵을 따라가고싶은데 DB이후의 강의인 '스프링 핵심 원리-고급편', '스프링 부트 -핵심 원리와 활용' 강의를 들을 때 DB를 활용하지 못하면 제약이 있거나 진행이 불가하게 되는지 궁금합니다!
-
실전! 스프링 데이터 JPA
Spring Data JPA로 Mysql Full Text Search 기술 가용여부 질문
안녕하세요 스프링 데이터 JPA 강의를 듣다 질문이 생겨 문의드립니다.토이프로젝트로 JPA를 사용하여 Mysql 전문검색(Full Text Search)를 해보는 중입니다. public interface JpaMenuReviewRepository extends JpaRepository<MenuReview, Long> { @Query(value = "SELECT * FROM menu_review WHERE MATCH (comments) AGAINST (:keyword IN NATURAL LANGUAGE MODE)", nativeQuery = true) List<MenuReview> findMenuReviewByCommentsContainingOnFullTextSearchWithQuery(@Param("keyword") String keyword); } JPA에서는 Full Text Search를 지원하지 않아서 nativeQuery로 다음과 같이 쿼리문을 작성하였습니다.그런데 전문검색을 위해서 Table의 컬럼에 Full index를 추가해야 전문검색 쿼리가 작동한다고 알고 있는데요,JPA의 해당 특징은 "JPA의 DDL 자동 생성 기능" 또는 "JPA의 스키마 자동 생성 기능"으로 알고 있습니다.이 기능은 JPA가 애플리케이션의 Entity 클래스를 분석하고, 이를 바탕으로 데이터베이스 스키마를 자동으로 생성하거나 업데이트하는 역할을 하여 @Entity, @Table, @Column 등의 애노테이션을 사용하여 엔티티 클래스를 정의하면, JPA는 이 정보를 바탕으로 필요한 테이블과 컬럼을 데이터베이스에 생성하는데요,이럴 경우에는 제가 "ALTER TABLE tbl_query ADD FULLTEXT INDEX FullText (`comments` ASC)" 해당 ddl문을 넣을 수 없어서 곤란한 상황입니다. JPA, Mysql에서는 Full Text Search를 사용할 수 없는 건가요? 차선책으로 Elastic Search, Postgre, Mongo를 구상중인데 차선책으로 우회해야할지 고민입니다.추가로 실무에서는 전문검색 기능을 위해 어떤 방법을 쓰시는지, 관련해서 문의드리고 싶습니다.강의내용과 동떨어져 있는 질문이라 죄송합니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 공부방법 질문
현재 스프링 완전정복로드맵을 들어가기전 스프링 입문 강의를 듣고있는 수강생입니다. 수업하나하나 들을때마다 코드하나하나 따라치는거밖에 못하고 실제로 강의끝나고 이걸복습하자니 어디서부터 해야할지도 모르겠습니다. 제가 spring을 처음접해서 그런거일수도있는데 이렇게 코드만 따라치는게 맞는지 공부하는 느낌이 안들고 의구심이 들어서 질문해봅니다 ㅠㅠㅠ 처음 말씀해주신 목표는 전체적으로 어떻게 돌아가는지, 동작하는지를 이해하는게 포인트라고 하셨는데 다행히 이부분에서는 구글링으로 부족한개념들을 메꾸면서 도달할수는 있을거같습니다. 하지만 위에서 적었다싶이 코드를 하나하나 이해하고 따라치는데는 한강의를 듣는데 4~5시간이 소요되어 실제로 완강을 하기에는 2주가 넘는시간이 소요됩니다.. 그래서 조언을듣고싶습니다
-
스프링 배치
5버전 강의는 계획에 없으신가요?
강의보며 공부하며 현업에 적용하려고 개발중인데 spring batch 5.1 이 나왔네요.. 5버전 강의는 계획에 없으신가요?
-
장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
서킷 브레이커 상태 OPEN 전환의 기준 질문드립니다!
안녕하세요! 좋은 강의 제공해주셔서 도움이 많이 됐습니다! 수강 후 서킷 브레이커를 프로젝트에 적용해보는 과정에서 궁금한 점이 있어 질문드립니다. 현재 캐시 서버에 서킷 브레이커를 도입해서 장애 발생 시 DB로 우회하도록 구현 했습니다.여기서 만약 레디스 클러스터를 구축한다면 Master 노드 다운 시 Replica가 새로운 마스터로 승격되면서 Failover가 일어날텐데요! 이때 1. Master와 Replica가 서로 health check를 하는 시간의 timeout 2. 승격이 일어나는 시간3. Redis Cluster의 Topology를 refresh 하는 주기(현재 Redis Client로 Lettuce를 사용중입니다!)이 시간 동안은 Redis로 정상 요청이 되지 않을 것입니다.저는 개인적으로 레디스가 자동으로 Failover 되는 과정은 스스로 회복하는 시간이기에 서킷이 OPEN되야하는 상황으로 보기 힘들다 생각하는데, 서킷의 슬라이딩 윈도우를 설정할때 Failover 동안은 OPEN이 열리지 않을 정도로 여유롭게 설정하는게 좋을까요? 물론 구체적인 값은 트래픽을 예상해서 설정해야 한다고 생각합니다! 결론은, 클러스터의 Failover도 장애로 감지하고 OPEN으로 여는게 좋을지 아니면 Failover는 CLOSE 상태로 넘어갈 수 있도록 여유롭게 설정하는게 좋을지 입니다!아직 실무 경험이 없기도 하고 주변에 의견을 구할수가 없어서 현업자의 입장에서 강사님이라면 어떻게 구성하실지 궁금해서 여쭤봅니다...!! 혼자 고민해본 부분이다 보니 제가 생각하는 방식이 틀렸다면 피드백 주시면 감사합니다:)
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로드맵 이수 이후 공부 방향성
안녕하세요. 현재 자바 공부 중이고, 이후 김영한 강사님의 자바 스프링 완전 정복 시리즈 로드맵을 이수할 계획입니다.개인적으로 공부하다보니 공부 계획을 정할때 공부할 과목과 순서도 잘 모르겠고, 얼마나 깊이 공부해야 할지도 감이 안와 고민이 많습니다.일단 저의 1차적인 공부 목표는 다른 분들처럼 개인 또는 팀 프로젝트에 백엔드 개발자로 참여할 수 있는 수준의 지식을 쌓는 것입니다.해당 스프링 로드맵 이수를 하고 나면 프로젝트에 지원해도 될까요? 만약 아니라면 이후에 무엇을 공부해야 할까요?데이터베이스, API 등은 로드맵에 포함이 안되어있나요? 개인적으로 찾아보고 알아보기도 했지만, 용어들이 대체로 생소하다보니 어렵습니다.. 쓰고 보니 질문에 무지함이 드러나는 것 같아 부끄럽고 죄송하지만 막막한 마음에 일단 여쭤봅니다. 읽어주셔서 감사합니다.
-
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
사내에서 Kotlin 으로 전환하면서 ORM 기술 선택에 고민이 있습니다.
안녕하세요 강사님.강사님의 코틀린 기본강의를 수강후 해당 강의도 이제 거의 다 들어갑니다. 가장 우선적으로, 이렇게 좋은 강의를 만들어주셔서 정말 감사합니다 🙂 현재 제가 다니는 회사에서 자바-스프링 기반의 프로젝트를 코틀린-스프링으로 전환하는 작업을 진행하고 있습니다. 그러면서 기술들을 선택하는 과정가운데 있는데요, ORM 기술을 어떤것을 쓸지 고민중입니다. 저는 개인적으로 자바-스프링을 통해 어플리케이션을 개발할 때, 현재 듣는 강의와 같이 Spring Data Jpa 와 Querydsl 을 함께 썼었고 익숙했는데요.. 문제는 Querydsl 이 2021년 이후로 업데이트가 없다는 점입니다. 팀 내에서도 그 문제로 인해서 여러가지 고민을 가지고 있는데요... Querydsl 을 사용할지 Exposed 를 사용할지 아니면 jdsl 을 사용할지 고민중에 있습니다. 현재 저희는 Springboot 3.x 로 올리면서 앞으로도 계속 기술을 최신화 하면서 유지할 생각인데요, querydsl 이 릴리즈가 지속되지 않는 점이 가장 걸리고, 앞으로의 대응도 어려울것같아서 기술 선택에 많은 고민을 하고있습니다.. 강사님께서도 실무에서 개발을 하고 계시는 분이시고, 코틀린으로 어플리케이션을 만들고 계시는 분이시기에 여쭙고 싶었습니다. 어떤 기술을 선택해서 사용하고 계시는지, 만약 Querydsl 을 계속 사용하고 계시다면 실무에서 문제없이 사용중이신지.. 아니면 다른 기술을 사용중이신지 (혹은 현재는 querydsl 이지만 다른 기술로의 전환을 고민중이신지) 궁금합니다!