성장과정(dev)/Spring + Java + JPA
-
데이터베이스 데드락, 공유락, 베타락: 꼭 알아야 할 실무 필수 개념 (JPA)성장과정(dev)/Spring + Java + JPA 2024. 12. 13. 16:10
Lock 의 종류 비관적 락(Pessimistic Lock): 항상 락을 사용. 데드락이 발생할 가능성이 높아질 수 있습니다.낙관적 락(Optimistic Lock): 데이터 충돌이 발생했을 때만 처리. 이 방식이 데드락을 방지한다고 해도 한계가 있음. 잦은 충돌 발생 시 트랜잭션 반복 재시도로 성능 저하, 트랜젝션이 길 경우 충돌 가능성 상승. 따라서 낮은 경쟁환경에서 효과적 특성을 반영하면 낙관적 락, 비관적 락은 실무에서 보통 어떤 상황에 사용하나요?낙관적 락전자상거래 시스템에서 사용자 장바구니의 데이터 관리.게시판, 블로그 등 대부분 읽기 위주의 애플리케이션.비관적 락은행 거래 시스템, 재고 관리 시스템. 비관적 락의 주요 유형 2가지 공유 락, 베타 락공유 락 (Shared Lock)..
-
nodeJS 개발자에서 다시 JAVA 개발자로, Java 9 ~ Java21 주요 변경사항들성장과정(dev)/Spring + Java + JPA 2024. 10. 24. 11:00
Java8 시절까지 java 개발자였는데 마지막으로 java로 개발한지 4년, 아주 많은 것이 바뀌었더라.신규 기능 중 주요 기능들만 요약해봤다. 1. var 키워드 (Java 10)지역 변수 타입 추론을 가능하게 하여, 변수를 선언할 때 타입을 생략하고도 컴파일러가 자동으로 타입을 추론var list = new ArrayList();2. HttpClient API (Java 11)새로운 HTTP 클라이언트 API로, HTTP 요청을 더 간단하게 처리할 수 있습니다. 비동기 요청과 HTTP/2, WebSocket 지원도 포함 HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(..
-
[intellij] jpa + gradle + junit4 테스트 중 에러발생성장과정(dev)/Spring + Java + JPA 2020. 11. 26. 10:48
No tests found for given includes: [패키지명](filter.includeTestsMatching), Execution failed for task ':test'. > No tests found for given includes: [com.article](filter.includeTestsMatching) 이와 같은 에러가 발생했다.. 라이브러리 추가도 해보고 이것저것 해봤는데 계속 안되다가 인프런에 누군가의 질문과 답글에 의해서 해결했다. File - Settings - Build, Execution, Deployment - Build Tools - Gradle에서 Run tests using 을 IntelliJ IDEA로 변경해주면 된다. 기존에는 Default인 Gradl..
-
log4j 설정성장과정(dev)/Spring + Java + JPA 2020. 9. 17. 16:54
log4j.xml 을 이루는 태그 - 로그의 출력 위치를 결정 ( 파일, 콘솔, DB 등 ) - 출력 형식 결정 - 로깅 메시지를 Appender에 전달. 개발자가 로그레벨을 이용해 로그 출력 여부 조정 가능 * Appender class 종류 * PatternLayout 클래스에서 사용되는 출력 속성 위 코드에서 priority로 정의 된 것은 어플리케이션의 기본 로그레벨을 결정한다. 그리고 다음과 같이 태그에서 정의 된 내용들에게 로그레벨에 대한 우선순위가 있다. (로그레벨 부분설정) * log4j 성격별 로그파일 error레벨 지정하기 - ex) ERROR.log 파일에는 ERROR 레벨만 출력하고싶다면? 해당 라인을 추가하면 된다. log4j.appender.console.Threshold를 이용..
-
Spring boot 프로젝트 생성, Spring 사이트 이용하기성장과정(dev)/Spring + Java + JPA 2020. 8. 19. 17:31
Spring site를 이용하는 경우 여러가지 중 가장 중요한 두가지를 쓰려고 한다. 지금까지 개발하면서 spring.io라는 사이트는 tool을 받을 때 빼고는 이용하지 않았었는데, 그래서 쓰던 기능만 쓰게 되었던 것 아닐까 싶다. Spring은 기능이 너무나도 다양해서 다 기억할 수 없기에 새로운 기능을 이용할때는 정식 메뉴얼을 이용해야한다. **** 스프링 사이트 이용하는 이유 **** 첫째, 프로젝트 생성 시 이용 둘째, 기능 구현 시 docs 참고용(메뉴얼검색) ====================================================== 프로젝트 생성 시 사이트를 이용하는 방법이다. 우선 start.spring.io에 접속한다. 이전에는 개발툴 (eclipse, intell..