전체 글

공부하면서 정리하는 블로그입니다. 틀린 내용이나 피드백 적극 환영합니다^^
Spring Boot로 Redis 간단한 CRUD를 예제를 해보겠다.1. Redis 설치아래 링크에서 Redis를 설치하면 된다! 로컬환경에 설치를 진행했다.https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redisRedis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redisgithub.com  2. Spring  Boot ..
1. Redis(Remote Dictionary Server)란?key, value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 DBMS메모리에 저장하고 조회하는 인메모리 DB다양한 자료구조를 지원한다.(아래 표 외에도 다양한 자료형을 지원한다.)Type설명String가장 일반적인 형태로, key - value 로 저장하는 형태ListArray 형식의 데이터 구조로 List를 사용하면 처음과 끝에 데이터를 넣고 빼는것은 속도가 빠르지만 중간에 데이터를 삽입할 때 성능이 떨어질 수 있다.Set순서가 없는 Strings 데이터 집합으로 중복이 없다.Sorted SetSets와 같은 구조이지만 Score를 통해 순서를 정할 수 있다.HashKey-Value 구조를 여러개 가진 ob..
1. MQTT(Message Queuing Telemetry Trasport)란?MQTT는 경량 메시지 프로토콜이다. TCP/IP 프로토콜 기반으로 동작하며, 다른 프로토콜(HTTP 등) 보다 비교적 가볍다는 특징이 있다. 그로 인해,  IoT 장치 / 디바이스 통신과 같은 제한된 자원이나 네트워크 환경에서 효과적으로 사용할 수 있는 통신 프로토콜이다. 2. MQTT 특징 a. publish / subscribe 모델MQTT는 중앙에서 Broker를 통해 클라이언트들이 데이터를 publish(게시)하고 subscribe(구독)하는 방식으로 통신한다.Broker는 publisher(게시자)에게 메시지를 전달받아 subscriber(구독자)한테 메시지를 전달한다. b. Topic 기반 메시징클라이언트는 관심..
1. MQTT Broker 설치실습에 앞서 먼저 MQTT Broker를 설치해야 한다. 간단한 예제를 하기 때문에 로컬환경에 설치했다.MQTT Broker 중 Mosquitto를 설치하여 사용하였고, 아래 링크로 접속해서 설치를 진행했다. window일 경우 아래 사진을 참고해서 설치하면 된다.https://mosquitto.org/download/ DownloadSource mosquitto-2.0.17.tar.gz (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Binary Installation The binary packages list..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다.1. 개요데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료한 작업일 경우, 객체의 초기화와 종료 작업이 필요하다. 네트워크 연결하는 동작을 표현한 예제 코드를 통해 설명해보겠다.public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출 , url=" + url); connect(); call("초기화 연결 메세지"); } public void call(String msg) ..
· DevOps/Linux
리눅스 환경에서 백그라운드로 프로세스를 실행시키기 위해서는 주로 nohub과 &(앰퍼샌드 기호)를 사용한다.nohub과 & 사용법에 대해서 정리하겠다. 1. nohub / &(앰퍼샌드)nohub과 & 모두 백그라운드에서 실행하도록 할 때 사용한다. 이 둘의 차이점을 보자. nohubnonhub은 "no hang up" 줄임말로 특정 프로세스를 백그라운드로 실행시킨 후 현재 연결되어 있는 터미널 세션과 연결이 끊어져도 작업이 계속 실행되도록 보장한다. &&는 특정 프로세스를 백그라운드로 실행시킨 후 현재 연결되어 있는 터미널 세션과 연결이 끊어지면 프로세스도 함께 종료된다.하지만 세션이 끊어져도 프로세스가 종료되지 않을 경우에는 옵션이 default로 적용되어 있기 때문이다. 옵션을 변경하게 되면 터미널과..
· DevOps/Linux
1. JAVA 17 설치$ sudo apt install openjdk-17-jdk # ubuntu 기준위 sudo 명령어를 입력해서 JDK 17버전을 설치해보자. 2. 설치 확인$ java -version3. jar 확인참고로 jar는 java 애플리케이션을 build하면 생성되고, Java 클래스 파일, 리소스 파일 및 메타데이터를 하나의 파일에 압축하여 저장한 파일형태이다. 배포할 때 사용한다. ls 명령어를 사용하여 jar 파일이 있는지 확인했다. 4. 실행 및 결과예를 들어 "hello_spring-0.0.1-SNAPSHOT.jar" 파일을 실행할 경우 아래의 명령어 형태로 입력하면 된다.$ java -jar "jar 파일명"$ java -jar hello_spring-0.0.1-SNAPSHOT..
· DevOps/Linux
1. cron이란?특정 시간 조건에 따라 주기적으로 특정 로직을 실행하는 프로그램이다.애플리케이션에서 특정 로직을 처리해도 되긴 하지만 cron을 사용하면 시스템 레벨에서 동작하기 때문에 안정적이다.하지만 유지보수가 어렵기 때문에 여러 요인을 고려해서 사용해야 한다. crontab은 cron 설정 정보를 파일로 관리하는 것을 말한다.  2. cron 주기cron 주기를 설정해 특정 시간마다 특정 로직을 수행할 수 있다.함께 사용하는 기호 기호와 함께 주기를 설정하면 간편하게 설정할 수 있다. 예시* * * * *: 매시간, 매분, 매일, 매월, 매요일에 실행0 2-4 * * *: 매일 2시부터 4시 사이에 실행*/15 * * * *: 매 15분 마다 실행0 0 * L * *: 매월 마지막 날에 실행0 0..
· DevOps/Linux
1. 파일 생성과 vi 편집기 실행hello_shell.sh를 vi편집기로 열어준다. (hello_shell.sh 파일이 없을 경우 새로 생성)vi hello_shell.sh 2. script 작성 및 저장!/bin/bash : shell 을 사용하겠다는 의미echo “hello world”: hello world를 출력 exit 0입력 후 esc를 누른 뒤 :wq 입력하여 저장 후 종료  3. 실행 권한 확인 및 권한 부여ls 명령어를 통해 해당 파일의 권한을 확인해보면 실행 권한이 없을 것이다.아래 명령어(chmod)를 입력하여 실행 권한 부여하면 파일 소유자에게 실행 권한을 부여해준다.chmod 755 “hello_shell.sh” 4. 실행bash 명령어를 사용하여 실행 해주었다.정상적으로 동작하..
· DevOps/Linux
1. cd: 디렉터리 이동$ cd [PATH] # 이동하려는 디렉터리로 이동$ cd ~ # 홈 디렉터리로 이동$ cd / # 최상위 디렉터리로 이동$ cd . # 현재 디렉터리$ cd .. # 상위 디렉터리로 이동$ cd - # 이전 경로로 이동 2. ls: 현재 위치의 파일 목록 조회$ ls -l ** # ** 파일의 상세정보$ ls -a # 숨김 파일 표시$ ls -t # 파일들을 생성시간순(제일 최신 것부터)으로 표시$ ls -rt ** # 파일들을 생성시간순(제일 오래된 것부터)으로 표시$ ls -f # 파일 표시 시 마지막 유형에 나타내는 파일명을 끝에 표시('/' : 디렉터리, '*' : 실행파일, '@' : 링크 등)$ ll # 숨긴 파일과 함께 파일 상세정보 조회(ls -alF) 3. rm..
kmindev
평생쓰는 IT 개발 노트