성장과정(dev)/Spring + Java + JPA
-
Java thread 와 프로세스에 대한 개념정리성장과정(dev)/Spring + Java + JPA 2025. 4. 5. 12:16
📘 Java 스레드의 주요 장점멀티태스킹 지원여러 작업을 동시에 실행할 수 있어 사용자 경험이 부드러워짐.예: UI 응답 처리 + 백그라운드 데이터 처리CPU 자원 효율적 사용멀티코어 CPU 환경에서 여러 스레드가 병렬로 실행되어 성능 향상 가능.응답성 향상무거운 작업(예: 파일 I/O, 네트워크 작업 등)을 별도 스레드로 처리하면 메인 스레드(UI 등)의 응답성 유지 가능.공유 메모리 사용같은 프로세스 내에서 스레드는 메모리를 공유하기 때문에, 프로세스 간 통신(IPC)보다 빠르고 간단함.비용이 적음새로운 프로세스를 생성하는 것보다 스레드 생성이 비용(시간과 자원) 면에서 훨씬 적음.비동기 프로그래밍 용이특정 작업을 백그라운드에서 처리하고, 완료 시 콜백 처리 등의 구조를 만들기 쉬움.🎯 예를들어..
-
데이터베이스 데드락, 공유락, 베타락: 꼭 알아야 할 실무 필수 개념 (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를 이용..