이슈, 결함, 코드 복잡성등을 분석하여 코드의 품질을 평가하고 개선하여 코드 품질 향상에 목적을 하고 있다.지속적인 코드 품질 관리를 통해 개발 초기에 코드 문제를 해결하고 자동화된 코드 감사를 통해 최신 상태의 코드 문제를 확인할 수 있다.정적 코드 분석코드 품질 중앙화 관리DevOps 통합다중 언어 분석데모https://sonarcloud.io/projectshttps://next.sonarqube.com/sonarqube/projects품질요소Code Smells(Maintainability)심각한 이슈는 아니지만 사소한 이슈들로 모듈성(modularity), 이해가능성(understandability), 변경가능성(changeability), 테스트 용의성(testability), 재사용성(reu..
최근에 이전 작성 했던 코드를 참고해 볼 일이 있어 확인하던 중 Gradle Build가 되지 않아 해결하는 과정에서 알게 된 정보를 공유하고자 한다. 우선 현재 Gradle 버전을 확인해 보자.Gradle 버전을 확인 했다면 5.x 버전 기준으로 의존성 주입 방법이 달라진다.5.x 미만dependencies { implementation 'org.projectlombok:lombok'}5.x 이상dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'} Gradle Java 호환성https://docs.gradle.org/current/userguide/compatibilit..
Jenkins- 플러그인을 통해 지속적으로 구축, 테스트 및 배포를 목적으로 대표적인 빌드 배포 툴이다.- Jenkins 등장 이후 많은 변화가 있었지만, 핵심적인 설정은 아직도 큰 틀에서 유지되고 있다.Jenkins 빌드 유발(Build Triggers)을 설정할 때 나타나는 경고 문구에 대해 알아보자.Build Triggers 테스트는 Poll SCM, Build Periodically에서 확인이 가능하다.- Jenkins는 지정된 간격으로 변경 사항을 자동으로 확인하고 감지되면 빌드를 트리거 한다.- 이때 지정된 간격을 설정하는 방법을 Cron 구문이라고 한다. Example*/30 * * * *30분 주기로 동작하기 위해 위와 같이 설정 시 아래와 같은 경고를 확인 할 수 있다.Spread loa..
웹훅 개요웹훅이란 웹앱에서 발생하는 특정 이벤트를 커스텀 콜백으로 변환 해주는 방법이다. 쉽게 말해 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능이다. HTTP 기반의 웹 특징과 훅(Hook) 기능을 합친 용어이다.APIAPI는 클라이언트가 요청을 한다. 필요한 데이터를 특정한 API로 호출하고 응답을 받게 된다.행위의 주체가 클라이언트가 데이터를 당겨온다. PULL웹훅웹훅은 클라이언트가 데이터를 요청하지 않아도, 필요할 때 알아서 데이터를 준다. 미리 이벤트를 지정해두고, 해당 이벤트가 발생되면나에게 데이터를 보내줘라는 의미이다.행위의 주체가 웹훅이 데이터를 밀어 준다. PUSH웹훅을 통해 Gitlab과 Jenkins 사이의 파이프라인 구성도 가능하다.정리API 폴링은 데이터를 줄 때까지..
List로 주어진 여러 개의 조건 값을 IN 형태로 조건을 경우가 생긴다. 일반적인 상황이라면은 문제가 없지만 1000건 이상으로 IN절을 구성할 때는 ORA-01795 오류를 확인할 수 있다. ORA-01795: 목록에 지정 가능한 식의 최대 수는 1000입니다 (maximum number of expressions in a list is 1000) SELECT * FROM TBL WHERE CDN IN #{item.val} 해결 방법 1. OR 연산자 1000건씩 분리 SELECT * FROM TBL WHERE CDN IN #{item.val} List partitionedItems = new ArrayList( items.stream() .collect(Collectors.groupingBy(ite..
1. SELECT 시에는 꼭 필요한 COLUMN만 조회한다. -- BAD SELECT * FROM TABLE; -- GOOD SEELECT COLUMN1 , COLUMN2 FROM TABLE; 2. WHERE 절에는 연산을 하지 않는다. -- BAD SEELECT COLUMN1 , COLUMN2 FROM TABLE WHERE FLOOR(COLUMN3) = 2; -- GOOD SEELECT COLUMN1 , COLUMN2 FROM TABLE WHERE COLUMN3 = BETWEEN 4 AND 5; 3. LIKE 조회 시 와일드카드 %는 가급적 뒤에만 사용한다. -- BAD SEELECT COLUMN1 , COLUMN2 FROM TABLE WHERE COLUMN3 LIKE '%DF%'; -- GOOD SE..
개발 방법과 내부 기능에 따라 다양한 유형의 애플리케이션(앱)이 있다. 개발에 필요한 기본적인 웹 서비스의 종류와 차이점을 알아보자. 1. 모바일 웹(Moblie Web) 개념 모바일 화면에 맞게 구성한 웹 특징 단순히 웹 페이지를 모바일 화면에 맞게 줄인 형태 개발(웹 페이지) 실행(웹 브라우저) 장점 유비보수 용이 브라우저 접근 미설치 스토어 심사 불필요 단점 네이티브 엑세스 불가 2. 웹 앱(Web App) 개념 모바일 웹처럼 보이지만 구동방식이 앱처럼 보이게 한 앱 특징 겉모습, 구동방식을 네이티브 앱처럼 구성 개발(웹 페이지) 실행(웹 브라우저) 장점 비용, 시간 절감 스토어 심사 불필요 단점 네이티브 엑세스 불가 3. 하이브리드 앱(Hybrid App) 개념 컨텐츠 영역은 웹 앱으로 개발하고,..
지난 포스팅에 brew로 Java를 설치하는 방법에서 Java LTS 버전을 언급한 적이 있다. [프로그래밍/Etc] - [Etc] Mac Java 설치 및 관리 with Brew [Etc] Mac Java 설치 및 관리 with Brew Mac에서의 Java 설치 및 여러 가지 Java버전을 관리하는 방법을 알아보자. Java 설치의 일반적인 방법은 직접 다운로드하는 방법이 있지만, Mac에서는 Brew를 통해 손쉽게 설치가 가능하다. Java 외의 모 reference-m1.tistory.com 오래된 시스템을 보면 개발, 스테이징, 운영서버 등이 버전이 다른 경우가 있다. 고도화 작업뿐만 아니라 모든 프로젝트가 착수되기 전에 각 버전에 맞는 선정 작업이 필요하다. 이번에는 Spring Framewo..
Quartz Quartz는 미리 결정된 시간 또는 예약된 시간에 작업을 예약하고 실행하는데 사용할 수 있는데 오픈 소스 라이브러리이다. 간단한 interval , Cront 표현식을 사용하여 작업할 수 있다. 장점 in-Memory, JDBC 방식 제공 스케줄러 간 클러스터링 시스템 Fail-over(Random 방식의 로드 분산처리) 기본 플러그인 제공(ShutdownHookPlugin, LoggingHistoryPlugin) 단점 완벽한 로드 분산처리 불가(Random 방식) GUI 환경 미지원 스케줄러 실행에 대한 히스토리 보관 미지원 fixed delay 미지원 Quartz Maven Dependency org.quartz-scheduler quartz 2.3.2 Quartz Gradle Depe..
Thread를 통해 Service를 호출하려고 하면 @Autowired null 관련 에러가 발생한다. Thread 클래스가 Bean으로 등록된 클래스가 아니어서 IOC Container를 통해 자동 주입되지 않는다. @Autowired는 Bean으로 등록된 클래스에서만 사용 가능하다. 이럴 때는 Bean을 수동으로 주입하면 해결 가능하다. ApplicationContextProvider import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.spri..
- 소프트웨어공학
- javascript
- 리액트 16
- 자바스크립트
- Maven
- 리눅스 명령어
- spring
- 성능분석
- 제주도 3박4일 일정
- Linux 명령어
- 프로그래머
- Tomcat
- 경력관리
- Java
- 이직
- 오라클 내장 함수
- 프로그래머스
- React
- effective java
- 제주도 여행
- 회고
- 자바
- sort algorithm
- 정렬 알고리즘
- 리액트
- 오라클
- SQL
- Eclipse
- 개발환경
- Collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |