헝D의 일기장
[Redis] 사용법
개발공부 2026. 3. 12. 19:03

$ redis-cli # redis 접속127.0.0.1:6379>pingPONG # 이렇게 출력돼야 Redis 정상 실행중인것.#데이터 저장#set [key][value]$ set hj:name "hyeonji lee" # 띄어쓰기 -> 쌍따옴표 묶기$ set hj:hobby study#데이터 조회#get key$ get hj:name$ get hj:hobby$ get jj:name #없는 데이터 조회시 nil 출력#저장된 모든 key조회$ keys *#데이터 삭제#del key$ del hj:hobby$ get hj:hobby#데이터 저장시 만료시간 정하기(TTL): 메모리 공간이 한정되어 있어서 ttl설정하여 일정 시간 뒤 데이터 삭제#set key value ex 초$ set hj:pet dog ..

[Redis] Redis 개념
개발공부 2026. 3. 12. 18:55

Redis: Key-Value 구조의 비정형 데이터를 저장하고 관리하는 오픈소스 기반 비관계형 DBMS즉, 데이터 처리 속도가 매우 빠른 NoSQL 데이터베이스 장점:인메모리에(RAM) 모든 데이터를 저장해서 데이터 처리 성능이 굉장히 빠르다.(MySQL 같은 RDBMS는 디스크에 데이터 저장. 디스크보다 메모리에서 데이터 처리속도가 월등하게 빠름) 사용사례:캐싱(데이터 조회 성능 향상), 세션관리, 실시간 분석 및 통계, 메시지 큐, 지리공간 인덱싱, 속도 제한, 실시간 채팅 및 메시징

[Docker] Docker Compose
개발공부 2026. 3. 12. 18:48

Docker Compose:여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴 장점:1. 여러 개의 컨테이너를 관리하는 데 용이(여러 컨테이너를 하나의 환경에서 실행하고 관리)2. 복잡한 명령어를 간소화 시킬 수 있음. [compose.yml]services: my-web-server:#service == 하나의 컨테이너 의미. 서비스에 이름을 붙이는 기능 container_name : webserver # 컨테이너 별칭 image: nginx # docker run 이미지명 과 동일한 역할 ports: - 80:80 # -p 80:80 과 동일. 포트매핑#compose 파일 실행$ docker ..

[Docker] Dockerfile
개발공부 2026. 3. 11. 22:48

Dockerfile: Docker 이미지를 만들게 해주는 파일# JDK17 베이스 이미지 DockerfileFROM openjdk:17-jdkCOPY [호스트 컴퓨터에 있는 복사할 파일의 경로][컨테이너에서 파일이 위치할 경로]ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 바로 종료되지 않게 500초 일시정지. 디버깅용.#ENTRYPOINT는 컨테이너가 생성되고 최초로 실행할 때 수행되는 명령어임###########################ubuntu , git 이 깔려있는 이미지 만들기FROM ubuntuWORKDIR /my-dir #작업 디렉토리로 사용할 절대 경로RUN apt update && apt install -y gitENTRYPOINT ["/bin/b..

[Docker] Docker CLI
개발공부 2026. 3. 11. 22:12

[이미지 다운]# docker pull 이미지명(:latest)$ docker pull nginx #최신버전$ docker pull nginx:stable-perl #특정버전(=태그명)이미지는 Dockerhub에서 다운받는다.ㄴ Dockerhub: 이미지를 저장/다운 받을수 있는 저장소 [이미지 조회/삭제]$ docker image ls #다운받은 모든 이미지 조회$ docker image rm [이미지 ID(일부만 입력가능) 또는 이미지명] #특정 이미지 삭제$ docker image rm -f [이미지 ID(일부만 입력가능) 또는 이미지명] #중지된 컨테이너에서 사용하는 이미지 강제삭제$ docker image rm $(docker images -q) #컨테이너에서 사용안하는 이미지 전체삭제$ doc..

[Docker] Docker 기본 개념
개발공부 2026. 3. 9. 19:01

