이슈, 결함, 코드 복잡성등을 분석하여 코드의 품질을 평가하고 개선하여 코드 품질 향상에 목적을 하고 있다.지속적인 코드 품질 관리를 통해 개발 초기에 코드 문제를 해결하고 자동화된 코드 감사를 통해 최신 상태의 코드 문제를 확인할 수 있다.정적 코드 분석코드 품질 중앙화 관리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 폴링은 데이터를 줄 때까지..
개발 방법과 내부 기능에 따라 다양한 유형의 애플리케이션(앱)이 있다. 개발에 필요한 기본적인 웹 서비스의 종류와 차이점을 알아보자. 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..
Thread는 자원과 안정성 문제가 항상 따라다닌다. Thread가 많다면 대기 중인 상태가 되어, 메모리 사용량이 많아지면서 JVM 가비지 콜렉터에 영향을 주게 된다. 이러한 문제를 해결하기 위해 Thread Pool 관리가 필요하고, Java에서는 java.util.concurrent.* 패키지에서 Thread Pool을 제공하고 있다. ExecutorService 생성자 newFixedThreadPool : 지정된 숫자만큼 고정된 Thread를 유지한다. Thread가 작업이 종료되었으면 Thread 다시 생성하여 주어진 개수를 맞춘다. /** * Creates a thread pool that reuses a fixed number of threads * operating off a shared ..
Mac으로 문서작업을 하다 보면, Window에서 파일명이 자소 분리된다. 이에 관하여 빠르고 간단하게 Mac 한글파일명 자소 분리 해결법을 알아보자. 문제점 - 표준 정규화 인코딩 차이 Mac - NFD(조합형) Window - NFC(완성형) 1. convmv 설치 brew install convmv # 사용법 convmv -f utf8 -t utf8 --nfc --notest convmv 설치 후 위 명령어로 지정된 파일만 해결이 된다. 파인터에서 우클릭 형태로 쉽고 빠르게 작업하실 분은 아래 설명하는 Automator를 생성하자. 2. Automator 생성 Automator 실행 -> 새로운 문서 -> 빠른 동작 -> 왼쪽 검색창("셸") -> 오른쪽으로 드래그 -> 빨간색 영역 수정 # App..
- 리액트
- 이직
- Collection
- 오라클
- SQL
- javascript
- 제주도 3박4일 일정
- 소프트웨어공학
- effective java
- 정렬 알고리즘
- 오라클 내장 함수
- 리액트 16
- 경력관리
- Linux 명령어
- sort algorithm
- 자바스크립트
- 리눅스 명령어
- Maven
- Eclipse
- Tomcat
- 자바
- React
- 성능분석
- 개발환경
- 프로그래머스
- 제주도 여행
- 프로그래머
- 회고
- spring
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |