본문 바로가기

전체 글628

저장 프로시저 (SP) 개념 뿌수기 사용 이유 먼저, SQL Server의 성능을 향상 시킬 수 있다. 저장 프로시저를 처음에 실행하면 최적화, 컴파일 단계를 거쳐 그 결과가 캐시(메모리)에 저장되게 되는데, 이 후에 해당 SP를 실행하게 되면 캐시(메모리)에 있는 것을 가져와서 사용하므로 실행속도가 빨라지게 된다. 그렇기 때문에 일반 쿼리를 반복해서 실행하는 것보다 SP 를 사용하는게 성능적인 측면에서 좋다. 두번째, 유지보수 및 재활용 측면에서 좋다. C#, Java등으로 만들어진 응용프로그램에서 직접 SQL문을 호출하지 않고 저장 프로시저의 이름을 호출하도록 설정하여 사용하는 경우가 많은데, 이때 개발자는 수정요건이 발생할때 코드 내 SQL문을 건드리는게 아니라 SP 파일만 수정하면 되기 때문에 유지보수 측면에서 유리해진다. 또한 한.. 2022. 4. 5.
[프로그래머스] 최소 직사각형 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 아이디어 각 w, h를 비교해서 둘 중 큰 값을 한 리스트에 넣고 나머지를 리스트로 만든다. 두 개의 리스트 중 가장 큰 값을 뽑아서 곱하면 된다. w, h 리스트를 만든다. for문을 돌면서 w, h 중 큰 값은 w리스트 작은 값은 h리스트에 담는다. 두 개의 리스트에서 가장 큰 값이 곱한 값이 답이다. 다른 사람 풀이 1 def solution(sizes): w = [] h = [] for i in range(len(sizes)): if sizes[i][0] >.. 2022. 4. 5.
[프로그래머스] 두 개 뽑아서 더하기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 내 풀이 from itertools import permutations def solution(numbers): answer = [] nPr = permutations(numbers, 2) for i in list(nPr): if sum(i) in answer: continue answer.append(sum(i)) return sorted(answer) 다른 방법 from itertools import combi.. 2022. 4. 5.
[프로그래머스] 예산 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 내 풀이 def solution(d, budget): d = sorted(d) answer = 0 for i in d: if i 2022. 4. 5.
[프로그래머스] 3진법 뒤집기 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 내 풀이 def solution(n): answer = 0 three_list = list() while n != 0: three_list.append(n % 3) n = int(n / 3) if n == 0: break pow_val = len(three_list) - 1 for i in three_list: answer += i * pow(3, pow_val) pow_val -= 1 return answer 다른.. 2022. 4. 5.
orphanRemoval 이란? 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제해주는 기능이다. @Entity public class Parent { @Id @GeneratedValue private Long id; private String username; @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true) private List childList = new ArrayList(); } orphanRemoval을 true로 하면 , Parent parent1 = em.find(Parent.class, parent.getId()); parent1.getChildList().remove(0); // delete 쿼리나간다. 자동으로 .. 2022. 4. 2.