본문 바로가기
반응형

Develop232

[Jenkins] Sonarqube와 연동 들어가기 전에... Jenkins, SonarQube, Git, Ant Project를 사용하고 있다. Maven, Gradle Project을 다루고 있는 사용자는 3번 과정을 생략하고 마지막의 Jenkins에 프로퍼티를 추가하는 방법을 사용하면 된다. (3번이 빌드 파일을 수정해야하는 부분인데 빌드 파일을 다루는 방법이 모두 다르기 때문.) 물론 Maven이나 Gradle도 빌드파일을 수정하는 방법을 이용할 수 있으나, 본 포스팅에서는 다루지 않는다. 기존에 Jenkins와 GitHub 연동한 것은 다음과 같다. GitHub에 소스코드 commit & push 소스 코드의 변화 감지 후 Jenkins로 Webhook 발생 소스 pull -> build -> deploy 이제 SonarQube를 연동해.. 2021. 4. 5.
테스트 종류와 도구 여태껏 Jenkins를 이용해 빌드, 배포하는 방법에 대해 스터디했다. 이제는 다른 테스트 도구를 연동해 테스트 후에 빌드, 배포하도록 설정하려고 한다. 그 전에 테스트는 어떤 종류가 있는지, 자주 쓰는 도구는 무엇인지 알 필요가 있어 정리한다. 테스트 방법은 크게 두 가지로 나뉜다. 정적 분석: 소스 코드를 실행하지 않고 분석 동적 분석: 소스 코드를 실행하며 분석 정적 분석 도구에는 대표적으로 pmd, SonarQube, cppcheck, checkstyle 등이 있다. (이후에 Jenkins랑 연동은 pmd와 SonarQube를 이용해보겠다.) 소스 코드를 실행시키지 않고 코딩 표준 준수 여부, 코딩 스타일 적정 여부 등을 판단한다. 정적 분석 도구 종류 ▼ 더보기 PMD 미사용 변수, 비어있는 코.. 2021. 3. 31.
웹 어플리케이션에 대해 Spring MVC는 백엔드 개발에 필요한 수많은 기능을 제공하고 있으나, 기능이 너무 많아서 학습이 어렵다. 이를 다 이해하고 활용하려면 웹 어플리케이션이 어떠한 과정으로 발전해왔는지 이해할 필요가 있다. 웹은 HTTP 기반으로 통신한다. HTTP란 무엇일까? 거의 모든 형태의 데이터를 주고 받을 수 있는 프로토콜 (JSON, XML, 이미지, 파일, 영상, 텍스트, ...) 서버간 데이터를 주고 받을 때도 사용 웹 시스템의 구성 WAS, DB: WAS가 너무 많은 역할을 함. WAS에 장애나면 오류 화면조차 못봄 WAS, Web server, DB: 정적 리소스는 웹이, 중요한 로직 처리는 WAS가 전담. -> 효율적! WAS 장애 나도 오류 화면 출력이 가능해진다. Web server와 WAS는 개.. 2021. 3. 25.
[Java] MessageFormat 로직을 살펴보고 있었는데 MessageFormat.format() 통해서 url 주소에 자꾸 무슨 작업을 한다. 이게 대체 뭔 뜻인가 찾아봤더니 여러 데이터를 하나의 양식으로 통일시킬때 많이 사용한다고 한다. (내가 본 작업 ex: yeonyeon.tistory.com/73에서 yeonyeon.tistory.com은 공통이지만 73이라는 게시글 번호는 고유하다. 게시글 번호 외에도 다른 데이터들을 한꺼번에 url에 넣어줘야 할 때, format()을 이용하면 편리하다.) MessageFormat 데이터를 정해진 양식에 맞게 출력할 수 있는 클래스 예제 코드 public class FormatTest { public static void main(String[] args) { String pattern =.. 2021. 3. 22.
[Java, Spring] 파일 다운로드 추가 개발 건에 파일 다운로드 기능을 만들어야 해서 관련 코드를 찾아보았다. Java로 구현하는 법, Spring으로 구현하는 법 두 가지 코드를 중점으로 살펴보겠다. Java import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.UUID; public class FileDownJava { public static void main(String[] args) { // 원격 파일 다운로드 URL String fileUrl = "https://k.k.. 2021. 3. 22.
특정 포트에 대해 방화벽 오픈 되어있는지 확인하기 회사에서 고객사로 특정 도메인에 대해 특정 포트 방화벽 오픈 요청 했는데 잘 오픈 되었는지 확인해보려고 한다. 고객사 서버에 원격 접속을 한 뒤, cmd 창을 통해 쉽게 확인할 수 있었다. telnet 명령어를 이용하면 서버에서 방화벽 오픈 되어있는지 확인이 가능하다. $ telnet [서버 ip] [서버 port] ex: telnet yeonyeon.tistory.com 8080 telnet 사용이 불가능한 경우 ▼ 더보기 1. Windows Windows 기능 켜기/끄기에서 텔넷 클라이언트 체크 후 사용 가능 2. Linux telnet 설치 명령어 입력 $ yum install telnet 로컬에서 테스트한게 아니라 화면을 캡쳐할 수는 없지만... 포트가 잘 오픈되어 있다면 도메인에 접속되어 까만색.. 2021. 3. 18.
[Java Stream] 자바 스트림 스트림; Stream 데이터의 흐름 java 8에서 추가한 람다를 활용할 수 있는 기술 중 하나 배열 / 컬렉션 인스턴스에 함수 여러 개를 조합해 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있다. 한 번 종료 작업을 한 스트림에 대해서는 재사용 불가 병렬 처리* 가능 -> 여러 스레드가 작업 * 병렬 처리: 하나의 작업을 둘 이상으로 나눠 동시에 진행하는 것 스트림 구조 생성하기: 스트림 인스턴스 생성 가공하기: filtering, mapping 등 원하는 결과 만들기 결과 만들기: 최종 결과 만들어내는 작업 -> 객체.스트림생성().가공().결과만들기(); 식이다. ( 이렇게 연계할 수 있는 방식을 파이프라인이라 부른다고도 한다. ) 1. 생성하기 주로 Collection, Arrays에서 쓰이고.. 2021. 3. 17.
[AWS RDS] Mysql에서 variables 설정 바꾸기 variables 설정 바꾸는 방법이 궁금해서 포스팅에 들어온 사람이라면 바로 2번을 보면 된다. 나는 MariaDB 환경에서 사용했지만 Mysql에서도 똑같이 이용 가능하다. Unknown column in 'field list' ... 라는 에러가 발생해서 확인해봤더니, 테이블 명이 자꾸 대소문자가 구분되어 여러번 생성 삭제하는 과정 중에 필드명을 잘못 입력한 것 같다. 존재하지 않는 필드 명을 찾으니까 Unknown column이란 에러가 뜬 듯 하다. 처음부터 다시 생성하기 전에, posts나 POSTS나 같은 이름으로 인식하게 하려고 한다. 대소문자를 구분 설정을 없애는 여러 방법을 찾았다. 'lower_case_table_names'를 1로 설정하면 된다. 1. 파라미터 그룹 편집 RDS 인스.. 2021. 3. 11.
[Spring] Initializr로 스프링 부트 기반 프로젝트 생성 Spring Initializr 링크> start.spring.io/ Project 빌드 관리 툴 선택 (Maven, Gradle) Ant -> Maven -> Gradle 순으로 Gradle이 가장 최근에 나왔다. Language 언어 설정 (Java, Kotlin, Groovy) Spring Boot 스프링 부트 버전 설정 SNAPSHOT: 아직 개발 단계 기타 버전에 대해: stackoverflow.com/questions/2107484/what-is-the-difference-between-springs-ga-rc-and-m2-releases Project MetaData Group: 보통 기업의 도메인 명 Artifact: 빌드 결과물 이름 Name: 이름 Description: 프로젝트 설명 .. 2021. 3. 10.
반응형