목록💡 백엔드/Java (74)
코딩마을방범대
JpaSpecificationExecutor Spring Data JPA에서 제공하는 인터페이스DB 쿼리의 조건을 간단히 Spec으로 작성하여 날릴 수 있게 해줌(Spec으로 관리하게 되면 코드가 깔끔해지며 유지보수가 좀 더 용이해짐)JPA Criteria API를 활용하여 복잡한 동적 쿼리를 작성할 수 있음 주요 메서드유형메서드설명ListfindAll(Specification spec)엔티티 조회PagefindAll(Specification spec, Pageable pageable)엔티티 조회 ListfindAll(Specification spec, Sort sort)엔티티 조회 OptionalfindOne(Specification spec)단일 엔티티 조회 RfindBy(Specification s..
JPA가 제공하는 쿼리 메서드는 단순한 CRUD 기능이 가능하여 편리함을 제공하기는 하지만,복잡한 조건을 처리해야하는 경우에는 한계가 있다.이럴 때 사용하는 것이 @Query 어노테이션이다. JPA 쿼리 메서드의 정의는 아래 링크를 통해 확인 가능하다. JPA Query Methods :: Spring Data JPAAs of Spring Data JPA release 1.4, we support the usage of restricted SpEL template expressions in manually defined queries that are defined with @Query. Upon the query being run, these expressions are evaluated against..
SonarQube 에 GitLab&Local 연결해서 사용하기소나큐브란코드 품질 분석: 소나큐브는 다양한 프로그래밍 언어(Java, C#, JavaScript 등)의 코드를 분석하여 버그, 취약점, 코드 스멜 등을 찾아냅니다.자동화 및 통합: 소나큐브는 CI/CD 파이프라인에sweet-rain-kim.tistory.com 위 포스트를 통해 소나큐브를 연결 완료한 뒤 만약 다른 브랜치의 코드를 분석하고 싶다면 어떻게 해야될까? 이미 분석 완료한 프로젝트를 클릭해보면 브랜치 옆에 + 버튼이 있는 것을 확인해 볼 수 있다.마우스를 갖다대면 아래와 같은 메시지가 확인되는데, 브랜치를 자유자재로 변경하고 싶다면 결제가 필요하다는 말 같다..이럴 경우 새 프로젝트로 생성해서 확인하는 방법 밖에 없다. ..
SonarQube 에 GitLab&Local 연결해서 사용하기소나큐브란코드 품질 분석: 소나큐브는 다양한 프로그래밍 언어(Java, C#, JavaScript 등)의 코드를 분석하여 버그, 취약점, 코드 스멜 등을 찾아냅니다.자동화 및 통합: 소나큐브는 CI/CD 파이프라인에sweet-rain-kim.tistory.com 위 포스트를 통해 소나큐브를 연결한 후 분석이 완료되었다면 아래와 같은 화면을 볼 수 있다. 이번 포스트에서는 발견된 결과들을 바탕으로 문제점들을 분석해볼 것이다. 버그버그는 왠만하면 컴파일 과정 또는 작성 중 발견되기 때문에 개수가 많지는 않다. 1. Use try-with-resources or close this "Stream" in a "finally" cl..
코드 분석을 하다보면 Serializable라는 인터페이스를 마주칠 수 있다.직렬화라는 것은 많이 들어봤지만 정확한 개념을 모르고 있었는데 이 참에 포스팅을 해볼 것이다! 직렬화(Serialization) 란? 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술*역직렬화(Deserialization): 바이트로 변환된 데이터를 다시 객체로 변환하는 기술JVM(Java Virtual Machine)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술객체 저장은 ObjectOutputStream 클래스를 사용객체 읽기는 ObjectInputStream 클래스를 사용 Serializable 인터페이스 구현 1. s..
try-with-resources 란?AutoCloseable 인터페이스를 사용하는 자원을 자동으로 닫아주는 시스템자바 7부터 지원하는 기능 AutoCloseable 인터페이스를 구현한 자원AutoCloseable 인터페이스에는 close() 메소드가 정의되어 있으며, try-with-resources 구문이 종료될 때 자동으로 이 메소드가 호출된다. 파일 입출력 관련 클래스 FileInputStream, FileOutputStream, FileReader, FileWriter 등 데이터베이스 관련 클래스 Connection, Statement, ResultSet 등 네트워크 관련 클래스 Socket, ServerSocket, DatagramSocket 등 기타 리소스 관리 클래스 InputStream,..
소나큐브란코드 품질 분석: 소나큐브는 다양한 프로그래밍 언어(Java, C#, JavaScript 등)의 코드를 분석하여 버그, 취약점, 코드 스멜 등을 찾아냅니다.자동화 및 통합: 소나큐브는 CI/CD 파이프라인에 통합되어 자동으로 코드 품질을 검사할 수 있습니다.보안 취약점 탐지: OWASP Top 10 등 보안 규칙을 기반으로 보안 취약점을 찾아냅니다.커스텀 룰셋 지원: 사용자 정의 규칙을 추가하여 특정 요구사항에 맞는 코드 검사를 수행할 수 있습니다.웹 기반 대시보드: 웹 브라우저에서 코드 분석 결과를 확인하고 관리할 수 있습니다.정적 코드 분석: 실제 실행 없이 코드 자체를 분석하여 문제점을 발견할 수 있습니다. 코드스멜이란?프로그래밍 코드에서 문제를 일으킬 가능성이 있는 프로그램 소스 코드의 ..
war 파일을 실행시킬 땐 일반적으로 java -jar 명령어를 이용한다.하지만 디버깅 모드가 필요할 경우 war가 아닌 프로젝트 소스 코드가 필요하다.소스 코드를 확인하는 방법부터 프로젝트로 생성하는 방법까지 진행해볼 예정이다.(디컴파일 시 빌드 파일은 확인이 불가하므로, 정확한 프로젝트 복구는 불가하다.) WAR 파일의 소스 코드 추출하기 war 파일의 소스 코드를 확인하는 방법에는 여러가지가 있다. 1. war 파일의 확장자를 zip 파일로 변경해준 뒤 압축 해제 압축 해제 시 WEB-INF 폴더에 필요한 파일들이 들어가 있었다.classes에는 실질적인 프로젝트 소스들이 들어가있고, lib에는 필요한 라이브러리들이 jar 파일로 들어있다.하지만 이와 같이 소스 코드를 얻을 경우 파일명.cla..