전체 글(217)
-
[Spring] @Scheduled 사용
특정 기간, 원하는 주기에 따라 작업을 실행하기 위해 @Scheduled 가 사용된다. @Scheduled 를 사용하기 위해서는 관련 클래스에 @EnableScheduling 을 추가해야한다. @Scheduled 가 부텨되는 메서드는 파라미터를 가질 수 없고 반드시 void 리턴 타입이어야 하며 아래 세가지 작업을 수행 할 수 있다. fixedDelay: 이전 작업이 끝난 후 동작 fixedRate: 이전 작업이 끝나는 것과 별개로 일정한 시간 간격으로 실행 cron: 크론 주기에 따라 실행 cron @EnableScheduling @Component public class Scheduler { @Scheduled(cron = "1 * * * * *") // 1분 주기 public void cronJob..
2021.12.06 -
[Java] Stream 정리
Stream 특징Java 8 부터 지원한다.원본데이터 자체를 변경하지 않는다.재사용이 불가능하다.내부 반복을 사용으로 코드가 간결해지고 병렬처리가 쉽다.람다 표현식을 이용해서 선언형으로 코드를 구현할 수 있다.스트림 자신을 반환해 스트림 연산 끼리 연결, 파이프 라인을 구성한다. (데이터 소스에 적용하는 데이터베이스 질의와 비슷하다.)이전 코드와 비교테스트를 위한 Dish 클래스더보기public class Dish { private final String name; private final boolean vegetarian; private final int calories; private final Type type; public Dish(String name, boolean vegetarian..
2021.12.05 -
docker + Nginx Reverse-proxy + Wildcard SSL
Wildcard SSL이란?도메인 뿐만이 아니라 서브 도메인 모두 인증지원하는 인증서예를 들어 도메인이 devgno.me 일 때 이 인증서를 발급, 적용하면site1.devgno.me, site2.devgno.me ....모든 서브 도메인도 ssl인증이 적용된다.도메인 준비ssl인증서 발급을 위해 도메인을 구한다.이 글에서는 무료 도메인인 freenom을 사용인증서 발급certbot 설치sudo apt install certbotWildcard ssl 발급sudo certbot certonly --manual --preferred-challenges=dns --email \ jinho021712@gmail.com --server https://acme-v02.api.letsencrypt.org/direc..
2021.06.20 -
ERROR: Encountered errors while bringing up the project
docker-compose up 하던 중 에러가 발생 Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use ERROR: Encountered errors while bringing up the project 이유는 모르겠지만 443포트가 이미 실행중이라고 한다.. 모든 도커 컨테이너를 멈추고 제거 $ docker stop $(docker ps -a -q); docker rm $(docker ps -a -q); \ docker volume rm $(docker volume ls -qf dangling=true) 네트워크 제거 $ docker network rm $(docker network ls -q) 아래와 ..
2021.06.16 -
ssh-keygen 공개키 인증
ssh-keygen 공개키 인증을 사용하면 ssh로 서버에 원격 접속할 때 비밀번호 입력 없이 접속 할 수 있다. 편할 뿐 아니라 보안 취약점을 해소 할 수 있다. ssh key 생성하기 window, mac 모두 사용 가능하며 $ ssh-keygen 명령어로 키를 생성할 수 있다. window는 기본 터미널이 아닌 git bash에서 가능 설치를 시작하면 아래와 같이 입력하라고 출력된다. 괄호 사이 값이 디폴트 값이다. Enter file in which to save the key (/home/{USER_ID}/.ssh/id_rsa):[Enter] Enter passphrase (empty for no passphrase): [패스워드입력] Enter same passphrase again: [패스워..
2021.06.09 -
WSGI란 무엇인가?
WSGI (Web Server Gateway Interface)WSGI는 Python 웹 프레임워크가 웹 서버와 통신할 수 있도록 도와주는 인터페이스입니다. WSGI는 웹 서버와 웹 애플리케이션 사이에 위치하여, 웹 서버가 요청을 처리하고 그 결과를 웹 애플리케이션에 전달하는 역할을 합니다. WSGI는 웹 서버와 웹 애플리케이션 두 가지의 특성을 모두 가지고 있습니다.웹 서버와 웹 애플리케이션웹 서버: HTML, 이미지 등 정적인 파일을 처리하며, 대표적으로 Apache와 Nginx가 있습니다.웹 애플리케이션: Django, Flask와 같은 Python 프레임워크로, 동적인 요청을 처리하고 웹 서버에 결과를 반환합니다.WSGI는 웹 서버가 요청에 대한 정보를 웹 애플리케이션에 전달할 수 있도록 Call..
2021.06.01