본문 바로가기

분류 전체보기

(308)
[Data JPA] delete구문에서의 Batch https://goto-pangyo.tistory.com/218 1. data jpa가 제공해주는 deleteAll에 대한 의문점 (컨트리뷰션 실패) 두번째 컨트리뷰션 도전입니다...! 아직 한발 남았다.. 남은 한발이 불발탄인줄은 몰랐습니다.. 이미 deleteAll로 하였을 경우 단건씩 나가는 문제를 해결한 메소드인 delete batch가 있다고 합니다... goto-pangyo.tistory.com 제가 이전에 느낀 불편한 점에 대한 컨트리뷰션을 준비하면서 배운것이 있어 글로 작성하고자 합니다. 위의 링크는 컨트리뷰션을 준비하며 작성한 글입니다. 해당 게시글을 요약하자면 data jpa를 통해 여러건을 한번에 지우고자 할때 deleteAll은 한건씩 삭제한다. 그렇기에 deleteBatch를 사용..
3. data jpa가 제공해주는 deleteAll에 대한 의문점 (컨트리뷰션 실패) 요약이미 deleteAll로 하였을 경우 단건씩 나가는 문제를 해결한 메소드인 delete batch가 있다고 합니다...그래도 덕분에 배치에 대해 배웠습니다.계기해당 컨트리뷰션에 도전하게된 계기는 다음과 같습니다. 23년 여름 현장실습을 하며 업무들을 쳐내고 있었습니다. 당시 저는 여러개의 엔티티를 한번에 지워야 하는 삭제 쿼리를 개발하여야 했습니다. 저는 data jpa가 제공해주는 막강한 기능(막강한 최적화)만을 믿고 삭제 기능을 구현하고 테스트 하였습니다. 그러나 실제로 나가는 쿼리를 보니 삭제해야 할 엔티티를 모두 조회하고 한번에 삭제를 하는 것이 아닌 단건씩 삭제가 되었습니다.사실 당시 진행하고 있던 프로젝트는 사내 업무를 보조하는 성격의 프로그램이였기에 단건씩 삭제가 되든 한번에 삭제가 되든..
2. 컨트리뷰션을 해보기 이전 준비해야 할 것들 (컨트리뷰션 실패) 이전 글 에서 불연득 컨트리뷰션을 해보기 위해 마음을 먹고 방법을 찾아보았습니다. 그리고 다행이도 컨트리뷰션 가이드가 있어 해당 가이드를 따라하고자 합니다. 아래는 제가 하고자 하는 컨트리뷰션의 대략적인 개요를 파파고의 힘을 빌려 작성한 이슈입니다. 가이드에서 안내하는대로 하였으니 이제는 기다리는것 말고는 할게 없습니다...! (제가 제안한것에 대해 시원하게 okay 라고 해주세요 ㅠㅠ 사실 이게 안된다면 삭제 쿼리 관련하여 개선할것도 한발 남아있기는 합니다ㅎ..) 수정 그럼 기능은 필요없다고 돌려말해주셨습니다..ㅠㅠ 그래도 삭제 쿼리가 하나씩 나가는 문제점이 아직 남아 있으니 이 것에 대해 다시 한번 더 컨트리뷰션을 시도하고자 합니다...
1. exists + All 관련한 오래된 의문 (컨트리뷰션 실패) https://goto-pangyo.tistory.com/189 Data Jpa의 exists에 대한 고찰 현상 현장 실습중 인자의 리스트의 값이 DB에 모두 있어야만 True가 반환되는 로직을 구현해야 할 일이 생겼다. 나는 현장실습에서 사용중인 data jpa를 통해 해당 로직을 구현하였다. 나는 다음과 goto-pangyo.tistory.com 컨트리뷰션을 해볼까하고 마음먹은 계기는 제가 이전에 쓴 글에도 나와있지만 반년정도 지난 지금 다시 생각을 해보면 다음과 같습니다. 웹 개발을 하며 특정 테이블에 특정 값이 모두 존재하는지 확인하는 로직이 필요한 상황이 종종 필요할듯합니다. 이는 지극히 개인적인 생각이지만 아무렴 어떤가 이러라고 컨트리뷰션이 있지않은가! 처음 이 불편한 점을 발견하였을당시는 현..
백준 20442 ㅋㅋ루ㅋㅋ (파이썬) https://www.acmicpc.net/problem/20442 20442번: ㅋㅋ루ㅋㅋ 어떤 문자열에서 몇 개의 문자를 지워서 부분 수열을 만들 수 있다. 예를 들어, ABC의 부분 수열은 ABC, AB, BC, AC, A, B, C와 빈 문자열이다. www.acmicpc.net 풀이 문제를 처음 보았을때 DP를 이용해 문제를 푸는건가 싶어 이리저리 생각을 해보았지만 마땅한 해결책이 나오지 않아 다른 분이 푸신 것을 참고하여 풀었습니다. 참고한 블로그 글 해당 문제는 투 포인터를 이용해서 푸는 문제였습니다. 그러나 저는 투 포인터에 대해 몰랐기에 나동빈님의 강의 영상을 보고 투 포인터에 대한 개념을 잡고 다른 분이 푸신 것을 참고하여 이해하고 풀었습니다. 강의 링크 이미 참고한 블로그 글에서 자세히..
백준 1493 박스 채우기 (파이썬) https://www.acmicpc.net/problem/1493 1493번: 박스 채우기 세준이는 length × width × height 크기의 박스를 가지고 있다. 그리고 세준이는 이 박스를 큐브를 이용해서 채우려고 한다. 큐브는 정육면체 모양이며, 한 변의 길이는 2의 제곱꼴이다. (1×1×1, 2×2×2, www.acmicpc.net 풀이 직사각형 박스에 주어진 정육면체 큐브들을 채워넣는 문제입니다. 처음 문제를 접하였을때 부피로 어떻게든 풀어야 겠다고 생각은 하였지만 어떻게 해결을 해야할지 고민을 하였지만 구현을 하기 까다로운 문제였다고 생각합니다. 제가 처음 접근한 방식은 주어진 상자에 주어진 큐브들을 정해진 갯수만큼 채워넣고 남은 부피를 갱신시켜 가며 풀고자 하였지만 구현으로 옮길 자신이..
백준 21277 짠돌이 호석 (파이썬) https://www.acmicpc.net/problem/21277 21277번: 짠돌이 호석 DIY(Do It Yourself)는 호석이가 제일 좋아하는 컨텐츠이다. 이번 DIY는 동네 친구 하늘이랑 각자 직소 퍼즐을 하나씩 맞춰보기로 했다. 두 개의 퍼즐은 각자 N1 행 M1 열과 N2 행 M2 열의 격자 형태 www.acmicpc.net 풀이 구현 문제이다. 그러나 회전한다는 점을 생각하는게 까다로웠다. 그러나 풀이 자체는 그리 어려운 편이 아니다. 아래의 글을 참고하여 풀었다. https://ongveloper.tistory.com/526 백준 21277 짠돌이 호석 Kotlin (완전탐색) 문제 출처 : https://www.acmicpc.net/problem/21277 21277번: 짠돌이 호..
01 협력하는 객체들의 공동체 시너지를 생각하라. 전체는 부분의 합보다 크다. 우아한 테크 코스에 떨어지고 객체지향이라는 패러다임을 제대로 공부하고자 기록합니다. 01장에서는 객체지향프로그래밍이라는 개념을 짚고 넘어가는 장이였다고 생각합니다. 목차에는 다음과 같이 이루어져 있습니다. 이 중에서 제가 인상깊게 읽은 부분은 아래와 같습니다. 역할과 책임, 협력 관점에서 본 객체지향 여러 객체가 동일한 역할을 수행할 수 있다. 역할은 대체 가능성을 의미한다. 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다. 하나의 객체가 동시에 여러 역할을 수행할 수 있다. 책에서 제시한 내용은 대체로 그동안 무의식적으로 사용하고 있던 추상화, 다형성, 캡슐화의 의미를 풀어서 설명했다고 생각합니다. 그렇기에 그동안 한마디로 사용하고 있었지만 ..
백준 22870 산책(large) (파이썬) https://www.acmicpc.net/problem/22870 22870번: 산책 (large) 코로나로 인하여 확찐자가 되버려 오늘부터 산책을 하려고 한다. 이를 위해 산책할 경로를 정하려고 한다. 현재 있는 곳 $S$에서 출발하여 $S$와 다른 곳인 $E$를 찍고 다시 $S$로 돌아오는 경로로 www.acmicpc.net 풀이 이 문제는 다익스트라를 응용해서 푸는 문제이다. 문제에서 요구하는 풀이방법은 "시작 정점 ~ 도착 정점"과 "도착 정점 ~ 시작 정점"의 최소 경로가 서로 겹치면 안된다 이다. 이를 차근차근 풀어서 설명하면 다음과 같다. 다익스트라 알고리즘을 통해 출발점 S에서 도착점 E까지 가는 최소 경로(dist_s)와 도착점E부터 출발점 S까지 가는 최소경로(dist_e)를 구한다...
1장 객체, 설계 주요 키워드 자율성 캡슐화 응집도 객체지향 책임의 이동 의존성 의인화 데이터, 프로세스 해당 장에서 제시하는 코드는 "자율성", "책임", "응집도"등 모든 면에서 객체지향스럽게 작성하지 않은 코드들입니다. 즉 해당 코드에서 나타나는 여러 문제점들을 차차 수정해나가며 공부를 해나가도록 저자는 유도를 하고 있습니다. 그리고 저는 이를 따라가고자 합니다. 1장에서 구현한 프로그램은 티켓을 판매하는 프로그램으로 UML은 다음과 같습니다. 그리고 이러한 UML을 바탕으로 구현한 코드는 다음과 같습니다. public class Theater { private TicketSeller ticketSeller; public Theater(TicketSeller ticketSeller) { this.ticketSelle..