일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시계열디비
- 롬복
- 빌드자동화도구
- 프로그래머스
- 생성자
- controller
- 알고리즘
- 롬복사용시주의할점
- 자바
- 어노테이션
- 정처기필기
- Docker
- 무중단배포
- PULL방식아키텍쳐
- git
- 정처기
- Java8
- Groovy문법
- API
- 빌드스크립트
- java
- 완전탐색알고리즘
- 정처기공부
- spring
- CICD
- 서버
- 정보처리기사
- aws
- 롬북
- 정보처리기사필기
- Today
- Total
목록우당탕당 개발일지 (47)
우당탕탕 개발일지
여러 프로젝트를 만들면서 배포를 할 때 '젠킨스 + Gitlab' 또는 'Gitlab'으로 CI/CD를 구축하여 배포하였다. 이건 프로젝트가 gitlab 저장소로 관리되어있어야 하는데 초반에 만들어둔 프로젝트는 github 저장소에 있다보니 기존 방법 대로 CI/CD를 하려면 gitlab으로 프로젝트를 옮기는 과정이 필요했다. gitlab 👉 github 미러링은 해봤는데 github 👉 gitlab 미러링은 처음... 방법은 비슷하겠거니하고 찾아봤는데 "pull mirroring"을 하면된다고한다.(참고로 깃랩에서 깃헙은 push mirroring) gitlab 미러링으로 들어가 pull로 변경하려고 보니 변경해야하는 Mirror direction이 비활성화되어 클릭이 안되는것... 찾아보니 githu..
멋사 수업이 끝난 뒤 지금까지 해왔던 프로젝트를 정리하고 리팩토링하던 중초반에 사용했던 프로젝트와 현재 진행중인 프로젝트의 JDK 버전이 달라 프로젝트 리팩토링 시 문제가 생겼다...초반 프로젝트는 java11 , 현재 프로젝트는 java17...JAVA_HOME 환경변수는 이미 java17로 셋팅되어있는 상태이기 때문에 java11 프로젝트를 열면 JDK 설정에서 멈춤 상태로 프로젝트가 열리지 않았다 :-( 매번 JAVA_HOME의 경로를 변경하여 11, 17 를 왔다갔다 할 수도 없기 때문에 폭풍 검색!스크립트를 작성하여 시스템 환경변수 path에 적용하면 cmd 명령어로 JAVA_HOME의 JDK를 변경할 수 있었다.해당 내용을 까먹지 않도록 포스팅윈도우 JAVA 버전 관리우선, 난 초반에 java..
🔍 Jenkins(젠킨스) 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴 = CI (Continuous Integration) 젠킨스는 서브버전, Git 과 같은 버전 관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다. ✅ 설치조건 최소 하드웨어 요구 사항 256MB RAM 1GB 드라이브 공간(Jenkins를 Docker로 실행하는 경우 최소 10GB 권장) 📌 GitLab 설정 1. Access Tokens 발급 프로젝트 → Settings → Access Tokens → 화면에 나온대로 입력, 체크 → Create project access token ( access token은 한번만 볼수있기 때문에 미리 저장해두기 ) 📌 ..
@Valid JSR-303 표준 스펙(자바 진영 스펙)으로서 빈 검증기(Bean Validator)를 이용해 객체의 제약 조건을 검증하도록 지시하는 애노테이션이다. 객체의 필드에 달린 애노테이션으로 편리하게 유효성검사를 제공한다. Spring Boot에서는 아래의 의존성만 추가해주면 @Valid 기능을 사용할 수 있다. implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation' Service에서 검증로직을 작성하여 확인할 수 있지만, DTO 또는 객체를 검증해야할 때 별도로 검증 클래스를 만들어 사용하는 것이 아니라 @Valid 애노테이션을 사용하여 간단하게 검증할 수 있다. 🔍 java.validatio..
💢 문제 발생 LocalDateTime 타입의 값이 들어있는 객체를 테스트 코드에서 ObjectMapper 함수를 사용하여 가져올 경우 아래와 같은 에러가 발생했다. Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling // ... 이 경우는 Java 8 부터 추가된 LocalDateTime 항목을 제대로 직렬화 or 역직렬화를 못하는 현상이다. ( ObjectMapper는 JSON 형식을 사용할 때, 응답을 직렬화하고 요청들을 역직렬화 할 때 사용하는 기술이다. ) 💡 문..
ubuntu 20.04 LTS 서버에 ubuntu 계정으로 Docker를 설치하고 사용하려고 보니 도커 명령어를 입력할 때마다 sudo를 같이 적어줘야하는 번거로움이 생겼다. 또, sudo 를 붙여주지 않으면 Permission denied 에러가 계속 나는 것이다. 해결 방안을 찾다가 도커 그룹을 생성할 수 있다는 것을 알게되었다. 도커 그룹에 ubuntu 계정을 추가하여 사용하는 방법을 포스팅한다.도커 그룹 생성이미 그룹이 생성되어있는 경우가 대부분이나 혹시 모르니 생성까지 진행$ sudo groupadd docker도커 그룹에 계정 추가$ sudo usermod -aG docker [계정명]도커 재시작$ sudo service docker restart🔁 도커 그룹에 추가한 계정으로 접속도커 테..
📢 사용했던 리눅스 명령어를 위주로 까먹지 않게 정리하는 글리눅스 명령어📌 apt apt 는 리눅스에 기본적으로 설치되어있는 명령어로 여러 가지 기능을 하기 때문에 사용하기 전 미리 업데이트 & 업그레이드를 해서 최신으로 유지시켜준다.#apt 명령어 업데이트$ sudo apt update#apt 명령어 업그레이드$ sudo apt upgrade#사용예시#java17 설치$ sudo apt install openjdk-17-jdk📌 ssh -i [.pem 경로] 원격지로 접속할 때 사용하는 명령어로 -i 옵션은 원격지로 접속 시 필요한 .pem의 경로를 입력해 줄 수 있다.매번 EC2 서버로 접속할 때 사용함$ ssh [원격지계정]@[원격지주소] -i [접속할 원격지의 ,pem가 있는 경로]/[.pe..
Nginx 란? 시장에서 점유율이 높은 apache와 같은 웹서버 중 하나로 가벼우면서 여러 요청을 한 번에 처리할 수 있는 장점을 가진다. 또 apache 보다 동작이 단순하고 전달자 역할만 하기 때문에 동시접속에 특화되어 있다. 예를 들어 동시접속자가 700명 이상이라면 서버를 증설하거나, nginx 환경을 권장한다고 할 정도로 성능이 좋고 다중접속에 특화되어있다. nginx의 구동 방식은 Event Driven(비동기처리방식)으로 요청이 들어오면 어떤 동작을 해야하는지만 알려주고 다른 요청을 처리하는 방식이다. 그렇기 때문에 CPU와 관계없이 모든 입/출력들을 전부 Event Listener로 전달해서 흐름이 끊기지 않고 응답이 빠르게 진행되어 1개의 프로세스로 보다 더 빠른 작업이 가능하게 된다...