Docker컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴 컨테이너(Container)하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념디스크(저장공간), 네트워크(ip, port) 가 독립적으로 관리 컨테이너를 포함하고 있는 컴퓨터 == 호스트 컴퓨터 이미지(Image)닌텐도의 칩과 같은 역할프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함ex)node.js 기반의 express.js 서버 프로젝트를 이미지로 만들어서 Docker 로 실행-> express.js 서버 프로젝트가 컨테이너 환경에서 실행. Docker 장점이식성: 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 ..

[프로그래머스] 유연근무제 java (LEVEL1)
코테풀이 2025. 7. 30. 18:25

https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명프로그래머스 사이트를 운영하는 그렙에서는 재택근무와 함께 출근 희망 시각을 자유롭게 정하는 유연근무제를 시행하고 있습니다. 제도 정착을 위해 오늘부터 일주일 동안 각자 설정한 출근 희망 시각에 늦지 않고 출근한 직원들에게 상품을 주는 이벤트를 진행하려고 합니다.직원들은 일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근해야 합니다. 예를 들어 출근 희망 시각이 9시 58분인 직원은 10시 8분까지 출근해야 합니다. 단, 토요일..

[트러블슈팅] 자바 Properties 파일을 못 읽는 현상
개발공부 2024. 11. 8. 17:39

문제자바 jar 파일을 배포하고 이를 실행하는 스크립트를 만들어서 어떠한 파일을 불러와야 하는 상황.파일은 디렉토리를 명시하지 않았고 파일명으로만 불러오려고 함.파일은 해당 스크립트와 동일한 디렉토리에 존재함. 테스트시 스크립트를 실행했을때 파일을 정상적으로 읽어왔음.해당 스크립트를 자동으로 실행하도록 크론탭에 등록하였고 그 후 크론탭에 의해 자동으로 실행되자 파일을 찾지 못하는 현상 발생 원인작업디렉토리의 문제.Properties.load 메소드를 사용시 경로 없이 파일 이름만 명시했을때 해당 파일을 현재 작업 디렉토리에서 찾게 된다.스크립트를 직접 실행했을때 작업디렉토리는 해당 스크립트가 위치한 경로로 잡혔기 때문에 문제가 없다.그러나 크론탭을 통해 스크립트를 자동 실행하면 작업 디렉토리는 스크립트가..

java PreparedStatement 재사용시 유의점
개발공부 2024. 11. 7. 18:00

내가 맡은 업무의 코드에는 java PreparedStatement를 사용하는 코드들이 아주 많다.근데 여기서 큰 문제점이 있었는데 PreparedStatement 를 재사용하는 방법이 잘못되어 있었다는 것이다.for(int i = 0; i 이런식으로  for문 안에서 객체를 재할당 해주고 마지막에 finally 문에서 pstmt를 close해주는 식이었다.하지만 이런 방식으로 사용한다면 가장 마지막의 pstmt만 close 되고 앞에서 할당한 pstmt는 절대 close 될 수 없는 구조를 가진다. String sql = "select name, aget from testTable where condition = ? ";pstmt = conn.prepareStatement(sql);for(int i =..

[트러블슈팅] 실제 데이터 값과 MyBatis를 통해 select 한 값이 다른 문제 - 오라클 char 타입 유의할점
개발공부 2024. 11. 7. 17:44

문제 오라클 developer에서 어떠한 select 쿼리를 날렸을때 값이 1이 나오는데 자바 프로그램에서 MyBatis 를 통해 파라미터를 넘기고 똑같은 쿼리를 select 했을때는 값이 0이 나온다. 근데 이러한 현상이 where 조건에 다른 값을 줬을때는 정상적으로 나오는 문제가 있었다. 원인 where 조건에 사용된 컬럼이 varchar 타입이 아닌 char 타입이었다. char 타입인 데이터는 지정한 길이보다 문자의 길이가 적을때 나머지 부분을 공백으로 채운다. 그렇기 때문에 MyBatis 로 실행했을때 해당 값이 공백까지 정확히 일치하지 않았기 때문에 developer 상의 결과와 달랐다. 해결 해당 컬럼은 char 8byte 의 데이터 타입을 가지고 있었고, 다른 데이터들도 모두 8byte ..