한 달 전 · Jin 님의 새로운 답변
JPA+QueryDSL vs MyBatis
백엔드 개발자가 되고 싶어서 스프링을 공부하고 있는 학생입니다. 스프링을 공부하다 보니 DB 연결에 대해서 더 공부하고 싶어져서 두가지 중 한가지를 우선적으로 공부하려 하는데 선배님들의 조언 부탁드립니다. 스프링은 당연히 JPA를 쓰는 줄 알았는데 현업에서는 아직도 MyBatis를 사용하는 곳이 많다고 들어서 어느 것을 선택해야할지 고민이 됩니다. 한가지만 하고 나머지는 버리는게 아니라 한가지를 집중적으로 공부하여 제 핵심역량으로 만들고자 하는 바입니다.
투표
개발자
#백엔드
#db
#jpa
#querydsl
#mybatis
답변 1
댓글 0
추천해요 1
조회 233
일 년 전 · 이양일 님의 답변 업데이트
JPA를 사용해서 부모(1)와 자식 목록(N)을 가져올 때 쿼리를 2번 발생시키나요?
안녕하세요. JPA와 QueryDSL을 사용하여 개발을 하고 있는 홍길동입니다. 예를 들어 상품 테이블(부모)과 옵션 테이블(자식 목록) 정보를 조회하는 service에서 쿼리를 보통 2번 발생시키는지 궁금합니다. 저는 부모 조회 쿼리 1번, 자식 목록 조회 쿼리 1번 총 2번의 쿼리를 발생시키고 있습니다. 다른분들은 현업에서 부모와 자식의 데이터를 가져와야 하는 경우 쿼리를 몇번 발생시키는지 궁금합니다.
개발자
#jpa
#자식데이터-조회
답변 1
댓글 0
추천해요 1
조회 519
일 년 전 · 박정환 님의 답변 업데이트
Querydsl + MyBatis 조합
지난 프로젝트에서 Querydsl 만 사용해서 프로젝트를 진행했었습니다! 그런데 아무래도 JPQL 빌더이다 보니 Querydsl 만 사용하는 쿼리 작성에 한계가 보이기 시작했었는데.. 제가 너무 욕심이 과해서 너무 한방 쿼리를 날리려고 한 걸 수도 있지만 그럼에도 최소한의 집계쿼리를 포함해서 쿼리를 작성하고자 했는데 join으로도 해결이 안 되더라고요…. 그래서 결국은 쿼리를 쪼개서 보내고 애플리케이션 계층에서 자바 코드로 조합하는 형태로 완성은 하였지만 Querydsl 을 작성하기 전에 SQL로는 순조롭게 작성이 된 코드가 Querydsl 로 옮겨지지 않는다는 게 조금은 속상하더군요….제가 미숙해서 못한 것도 있을 수 있겠지만 그래도 Querydsl 로 SQL을 100% 활용할 수 없다는 게 조금은 불편하다고 생각이 들었습니다! 이전에 듣기로는 JPA만으로는 모든 쿼리를 처리할 수 없기 때문에 JdbcTemplate 나 MyBatis 를 함께 사용하는 경우가 있다고 들어본 기억이 있습니다! 실제로 실무에서도 JPA와 다른 SQL 매퍼를 조합해서 사용하는 경우가 많을까요?? CUD 작업은 JPA가 너무너무 편리하고 좋은데.. 조회에 있어서는 역시 MyBatis 나 JdbcTemplate 를 사용해 보는 것이 괜찮은 방법인지 궁금합니다!!
개발자
#jpa
#querydsl
#mybatis
#jdbc
#sql
답변 1
댓글 0
추천해요 1
조회 217
2년 전 · 임동규 님의 답변 업데이트
주니어 백엔드 개발자 고민
안녕하세요. IT스타트업에 입사한지 5개월 된 신입 백엔드 개발자 입니다. 현재 제 상황 바탕으로 커리어를 어떻게 해야할지 고민하고 있는 중입니다. 지금까지 회사 상황을 정리해봤으며, 질문은 마지막에 있습니다. 꼭 해당 질문에 대한 답이 아니더라도, 제 상황에 대해서 말씀해주실 부분이 있다면 자유롭게 답글 주시면 감사하겠습니다. # 회사 이야기 - 백엔드 기술 스택 : Kotlin, Spring boot, MariaDB, Mybatis, Kafka - 입사한 이후로 지금까지 계속 코드 품질, 개발 생산성 개선보다는 일정 압박받으며 API 찍어내기 바쁨. (백오피스 개발 프로젝트 진행중) ## 기술 - 코드리뷰 없음 - dev 브랜치에 바로 커밋&푸시 - 먼저 물어보지 않는 한 피드백이 거의 없고, 팀원분들 항상 바빠서 자주 물어보기도 어려웠음 - 테스트코드 없음 - 백엔드 팀원 개개인이 포스트맨으로 테스트함 - 스펙 A or 기능 A 가 수정된 이후에 기능 B 가 영향받는지 여부를 사람의 기억력에 의존하고, QA 나오면 그때 문제점을 인지함. (기획,운영팀분들이 QA로 못 찾으면 문제점 인지 못함) - 개발팀장님께 테스트 코드 작성을 건의했으나, 시간 부족과 잦은 기획 변경을 이유로 반려됨. - Mybatis 사용 - 원래 JPA, queryDSL 이었으나, raw 쿼리문을 써야 쿼리 최적화를 잘 할 수 있다는 이유로 대표님이 도입 - 개발 생산성이 저하됨 - REST API 변형 - 대표님께서 보안 강화를 위해서 모든 API 요청은 POST로 보내되, end point 를 get-staff-profile 이런 식으로 작성한다고 통보함 ## 소통 - 비합리적인 일정 - 개발자 의견 반영 없이 경영진이 일방적으로 결정 - 그래서 야근할 수 밖에 없는 상황이 생기고 “항상” 일정이 미뤄짐. - 개발자들이 여러번 항의했으나 의견 반영 안 됨, 개발팀장님이 경영진이랑 대화가 안 된다고 포기한 상태 - 기획팀 소통 비용이 높음 - 피그마 UI 보면서 개발 중인데, 기획의도가 구체적으로 드러나지 않아 직접 메신저로 물어보거나 이후에 QA 올라와서 의도를 깨달음. # QnA 1. 경력 초반에 성장하고 싶은데, 이 회사에서 백엔드 쪽으로 잘 배우고 좋은 문제 해결 경험을 할 수 있을까요? 이 회사에서 제가 무엇을 할 수 있을까요? 2. 이직을 생각해야할까요? (1년 미만 경력이라 고민됩니다.)
개발자
#백엔드
#주니어
#이직고민
#스타트업
#개발자
답변 1
댓글 1
추천해요 1
조회 456
2년 전 · 익명 님의 질문
쿼리dsl 에서 union을 사용가능한지
안녕하세요 현재 union이 필요한 상황입니다. 쿼리dsl을 사용하고 있어서 통일성있게 개발하면 좋을 것 같은데 구글에 검색 결과나 gpt 답변 내용이 모호합니다. 된다는 건지 안된다는 건지.... 저는 안됩니다. 현재 상황은 스프링부트 프로젝트에서 쿼리dsl을 사용하고 있구요 그래들 세팅도 잘 들어가 있습니다. implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta" 그런데 다른 사람은 .union() 메소드가 활성화 되는데 저는 ide 상에서 잡히질 않네요... 뭐가 문제 일까요 혹은 사용할 수 없는걸까요? 참고 링크 남깁니다. https://github.com/querydsl/querydsl/blob/8f96f416270d0353f90a6551547906f3c217833a/querydsl-sql/src/test/java/com/querydsl/sql/UnionBase.java#L73
개발자
#java
#spring-boot
#querydsl
답변 0
댓글 0
조회 493
2년 전 · 커리어리 AI 봇 님의 새로운 답변
무한스크롤 No offset 방식 index지정에 대해 질문이 있습니다
안녕하세요 현재 스프링부트 querydsl로 무한스크롤을 구현하면서 no offset을 적용하고 있습니다.정렬 방식에는 최신순과 마감순이 있는데 최신순은 pk를 오토인크리먼트로해서 사용하면되서 괜찮은데 문제는 마감순입니다. - 마감순정렬조건은 기존에 pk가 오토인크리먼트방식이고 정렬 조건과도 무관해 pk말고 정렬조건이되는 컬럼을 index로 설정을 하려고 합니다! 따라서 마감일로 입력받은 컬럼을 사용하려고 합니다 - 그런데 No offset이 클러스터 인덱스 방식을 쓰기때문에 속도면에서 이점이 있다고 알고 있습니다! - 따라서 클러스터 인덱스를 생성하려면 unique index로 해야하는것 같습니다. 이때, 위에 말씀드린것 처럼 정렬조건이 되는 컬럼을 마감일column으로 잡으려고하는데 이게 unique하지 않을수 있다고 생각이 됩니다(시간이라 중복값이 있을수 있다고 생각) - 따라서 이를 위해 마감일컬럼+pk로 회야할지 아니면 ms초까지(sql은 없고 서버로 받아서) 받아서 datetime이 아닌 varchar타입으로 해야할지 고민이 됩니다! 여기서 제가 착각하고 잘못된 제안을 하고 있는부분이 있는지 아니면 다른 좋은 방법이 있는지 선배님들의 고견을 듣고 싶습니다!
개발자
#springboot
#no-offset
#무한스크롤
#mysql
#querydsl
답변 1
댓글 0
추천해요 1
조회 223
2년 전 · 홍길동 님의 질문
tibero db를 사용하고 있는데 jooq(주크) dsl 사용 가능한가요?
tibero db를 사용중이고 현재는 jpa querydsl을 사용중인데 jooq도 사용할 수 있을까요? Tibero db를 지원하는지 찾아봐도 안나오네요…
개발자
#jpa
#jooq
#querydsl
답변 0
댓글 0
조회 122
2년 전 · 커리어리 AI 봇 님의 새로운 답변
JPA 다이나믹 쿼리 파라미터 DTO 사용?
항상 선배님들의 답변으로 큰 도움을 얻고 있습니다! JPA queryDsl을 사용한 다이나믹 쿼리 생성시 코딩 패턴에 대한 질문 드리고 싶습니다. 제가 작업할 땐 보통의 자바사용법(?) 처럼 DTO를 사용해서 처리하고 있습니다. 근데 서칭을 하다보니 저와 같은 패턴은 잘 없고 파라미터에 필요한 만큼 변수를 받아 사용하시더라구요? where 문도 저처럼 한꺼번에 메소드로 만들어서 사용하시지 않고 컬럼 조건 하나당 하나씩 만드셔서 그걸 전부 명시 하는 것 같은데 혹시 문서 작성에 정형화 된 코딩 패턴이 있다면 공유 부탁드립니다. 아래 참고 링크 입니다. https://velog.io/@hyunho058/QueryDSL-Where%EC%A0%88-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0
개발자
#java
#jpa
#querydsl
답변 1
댓글 0
조회 120
2년 전 · 커리어리 AI 봇 님의 새로운 답변
이직 준비를 위해 포트폴리오로 작성할 토이 프로젝트를 개발했습니다
5년차 스프링 백엔드 개발자입니다 재직하고 있는 팀 성향과 맞지 않아 이직을 위해 토이 프로젝트를 준비했습니다 사용된 기술 스택은 spring, kotlin, spring data mongoDB 및 querydsl로 개발하였고, 프론트 부분은 vue.js로, 배포는 docker, github actions와 elastic beanstalk로 ci/cd를 구축했습니다 프로젝트의 내용은 riot games의 TFT 게임을 플레이할 때 전략을 지원하는 웹 애플리케이션 개발입니다 원래는 현재 개발된 것보다 좀 더 고도화된 형태로 포트폴리오에 추가하려 했는데, 지인분과 상담했을 때는 그만하면 됐다 하셔서 여기서 멈추고 public url과 github 주소, 그리고 포트폴리오 제출까지만 진행하려 합니다 그런데... 포트폴리오에 어떤 것을 작성해야 좋을지 잘 모르겠습니다 개발한 애플리케이션의 화면 동작 등을 간단하게 소개하면 될까요? 자신이 신경써서 코딩한 코드 일부를 보여주면 될까요? 전체적인 흐름도나 다이어그램 등을 보이면 될까요? 무엇보다 과연 경력자가 회사에서 진행한 자신의 업무로 어필을 하는 것이 아니라, 이런 토이 프로젝트로 어필을 하는 것이 얼마나 효과가 있을지도 의문입니다 하지만 재직중인 현 회사는 주로 spring, java, jpa, mysql 외에 그다지 기술을 깊이있게 쓸 줄 아는 회사가 아닙니다 최대한 이력서에 작성하겠지만, 이곳에서 개발한 경력이 그다지 어필이 되진 않을 것 같아요... 최근 같은 회사 다니다 먼저 이직하신 분이 자신이 있는 곳으로 이력서 제출해보라 권장하십니다 무난하게 합격하실 거라 하셨는데, 그분과 일하는 것이 싫지는 않지만 기왕 이직하는 거 저는 좀 더 욕심을 내고 싶어서, 제가 가진 역량을 최대한 어필할 수 있었으면 합니다 5년차의 실력이라기엔 부끄럽지만, 이력서에 담긴 것만이 제 전부는 아니라서 너무 아쉽습니다 포트폴리오의 작성법, 그리고 이런 포트폴리오가 얼마나, 또 어떻게 어필이 될 수 있을지 이 TFT 게임을 모르는 사람에게는 어떻게 어필할지(TFT 게임이 무엇인지부터 설명해야 하나...) 아직 빌드업중인 프로젝트라 군데군데 부족한 부분이 많은데, 좀 더 완성도를 높여야 할지 조언 부탁드립니다 아래는 지금까지 개발 진행한 github과 배포된 웹 애플리케이션, 작성중인 포트폴리오 url 공유드리겠습니다 [github] https://github.com/jae2274 [애플리케이션 url] http://tftgamingweb-env-3.eba-bghxnbum.ap-northeast-2.elasticbeanstalk.com/view/guide [포트폴리오] https://docs.google.com/presentation/d/13Yri8YqQjAZfKIe-_dH61ezjqc2AIgwmfo4CLReC_WI/edit?usp=sharing
개발자
#이직고민
답변 1
댓글 0
추천해요 1
조회 1,654
2년 전 · 프레드윰 님의 새로운 답변
분야 전향(devops>fullstack) 및 풀스택 커리큘럼
안녕하세요 만23세 주니어입니다. 제가 하고싶은분야는 풀스택쪽인데 생계사유상 입사를 devops로 오게 되었습니다. 입사한지 2주, 파견근무로 atlassian 유지보수를 하는 업체입니다. 아직 판단하기엔 조금 이르지만 그래도 지냇던 2주만큼은 이회사가 회사 운영방식이나 분위기에있어서 좀 맘에 들었고 아무래도 그전에 다녓던 회사들이 물경력에 1년넘는기간이없엇어서 이번회사는 좀 오래 다니고 싶습니다. (vb 2개월, ubuntu(filecoin) idc 유지보수 10개월(주)+react 2개월(부), skt네트워크망 관제 사무직 6개월, 건설안전교육기관 5개월) 다만 우려돼는건 나중에 원래하고싶었던 풀스택으로 전향할때 연봉이나 경력을 초기화해서 다시 신입으로 들어가야 하는건지 아니면 소폭감소나 유지되는지 모르겟어서 이부분좀 알려주시면 좋겟습니다. 또 activex쪽 개발햇던 4년차 지인분이 웹개발 관련해서 해당 커리큘럼을 추천해주셧는데 여기서 보완, 가감할점은 없는지 피드백부탁드립니다. 2021년 기준 1. 모든 개발자를 위한 HTTP 웹 기본 지식 / 김영한 2. 스프링 핵심 원리 - 기본편 / 김영한 3. 스프링 MVC 1편 -백엔드 웹 개발 핵심 기술 / 김영한 4. 자바ORM 표즌 JPA 프로그래밍 - 기본편 / 김영한 5. 초보를 위한 도커 안내서 / subicura 6. 실전! 스프링 부트와 JPA 활용1 - 웹 애플리캐이션 개발 / 김영한 7. 실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 / 김영한 8. 실전! 스프링 데이터 JPA / 김영한 9. 실전! Querydsl / 김영한 10. DDD-START / 최범균 - ISBN 9788993827446 11. AWS 강의실 / 유튜브 12. Route53 / 생활코딩 13. 스프링 핵심 원리 - 고급 / 김영한 14. ELK 스택으로 데이터 분석 / 허민석 15. 아파치 카프카 for beginners / 데브원영 16. Spring Boot JWT tutorial / 정은구 17. The Red : 비즈니스 성공을 위한 Java/Spring 기반 서비스 개발과 MSA 구축 / 이희창 18. 새차원의 코틀린 / 새차원 19. Kotiln으로 개발하는 Spring Boot Web MVC / 예상국 20. 새차원의 코루틴 / 새차원 21. 코틀린 마이크로서비스 개발 / 후안 안토니오 메디나 이글레시아스 - ISBN 9791161752556 그리고.. react를 하긴햇는데 정작 이번에 취업할때보니 신입기준으로 react보단 vue가 더 많이보이더라고요. 그냥 vue를 하는게 나을까요? 어차피 js기반이니 둘다 상관없을까요?
개발자
#devops
#fullstack
답변 1
댓글 0
추천해요 1
조회 452
2년 전 · 송요창 님의 답변 업데이트
기획자를 하다가 개발자 전향해요
공대를 나와서 솔루션, 서비스기획, 에이전시 모두 경험하며 KB 프로젝트의 PM까지 진행하며 잘나갔던 6년차 과장에서 개발자로 전향하는 단계에요. 처음에는 개발자로 취업했었지만 SM성격의 좋소였기에 9개월만에 나왔고 기획자로 전향했는데 시니어급이 되고나서 프로젝트의 키를 잡고 감에있어 개발방향에 대한 견해를 내놓으면 개발도 모르면서 개발을 이야기하지말라는 소릴 많이 들었어요.. 분한 와중에도 불가능한 자동화를 원하는 현업 또는 사업부서를 컨트롤 하며 자부심을 느꼈지만 결국 개발자가 아닌 기획자는 미운오리새끼 취급이었고 잠시 서서 옆을 보니 같이 달리는 기획자들이 디자이너, 사업부 출신이라는 것에 심한 현타를 느꼈답니다.. 국비지원으로 자바, 스프링부트를 배우면서 게시판 3가지 버전(jpa/querydsl/mybatis), 이후 책 예제를 보지않고 자바스크립트로 토이프로젝트로 심리테스트 사이트, 팀프로젝트로 ERP 회계인사관리로 공통과 메인, 회계전표, 로그인(jwt, spring security) 구현했고 하다보니 메모리관리나 이벤트 리스너를 통한 효율적인 개발방법이 필요하겠다싶어 이벤트리스너에 대해 알아보다가 급 NodeJS를 공부하고있어요. 기획자로 돌아갈 생각이없고 나이가 35살이다보니 정말 절박하리만큼 신입새발자로써의 필요한 역량 또는 익혀야할 지식 등 선배님들의 조언이 필요합니다. 노션에 공부내용을 적고(누구보라는 식으로 적은게 아닌 연습장식), 깃허브에는 3달째 하루1커밋 목표로 잔디심고있어요! 하지만 이 외에 제가 뭘더 준비를 하면 좋을까요...?ㅑ
개발자
답변 1
댓글 1
추천해요 6
조회 1,051