분류 전체보기205 JPA Entity의 @Setter를 지양하는 이유에 대해서 (feat. @Builder) 서론 이번 포스팅에선 JPA의 Entity를 사용할 때 @Setter를 지양해야하는 이유에 대해 알아보려합니다. 물론 @Setter의 사용이 100% 잘못되었다는 것이 아닙니다. 양방향 바인딩 시 Setter 사용이 더 용이할 수 있으나 이번 포스팅에선 일반적인 케이스만 다뤄보도록 하겠습니다. @Setter를 지양해야하는 이유 @Setter는 사용 의도/목적이 분명치 않다. (Update인지 Create인지) Entity를 만들 때는 외부에서 쉽게 변경할 수 없게 @Setter를 사용하지않는다. 그 이유는 @Setter를 사용하면 의도가 불명확하고 변경하면 안되는 중요한 값임에도 불구하고 변경 가능한 값으로 착각할 수 있다. (== 안정성 보장이 안된다.) 그러면 만약 값을 업데이트 시켜줘야하는 상황일 .. Programming/Spring 2022. 9. 10. [Java] Codility - TapeEquilibrium 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 class Solution { public int solution(int[] A) { int sumAllVal = 0; for(int cand : A) sumAllVal += cand; int minDiff = Integer.MAX_VALUE; int currentDiff = Integer.MAX_VALUE; int sumLeftVal = 0; int sumRightVal = 0; for (int i = 0; i < A.length - 1; i++) { sumLeftVal += A[i]; sumRightVal = sumAllVal - sumLeftVal; currentDiff = Mat.. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - PermMissingElem 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 // you can also use imports, for example: import java.util.*; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int solution(int[] A) { Arrays.sort(A); for (int i = 0; i < A.length; i++) { if(i+1 != A[i]){ return i+1; } } return A.length + 1; } } Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - FrogJmp 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance Not assessed 문제 풀이 class Solution { public int solution(int X, int Y, int D) { if(Y-X == 0) return 0; return (int) Math.ceil((Y-X) / (double) D); } } 처음 접근할 땐 별 생각없이 반복문으로 접근했는데, 시간초과가 나는걸 보고 생각좀 하고 풀걸 후회했다. 그래서 그 후 다시 푼 풀이는 다음과 같다. y-x가 0이 나올 예외사항만 처리해주고, 나머지는 Math.ceil을 사용하여 처리해주었다. 주의할 점으론 (double) 을 붙여줘야지 반올림되는 부분만 조심하면 된다. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - OddOccurrencesInArray 문제 2가지 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 1 (첫 풀이) import java.util.*; public class L2_OddOccurrencesInArray { public static void main(String[] args) { int[] candiArr = {9, 3, 9, 7, 3, 9, 9}; Map candiMap = new HashMap(); for (int i = 0; i < candiArr.length; i++) { if(candiMap.containsKey(candiArr[i])) candiMap.put(candiArr[i], candiMap.get(candiArr[i]) + 1); else candiM.. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - CyclicRotation 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance Not assessed 문제 풀이 // you can also use imports, for example: import java.util.*; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int[] solution(int[] A, int K) { for (int i = 0; i < K; i++) { boolean isFirst = true; int[] newArr = new int[A.length]; for (int j.. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - BinaryGap 문제 풀이 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binar.. Algorithm/Problem Solving 2022. 9. 3. [Spring] JPA No identifier specified for entity 에러 해결 방법 에러 전문 nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.snowdeer.database.board.Member JPA의 프로바이더인 하이버네이트에서 에러가 발생한 상황이다. 굉장히 간단히 에러며, 발생 이유는 보통 두 가지 케이스로 나눠서 볼 수 있다. 케이스 1 - @Id가 빠져있는 경우 import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.pers.. Error Document/Spring 2022. 8. 30. [Spring] 스프링 빈 생명 주기에 대해서 (Spring Bean Life Cycle) 서론 보통 스프링 빈이 생성되거나 소멸될 때 특정한 작업을 하고싶은 경우가 있다. 예를 들어, 빈이 생성될 때 데이터베이스 커넥션 풀을 미리 생성하는 경우가 있다. 이러하게 빈이 생성되거나 종료될 때 빈의 라이프 사이클을 관리하는데 유용한 @PostConstruct, @PostDestroy 어노테이션을 사용하여 어떻게 작업을 진행하는지 알아보려한다. 스프링 빈의 라이프사이클 스프링 컨테이너 생성 빈 생성 의존관계 주입 초기화 콜백 사용 소멸 전 콜백 스프링 종료 초기화 콜백: 빈이 생성되고 빈의 의존관계 주입이 완료된 후 호출되는 것을 말한다. 소멸전 콜백: 빈이 소멸되기 직전에 호출된다. @PostConstruct란? @PostConstruct public void init() { System.out... Programming/Spring 2022. 8. 8. [Real Mysql 8.0] 4.1장 - MySQL Engine Architecture MySQL Engine Architecture mysql 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과 손발 역할을 하는 스토리지 엔진으로 구분할 수 있다. 그리고 손과 발의 역할을 담당하는 스토리지 엔진은 핸들러API를 만족하면 누구든지 스토리지 엔진을 구현하여 MySQL 서버에 추가해서 사용할 수 있다는 특징이 있다. 아래의 이미지는 MySQL Server의 전체 아키텍처를 나타낸다. MySQL은 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. 하나씩 알아보자. MySQL 엔진 MySQL 엔진은 클라이언트로부터 접속 및 쿼리 요청을 처리하는 커넥션 핸들러와 SQL파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다. 또한 MySQL은 표준 SQL(Ansi) 문법.. Self-Development/Study 2022. 8. 7. [Java] 백준 숫자 카드 - 10815번 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이.. Algorithm/Problem Solving 2022. 8. 3. [Spring Boot] JPA No constructor taking 에러 해결 방법 (MySql/ MariaDB) 서론 JPA의 native query를 사용하던 중 다음과 같은 에러가 발생했다. 해당 에러에 투자한 시간에 비례해 너무 쉬운 에러였다. 우선 필자의 에러의 내용을 좀 더 상세하게 한번 보자. 에러 상세 보기 더보기 java.lang.RuntimeException: No constructor taking: java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.sql.Timestamp java.sql.Timestamp at org.qlrm.mapper.JpaResultMapper.findConstructor(JpaResultMapper.java:131) at org.ql.. Error Document/Spring 2022. 8. 2. 이전 1 2 3 4 5 6 ··· 18 다음 💲 많이 본 글